基于R语言的主成分分析
加入的SPSS群里有人问,怎么用SPSS进行主成分分析。确实没有注意到这种操作。很好奇,于是翻了翻孙振球的《医学统计学》,发现主成分分析这一块,竟使用了SAS!后来再找找网上的说明,SPSS似乎却被是不能直接进行主成分分析的。
主成分分析在R语言里面的实现几乎是瞬间的事儿,它只需要princomp()一个函数。
于是从记录的几次考试成绩里找了稍规整些的Excel表,行列转换了重新粘贴在csv文件里,直接给score向量了。
代码如下:
#Excel列转行直接赋给向量score
RStudio输出结果:
Comp.1Comp.2Comp.3Comp.4Comp.5 Standarddeviation1.76644141.05699921.00675330.81546550.26821204 ProportionofVariance0.5260.18620790.16892540.11083070.01198962 CumulativeProportion0.5260.70626040.87518580.98601650.99800608 Comp.6 Standarddeviation0.109377749 ProportionofVariance0.001993915 CumulativeProportion1.000000000 Loadings: Comp.1Comp.2Comp.3Comp.4Comp.5Comp.6 ch10.5340.1630.2450.7450.263 ch20.5330.1990.188-0.5970.527 ch30.5570.114-0.144-0.804 ch40.181-0.763-0.2290.537-0.208 ch50.289-0.303-0.544-0.7090.145 ch6-0.5240.759-0.377 >#画碎石图给出主成分 >screeplot(score.pr,type="lines") >Importanceofcomponents:
第1章ch1几乎决定了52%的总成绩,而ch2、ch3、ch4影响程度相差不多,至ch4累计贡献已经达到0.9860165,ch5、ch6几乎可以不看了,这样,从观察6次成绩变成以观察4次、甚至只观察第1次成绩为主,达到了降维的目的。
总之从这一点上,R语言要比SPSS可能要方便得多。R语言拥有极其方便易用的Help,关于主成分分析,有更多的介绍和功能,在此不述。