1 OLS回归(最小二乘法回归)
1.1 用lm()拟合回归模型
在R中,拟合线性模型最基本的函数是lm(),格式为:myfit<-lm(formula,data)
1.2 简单线性回归
dat<-women
fit<-lm(weight~height,data=dat)
summarize(fit)
结果分析:回归方程weight = 3.45 height - 87.51667,这两个估计值是否可靠呢,需要看Pr(>|t|)值,p值小于0.05,我们就认为它在95%的置信区间上是不为0的,它的统计是显著的,简单一点,只要有星星,结果就可以认为是可靠的,看拟合优度Adjusted R-squared:0.9903,结果是非常好的,p-value是对整个方程的估计, p-value: 1.091e-14<0.05可以认为结果是可靠的
plot(dat$height,dat$weight) #查看height和weight的散点图(实际散点图)
abline(fit) #画回归线,查看拟合结果(估计出来的线)
结果分析:散点图是实际的数据,回归线基本在散点图附近,说明拟合效果比较好
1.3 多项式回归(身高和体重的平方)
fit1<-lm(weight~height+I(height^2),data=dat)
解释:为了防止错误识别^,加了一个I()函数,指出^是一个常规得符号
> summary(fit1)
结果分析:回归方程weight = -7.34832height + 0.08306height^2 + 261.87818,这两个估计值是否可靠,需要看Pr(>|t|)值,p值小于0.05,我们就认为它在95%的置信区间上是不为0的,它的统计是显著的,简单一点,只要有星星,结果就可以认为是可靠的,看拟合优度Adjusted R-squared:0.9994,结果是非常好的,p-value是对整个方程的估计, p-value: 2.2e-16<0.05可以认为结果是可靠的,对比上一个可以看出这个拟合优度更高
plot(dat$height,dat$weight) #画散点图
lines(dat$height,fitted(fit1))
解释:使用函数lines()画线,abline()只适用于一元,要给出横坐标dat$height,纵坐标fitted(fit1)
1.4 多元线性回归(预测变量不止一个)
states<-as.data.frame(state.x77[,c("Murder",
"Population","Illiteracy","Income","Frost")])
cor(states) #列出是所有列变量两两之间的相关系数
画出全部两两变量之间的关系:
library(car)
scatterplotMatrix(states,spead=F,smooth.args=list(lty=2)
结果分析:对角线是单变量自己的分布情况,其他情况虽然点很复杂,但上面清晰的描述了一条实线,大致说明了变量之间的关系
fit2<-lm(Murder~Population+Illiteracy+Income+Frost,data=states) #回归分析
解释:Murder是预测变量,Population+Illiteracy+Income+Frost是解释变量
summary(fit2)