主成分回归分析
对于OXY数据集的变量解释如下:
对上述数据进行回归模型的拟合,得到模型:
从模型的显著性检验结果看出:除了常数项以及β3显著,其他变量系数都不通过显著性检验。同时,从模型整体拟合效果来看,R^2为0.8618,调整的R^2为0.7697,整体拟合效果可以通过。最后,p值为0.00198说明,拒绝原假设,即有理由认为回归模型从整体上拟合效果比较好。
下面针对系数通不过检验进行分析。
##残差图,异方差,自相关检验
plot(lm.sol$residuals,main = "the residuals of liner model",ylab = "re")
abline(h=0,lty=2)
#多重共线性检验
kappa(qr(OXY))
结果:
借助残差图,其随机围绕着re=0波动,可以排除模型不存在自相关以及异方差问题。
kappa(qr(OXY))
[1] 264.2117
由其条件数为264大于100,可认为,该模型存在较强的多重共线性。
则采用主成分回归法,来消减模型存在多重共线性带来的影响,即系数通不过显著性检验。
求主成分:
由cumulative proportion可以得到当主成分个数m等于3时,累计贡献率为83.526%大于80%,即可认为前三个主成分,就基本提取了原数据绝大部分的信息。所以,以前三个主成分的得分值作其观测值z1,z2,z3,并把它添加到数据集OXY中,建立回归模型:
y =46.3800+2.0593*z1 -1.4782*z2 +0.6950*z3
可从summary(lm.sol.1)结果得到,除了z3的系数没通过显著性检验。同时模型的整体
拟合效果得到提高,R^2为0.8676,调整的R^2为0.8345,同时p值远远小于0.05,说明
模型整体拟合效果较佳。
lm.sol.1<-lm(y~z1+z2+z3, data=OXY)
summary(lm.sol.1)
Call:
lm(formula = y ~ z1 + z2 + z3, data = OXY)
Residuals:
Min 1Q Median 3Q Max
-2.3880 -1.5069 0.3160 0.7009 4.3672
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 46.3800 0.4762 97.394 < 2e-16 ***
z1 2.0593 0.2591 7.950 4.01e-06 ***
z2 -1.4782 0.4093 -3.611 0.00357 **
z3 0.6950 0.4512 1.540 0.14942
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 1.905 on 12 degrees of freedom
Multiple R-squared: 0.8676, Adjusted R-squared: 0.8345
F-statistic: 26.2 on 3 and 12 DF, p-value: 1.49e-05
使用逆变换法,得到原始变量的回归方程:
beta<-coef(lm.sol.1); A<-loadings(prin.oxy)
x.bar<-prin.oxy$center; x.sd<-prin.oxy$scale
coef<-(beta[2]*A[,1]+ beta[3]*A[,2])/x.sd
beta0 <- beta[1]- sum(x.bar * coef)
c(beta0, coef)
(hntercept) x1 x2 x3 x4 x5 x6 y
84.48047095 -0.19517781 -0.11688617 -1.04312708 -0.12361966 -0.03916300 -0.05573319 0.31272008
即可以得到原始变量的回归方程
从其系数可以大致得到以下结论:
即认为人体肺活量与年龄,体重,脉搏成负相关,与运动时最大脉搏成正比。