R语言是一种十分方便的统计学编程语言,本文主要介绍通过R语言进行线性回归,并列举了几个R语言在线性回归中的应用。
那么接下来是干货时间 QAQ
线性回归计算分为以下几点
一、判断是否符合线性回归,并求出回归方程lm.sol
+ summary(lm.sol)
计算各项的Pr值(即t检验的p值),
Pr< 0.05表示该项系数与t检验默认值(mu=0)之间存在显著差异(即系数显著不为零),此时符合回归,Estimate对应的值为该项系数
二、预测
lm.pred<-predict(lm.sol, data.frame(x = 0.16), interval="prediction", level=0.95) |
For example
输出的三个值分别为预估值,区间下限和区间上限
三、查找偏差值
y.res<-resid(lm.sol) |
lm.step<-step(lm.sol)
drop1(lm.step) #查看每项的AIC
summary(lm.step)
五、画拟合曲线 |
x<-seq(min(X1), max(X1), len=200)
y<-predict(lm2.sol, data.frame(X1=x))
plot(Y~X1); lines(x,y)```
六、残差图
y.res<-resid(lm.sol) |
漏斗形->异方差 && 无规律—>同方差(正常情况)

x<-scan() |
(1)
呈线性关系
lm.sol<-lm(Y~X,data=x) |

(2 & 3)
y=364.18x+140.95
回归数据的显著性检验是指看Pr值是否<0.05,Pr<0.05时为显著的
X的系数显著,常数项系数不显著abline(lm.sol)

(4)
已知其中部分数据,预测剩余值用predict
predict(lm对象,新数据的data.frame ,interval=”prediction”)
new<-data.frame(X=7) |
#Y(7)= 2690.227, [2454.971,2925.484]


(1)
x<-scan() |

(2)
Pr<0.05表示显著
x1和常数项显著,其他不显著
(3)lm.step<-step(lm.sol)

#x2被删去summary(lm.step)

lm.final<-lm(y~x1,data = x) |

p<0.05
可以,y = 1.84x + 59.25

(1)
x<-scan() |

abline(lm.sol)

(2)
Pr的值为T检验的P值,F-statistic的p-value表示F检验的p值,两者都是< 0.05时通过
Pr常数项>0.05,x的< 0.05,故常数项没通过t检验,x项通过了
F-statistic的p-value< 0.05,通过了F检验
(3)
y.res<-resid(lm.sol); y.fit<-predict(lm.sol) |

y.rst<-rstandard(lm.sol) |

喇叭形,异方差的
(4)
lm2<-lm(y~x,data=x) |

R-squared还较小,但残差明显变小了(0.7206)


toothpaste<-data.frame(
X1=c(-0.05, 0.25,0.60,0, 0.25,0.20, 0.15,0.05,-0.15, 0.15,
0.20, 0.10,0.40,0.45,0.35,0.30, 0.50,0.50, 0.40,-0.05,
-0.05,-0.10,0.20,0.10,0.50,0.60,-0.05,0, 0.05, 0.55),
X2=c( 5.50,6.75,7.25,5.50,7.00,6.50,6.75,5.25,5.25,6.00,
6.50,6.25,7.00,6.90,6.80,6.80,7.10,7.00,6.80,6.50,
6.25,6.00,6.50,7.00,6.80,6.80,6.50,5.75,5.80,6.80),
Y =c( 7.38,8.51,9.52,7.50,9.33,8.28,8.75,7.87,7.10,8.00,
7.89,8.15,9.10,8.86,8.90,8.87,9.26,9.00,8.75,7.95,
7.65,7.27,8.00,8.50,8.75,9.21,8.27,7.67,7.93,9.26)
)
lm.sol<-lm(Y~X1+X2,data = toothpaste)
summary(lm.sol)
– To Be Continued –

<meta http-equiv="refresh" content="0.5">