[转载]R 语言做主成分回归 案例

标签:
转载 |
原文地址:R 语言做主成分回归 案例 作者:顾晓佳
主成分回归主要是克服多重共线性
x1=c(149.3, 161.2, 171.5, 175.5, 180.8,
190.7,
202.1, 212.4, 226.1, 231.9, 239.0),
x2=c(4.2, 4.1, 3.1, 3.1, 1.1, 2.2, 2.1,
5.6, 5.0, 5.1, 0.7),
x3=c(108.1, 114.8, 123.2, 126.9, 132.1,
137.7,
146.0, 154.1, 162.3, 164.3, 167.6),
y=c(15.9, 16.4, 19.0, 19.1, 18.8, 20.4,
22.7,
26.5,
28.1, 27.6, 26.3)
例子:
考察进口总额Y与3个自变量:国内总产值X1,存储量X2和总消费量X3之间的关系,现收集1949-1959年共11年的数据,试对此做分析。
R程序如下:
#### 用数据框的形式输入数据
conomy<-data.frame(
)
#### 作线性回归
lm.sol<-lm(y~x1+x2+x3, data=conomy)
summary(lm.sol)
#### 作主成分分析
conomy.pr<-princomp(~x1+x2+x3, data=conomy,
cor=T)
summary(conomy.pr, loadings=TRUE)
http://s9/mw690/8c422ebdzx6DeXTFlEse8&690语言做主成分回归 案例" TITLE="[转载]R 语言做主成分回归 案例" />
第三个特征根为0.01518.平方后接近于0,说明自变量之间存在多重共线性
第三个特征根为0.01518.平方后接近于0,说明自变量之间存在多重共线性
#### 预测测样本主成分, 并作主成分分析
pre<-predict(conomy.pr)
conomy$z1<-pre[,1]
conomy$z2<-pre[,2]
lm.sol<-lm(y~z1+z2, data=conomy)
summary(lm.sol)
#### 作变换, 得到原坐标下的关系表达式
beta<-coef(lm.sol);
A<-loadings(conomy.pr)
x.bar<-conomy.pr$center;
x.sd<-conomy.pr$scale
coef<-(beta[2]*A[,1]+ beta[3]*A[,2])/x.sd
beta0 <- beta[1]- sum(x.bar * coef)
c(beta0, coef)