R语言简单回归分析总结

来源:互联网 发布:f22在福建被击落知乎 编辑:程序博客网 时间:2024/05/20 20:03

面对数据集合dataset,有因变量Y和自变量X1,X2,X3,X4,要做的是:
1. 根据数据可以得到初步方程(假定为线性):
lm.sol <- lm(Y ~ X1+X2+X3+X4, data=dataset)
summary(lm.sol)
2. 如果发现不显著
(1)W正态性检验

y.res<-residuals(lm.sol)shapiro.test(y.res)

如果不满足正态性假设,那么可以考虑剔除异常点
(2)画残差的Q-Q图

plot(lm.sol)

如果图中的点的大致趋势明显不在一条直线上,那么正态性假设则不合理,可以考虑改变式子
如果图中的某几个点偏离较大,那么这几个点是异常点,可以考虑剔除
(3)画标准化残差图(检验正态性)

y.rst<-rstandard(lm.sol)y.fit<-predict(lm.sol)plot(y.res~y.fit)

根据标准化残差图发现问题,正常来说,应该有95%的可能性落在宽度为4的水平带上,且没有任何趋势。
如果发现趋势,则尝试通过改变式子,对变量进行变换,使用update()函数
如果没有发现趋势,但发现异常点(超过宽度为4的水平带),那么就剔除异常点,然后返回第一步继续查看方程
(4)使用书中给出的诊断函数,找到异常点

source("Reg_Diag.R"); Reg_Diag(lm.sol)

达到条件说明该点为可能的异常点
3. 如果发现方程显著,但某几个变量不显著
(1)可能是多重共线性的问题,找到对应多重共线的向量,剔除即可

XX<-cor(collinear[2:7])kappa(XX,exact=TRUE)eigen(XX)

(2)可以考虑逐步回归

lm.step<-step(lm.sol)summary(lm.step)
  1. 建立方程以后,运用方程进行预测
new <- data.frame(x = 0.16)lm.pred<-predict(lm.sol, new, interval="prediction", level=0.95)
0 0
原创粉丝点击