用R做多重线性回归,除了lm()外还要再学习一个stepAIC()。而且R逐步回归是基于AIC指标的,这和SPSS基于显著性概率p值(或F值)不同。所以R的逐步回归结果不一定会和SPSS完全一致。先打一个预防针。此前我利用SPSS练习过一个多重线性回归的案例,地址如下:现在将使用R来拟合逐步回归的模型,可以用上面这篇SPSS的结果与之对比对照。美国各州犯罪率数据,首先观察因变量murder与各自变量的线性关系。绘制一个散点图加相关矩阵。chart.Correlation(murder[,-4], histogram=TRUE,method="pearson",pch=19) 多个自变量与murder间存在一定线性关系,不排除一些是存在非线性关系的,咱们暂先略过或者直接踢掉非线性的。fit <- lm( Murder~ Population+Income+Illiteracy+HsGrad+Frost+Area, data=murder ) summary(fit) 第一个模型fit有统计学意义(P<0.001),6个自变量中有3个不显著的,有必要优化一下。step.fit <- stepAIC(fit,direction = "both") summary(step.fit) 首次逐步回归所得模型step.fit有统计学意义(P<0.001),但是我们发现有一个不显著的保留在当前模型中。这就是基于AIC指标筛选的特点,和SPSS不同。怎么办呢?大家看Hsgrad变量,p值为0.167,还蛮大的。还应该继续优化调整。此时实际上可以直接降其剔除。如果再啰嗦一下,那么继续让R提供依据。我们用drop1()函数看看R的意见。假设我们继续剔除hsgrad,你猜模型会怎么变化呢?AIC会微微小增大一点(92.13到92.28),然后误差平方和也是小幅的增加一点,应该对模型的影响不是很大,ok,那我们就把它干掉。opt.lm <- lm( Murder~Population + Illiteracy + Area, data = murder ) summary(opt.lm) 现在最新模型opt.lm有统计学意义(P<0.001),校正R方0.57。我们发现保留了3个自变量,area的p值为0.075,可认为是边缘显著。hat(Y)=4.002*ill+0.00022*pop+0.0000074*area+1.228hat(Y)=4.359*ill+0.00025*pop+1.052差异是可见的,总体来说自变量方向一致,偏回归系数略有微小变化,另外R的模型多了一个边缘显著自变量。
|