在主成分分析法中,是否对样本容量的多少有规定?样本容量是不是越多越好?

论坛 期权论坛 期权     
高靓云   2018-10-3 21:33   41374   7
      本人在写主成分分析的论文时遇到了这样的一个问题:我选取了7项指标和15家上市公司进行主成分分析,最终结果为主成分的累积方差贡献率达到了84%,原7个指标也降到了3个指标,这样的结果算是合理的。但老师看后觉得这15个样本容量有些少,针对样本数量较少的问题,我将样本量增加到了25家,可是分析结果非常不理想,主成分的累积方差贡献率只有62%,这是为什么?
       第一,就我对该现象的理解是,因为主成分是用方差来衡量,方差越大说明主成分提取原变量的信息量就越多。在随着样本数量的增加,数据就越趋于稳定,所以影响到了方差,使方差变小了,相应的主成分的累积方差贡献率也变小了,因此并非样本数据量越多,主成分分析就越好。不知道这样解释对不对?
      第二,我觉得主成分分析在对样本量多少的选取方面跟调研时选取样本量多少是不同的吧?因为调研的话是为了了解某个区域或某个现象所存在的普遍问题,所以样本容量越大越好,这样会使最终结果越能反映真实性,越具有代表性。而主成分分析只是一种相对的评价方法,分析结果会受样本选取的不同而不同,因此,无论所选取的样本容量或多或少,这也只是在一个范围内的相对结果,不能代表整体的情况是这样,所以在进行主成分分析时,样本容量的多少并不重要?
      不知道,我以上表达的观点是否正确,求高手给予详细的解答!
分享到 :
0 人收藏

7 个回复

正序浏览
7#
大象  4级常客 | 2018-10-3 21:33:53 发帖IP地址来自
样本量越大估计越精确。
只能说明,你那个84%,很大程度上是由于随机误差造成的……
6#
徐小白  2级吧友 | 2018-10-3 21:33:52 发帖IP地址来自
主成分分析的目的是降纬,为的是将多个指标进行整合,本身就是真对较大样本量和较多变量的,样本量越大越能对变量进行解释,也正式因为数据的多样性,所以才会使得每个样本之间都存在差异,这样你做主成分分析的时候方差肯定是随着样本量的增加而变大,而累计贡献率也会随着变小。因为样本越多,多元化就越明显,那就需要更多的变量来解释它。所以必要的量是要保证的,而且你在做主成分分析之前也需要做共线性的检验啊,不然你最后得到的指标说不定只是在描述同一块信息。
5#
陈浩  4级常客 | 2018-10-3 21:33:51 发帖IP地址来自
铁定不正确,小样本出现抽样误差的可能性更大…清洗数据是第一步,如果样本太小,你连奇异值是什么都不好判断。
4#
巡山的小子  2级吧友 | 2018-10-3 21:33:50 发帖IP地址来自
有两个办法。
一,下载minitab软件。里面有算样本数量的工具。
二,参考cssbb prime 的第六章。自己算。

码字太累,我明天把公式贴上来
———————————————————————
对于连续型数据:


其中,z取1.96。sigema为样本的方差,E是中值与期望值的偏差。
由于你考虑15个因子,建议你按照最大样本数的数量进行收集数据。
3#
小柴柴  2级吧友 | 2018-10-3 21:33:49 发帖IP地址来自
看了你的叙述我觉得你对主成分分析的理解有一定偏差。什么叫好?维数越少方差贡献率越高就叫好么?不是的。应该是通过85%的阀值来确定降为几维比较能包含大部分信息。而不是先确定降为3维(62%应该是你确定降为3维时的累计方差贡献吧),再来看累计方差贡献是否在85%以上,就你做出来的数据说明确实降为3维不妥。一不小心扯到哲学上了…
2#
毛毛林  2级吧友 | 2018-10-3 21:33:48 发帖IP地址来自
举个例子,有三个自变量“腿毛长度”,“体毛长度”,“手毛长度”,因变量“毛茸茸程度”。如果样本只有猫和狗,你可以只用“体毛长度”就能涵盖所有的样本,与毛茸茸程度的相关方程拟合优秀;倘若加入人,就必须用“体毛长度”+“腿毛长度”来体现毛茸茸程度,因为有些人体毛短,但是腿毛长,还是给人毛茸茸的感觉。可以预见,如果样本里加入长手怪、大脸妹、蜘蛛等等,“体毛”+“腿毛”能够涵盖的样本比例就越来越少了。
因此,样本越少,2-3个主成分的累计贡献率往往很大,简单而言就是很容易找到涵盖这些样本的特征;样本增加,多样性增加,累计贡献率就往往会下降。可见,我们需要的是在样本足够多的情况下找到使得累计贡献率达到85%以上的较少的主成分。
实践而言,仅仅用主成分分析的话是比较难两全其美的,而因子分析能够较好解决这个问题。通过对样本乘以协方差矩阵后再进行因子旋转,就能得到公共因子,公共因子不是原生变量,却能很好的对样本进行“概括”,达到降维的目的。
于是,我们就可以用“暴露在空气中的毛的长度”来涵盖猫、狗、人,再加上“平均长毛占身高比”来涵盖长手怪和蜘蛛了。
1#
Glenn Qian  1级新秀 | 2018-10-3 21:33:47 发帖IP地址来自
你首先需要明白PCA在做什么。

PCA是一个用来降维的算法,基本概念是说把N维的数据点投影到k维(k < N),同时又希望投影之后的点与原数据点之间的总距离尽可能小。
写成式子是:

其中
代表所有N维的秩为k的正交投影矩阵的集合,
代表Frobenius norm,



举个直观点例子来说,如下图:


假设三维空间里有很多点,每个点都是用三个维度来表示的。但你发现其实他们差不多都在同一个二维平面上。虽然不是完全在一个平面上,但距离那个平面的距离都很小,远小于他们在这个平面上的互相距离。于是你想,如果把所有点都投影到这个二维平面,那你就可以用两个维度来表示所有点,同时又不损失太多关于这些点的信息。当你这么做的时候,你就是在做PCA了。

具体怎么找这个平面呢,在概念上,你首先找到数据点分布范围最广、即方差最大的那个方向(上图绿色箭头),然后在剩下的与其垂直的所有方向中再找另一个方差最大的方向(上图蓝色箭头)。两个方向构成的平面就是你要找的平面了。数学上一般是通过协方差矩阵对角化或者SVD来实现的。

好了,现在来解释为什么样本数量很重要,依然以三维空间为例。

因为样本容量太小的话,你很容易获得一组数据,他们“偶然”近似落在同一个平面上。极端情况下,如果你只有三个数据点,那么他们总可以构成一个二维平面,你甚至都不需要“近似”这两个字。

回到题主的问题。为什么你把样本量增加到25之后,同样前三个PC只能解释62%的方差了呢?

因为你之前的15个样本点很巧合的落在了七维空间中的同一个三维超平面附近。而当样本量增加到25时,这个巧合不成立了。所以同样是三个PC,在这个情况下只能解释62%的方差了。
这就好比在上图中,我本来以为把数据点投影到那个二维平面上能保有绝大部分方差,但当我搜集大量数据之后发现,许多点其实并不落在这个平面附近,反而离它很远。之前只是因为数据过少而造成的巧合。这样一来为了不损失太多关于这些数据点的信息,我就只能用三个维度来记录数据了。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:
帖子:
精华:
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP