R语言与主成分分析

主成分分析实例

例 9.1 (中学生身体四项指标的主成分分析)

在某中学随机抽取某个年纪30名学生,测量其身高(X1)、体重(X2)、胸围(X3)和坐高(X4),数据如表9.1所示。试对这30名中学生身体四项指标数据做主成分分析。

image

解析:用数据框的形式输入数据。用princomp()作主成分分析,由前面的分析,选择相关矩阵做主成分分析更合理。因此,这里选择的参数为cor=TRUE。最后用summary()列出主成分分析的值,这里选择loadings=TRUE。以下是相应的程序。

用数据框形式输入数据,做主成分分析,并显示分析结果:

image

summary()函数列出了主成分分析的重要信息:

  • Standard deviation:表示主成分的标准差,即主成分的方差的开方,也就是相应的特征值的开方
  • Proportion of Variance:表示的是方差的贡献率
  • Cumulative Proportion:表示的是方差的累计贡献率

由于在summary函数的参数中选取了loadings=TRUE,因此列出了loadings(载荷)的内容,它实际上是主成分对应于原始变量X1, X2, X3, X4的系数,即前面介绍的矩阵Q。因此得到:

image

由于前面两个主成分的累计贡献率已达到96%,另外两个主成分可以舍去,达到降维的目的

第一主成分对应系数的符号都相同,其值在0.5左右,它反映了中学生身材魁梧程度:身材高大是学生,他的四个部分的尺寸都比较大,因此,第一主成分的值就比较小(因为系数均为负数);而身材矮小是学生,他的四个部分的尺寸都比较小,因此,第一主成分的绝对值就较大。我们成第一主成分为大小因子。第二主成分是高度和围度的差,第二主成分值大的学生表明该学生“细高”,而第二主成分值越小的学生表明该学生“矮胖”,因此第二主成分为体型因子。

我们看一下各样本的主成分的值(用predict()函数):

image

从第一主成分来看,较小的几个值是25号样本、3号样本和5号样本,因此说明这个几个学生身材魁梧。而11号样本、15号样本和29号样本的值较大,说明这几个学生的身材瘦小。

从第二主成分来看,较大的几个值是23号样本、19号样本和4号样本,因此说明这几个学生属于“细高”型;而17号样本、8号样本和2号样本的值较小,说明这几个学生的身材属于“矮胖”型。

画出主成分的碎石图:

Image 219

还可以画出关于第一主成分和第二主成分样本的散点图,其图形如下所示:

Image 220image

问题:中间的四条箭头的线的作用是什么????

主成分分析的应用

1. 主成分分类

例 9.2 对128个成年男子的身材进行测量,每人各测得16项指标:身高(X1),坐高(X2),胸围(X3),头高(X4),裤长(X5),下档(X6),手长(X7),领围(X8),前胸(X9),后背(X10),肩厚(X11),肩宽(X12),袖长(X13),肋围(X14),腰围(X15)和腿肚(X16)。16项指标的相关矩阵R如表9.2所示(由于相关矩阵是对称的,只给出下三角部分)。试从相关矩阵R出发进行主成分分析,对16项指标进行分类。

image

解析:首先输入相关矩阵,再用princomp()对相关矩阵做主成分分析,最后画出各变量在第一、第二主成分下的散点图。

输入数据,按下三角输入,构成向量

image

做主成分分析,并绘制散点图:

image

image

由上图中得到:

  • 左上角的点看成一类,它们是“长”类:即身高(X1),坐高(X2),头高(X4),裤长(X5),下档(X6),手长(X7),袖长(X13)
  • 右下角的点看成一类,它们是“围”类,即身胸围(X3),领围(X8),肩厚(X11),肋围(X14),腰围(X15),腿肚(X16)
  • 中间的点看成一类,为体形特征指标:即前胸(X9),后背(X10),肩宽(X12)

2. 主成分回归

在回归分析的章节中,曾经讲过,当自变量出现多重共线性时,经典回归方法回归系数的最小二乘估计,一般效果会较差,而采用主成分回归能够克服直接回归的不足。下面用一个例子来说明如果做主成分回归,并且是如何克服经典回归的不足。

例 9.3 (法国经济分析数据)

考虑进口总额Y与三个自变量:国内总产值X1,储存量X2,总消费量X3(单位为10亿法郎)之间的关系。现收集了1949年至1959年共11年有效数据,如表9.3所示。试对此数据做经典回归分析和主成分回归分析。

image

解析:输入数据(采用数据框形式),再用一般线性回归方法做回归分析

image

从计算结果可以看出,按三个变量得到回归方程:

image

分析该方程,可以发现它并不合理。回到问题本身,Y为进口量,X1是国内总产值,而对应系数的符号却是负,也就说,国内总产值越高,其进口量却越少,这与实际情况并不相符。问其原因,三个变量存在着多重共线性(后面我们将会看到最下特征值接近于0)

Analysis of myself:绘制岭迹图

为了进一步可以看出变量间是否存在多重共线性,可以通过绘制岭迹图进行观察:

image

可见,在岭迹图中呈现出了“喇叭形”,因此很有可能在变量间存在多重共线性。为了克服多重共线性的影响,对变量做主成分分析回归,先做主成分分析:

image

从结果中可以看出,前两个主成分已达到99%的贡献率,因此第三主成分可以舍去。

下面做主成分回归,首先计算样本的主成分的预测值,并将第一主成分的预测值和第二主成分的预测值存放在数据框conomy中,然后再对主成分做回归分析:

image

回归系数和回归方程通过检验,而且效果显著,即得到回归方程;

image

上述方程得到的是响应变量与主成分的关系,但应用起来并不是很方便,还是希望得到相应变量与原变量之间的关系。由于:

image

以下通过变换,得到原坐标下的关系表达式:

image

在程序中,coef函数是提取回归系数,loadings为提取主成分对应的特征向量,conomy.pr$center为数据的中心,也就是数据X的平均值,conomy.pr$scale是数据的标准差,即Sii的开方。因此得到相应的系数,如上图。

即回归方程如下:

image

此时,对应X1, X2,X3的系数均为正数,比原回归方程更为合理。

发布了296 篇原创文章 · 获赞 35 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/yitian_z/article/details/103097418