当前位置:   article > 正文

R语言应用统计1 主成分分析_r语言统计1分析报告

r语言统计1分析报告

R语言应用统计1 主成分分析

这个系列就讨论应用基础,争取一条公式都不用写。当原始数据集比较庞大,并且不同变量之间存在一些相关性时,我们希望可以用更少的变量来表示原始数据集,用到的变量越少的同时,能够表示的原始数据集中的信息越多自然就更好。主成分分析就可以实现这样的目标,在主成分分析中用来表示原始数据集中的信息的变量被称为主成分。下面我们用一个例子说明R语言中进行简单的主成分分析的方法。


数据
使用HSAUR2包中的美国城市污染数据,代码如下

install.packages("HSAUR2")
data("USairpollution", package = "HSAUR2")
  • 1
  • 2

这个数据集有七个变量,分别是代表空气污染的SO2(空气中的二氧化硫浓度)、代表人类活动的populmanu以及代表天气情况的windtempprecippredays,这个数据集可以用多元线性回归来分析代表人类活动与天气情况的六个变量对二氧化硫浓度的影响,但现在我们尝试用PCA对六个解释变量进行分析。

数据的定性分析
首先分析一下这六个解释变量之间的相关性,使用cor函数,代码为

cor(USairpollution[,-1])
  • 1

代码输出如下

               temp        manu       popul        wind      precip     predays
temp     1.00000000 -0.19004216 -0.06267813 -0.34973963  0.38625342 -0.43024212
manu    -0.19004216  1.00000000  0.95526935  0.23794683 -0.03241688  0.13182930
popul   -0.06267813  0.95526935  1.00000000  0.21264375 -0.02611873  0.04208319
wind    -0.34973963  0.23794683  0.21264375  1.00000000 -0.01299438  0.16410559
precip   0.38625342 -0.03241688 -0.02611873 -0.01299438  1.00000000  0.49609671
predays -0.43024212  0.13182930  0.04208319  0.16410559  0.49609671  1.00000000
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

可以发现代表人类活动的populmanu的相关性系数高达0.9553,代表天气情况的四个变量之间也存在一定的相关性,这说明如果直接用多元线性回归分析这个数据集可能存在多重共线性的问题。

接下来我们画出这六个变量两两之间的散点图,代码如下

panel.hist <- function(x, ...) {
   usr <- par("usr"); on.exit(par(usr))
   par(usr = c(usr[1:2], 0, 1.5) )
   h <- hist(x, plot = FALSE)
   breaks <- h$breaks; nB <- length(breaks)
   y <- h$counts; y <- y/max(y)
   rect(breaks[-nB], 0, breaks[-1], y, col="grey", ...)
}
USairpollution$negtemp <- USairpollution$temp * (-1) 
USairpollution$temp <- NULL
pdf("Lot0.pdf") #将图片以pdf形式导出到当前工作路径
pairs(USairpollution[,-1], diag.panel = panel.hist,
       pch = ".", cex &#
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/413361
推荐阅读
相关标签
  

闽ICP备14008679号