第八章:回归
回归分析通指那些用一个或多个预测变量(也称自变量或解释变量)来预测响应变量(也称因变量、效标变量或结果变量)的方法。
8.1回归的多面性
本章重点介绍普通最小二乘(OLS)回归法,包括简单线性回归、多项式回归和多元线性回归。
8.2OLS回归
数据必须满足:
- 正态性:对于固定的自变量值,因变量值成正态分布
- 独立性: Y i Y_i Yi值之间相互独立
- 线性:因变量与自变量之间为线性相关
- 同方差性:因变量的方差不随自变量的水平不同而变化
mifit <- lm(formula, data) # 调用lm()函数的一般格式:formula是要拟合的模型形式,data是数据框,结果对戏那个存储在fit列表中
# 表达式形如Y ~ X1+X2+...+Xk,左边是响应变量,右边是各预测变量
# 简单线性回归
fit <- lm(weight ~ height, data=women) # 利用lm()函数通过身高来预测体重
summary(fit)
women$weight # 真实值
fitted(fit) # 预测值
residuals(fit) # 残差值
# 画图
plot(women$height, women$weight, xlab='Height (in inches)', ylab='Weight (in pounds)')
abline(fit) # 添加参考线
# 多项式回归
fit2 <- lm(weight ~ height+I(height^2), data=women) # 利用lm()函数进行多项式回归
summary(fit2)
# 画图
plot(women$height, women$weight, xlab='Height (in inches)', ylab='Weight (in lbs)')
lines(women$height, fitted(fit2)) # 添加拟合优度曲线
# 多元线性回归
states <- as.data.frame(state.x77[, c('Murder', 'Population', 'Illiteracy', 'Income', 'Frost')]) # 创建数据框,方便lm()函数调用
cor(states) # 检查变量间的相关性
library(car)
scatterplotMatrix(states, spread=FALSE, lty.smooth=2, main='Scatter Plot Matrix') # 利用car包中的scatterplotMatrix()函数绘制各自变量和因变量的散点图矩阵
fit <- lm(Murder ~ Population + Illiteracy + Income + Frost, data=states) # 利用人口、文盲率、收入和温度预测谋杀率
# 有交互项的多元线性回归
fit <- lm(mpg ~ hp + wt + hp:wt, data=mtcars)
summary(fit)
plot(effect(term, mod, xlevels), multiline=TRUE) # 调用effects包中的effect()展示交互项:其中term是模型要画的项,mod是lm()拟合的模型,xlevels指定要设定的常量值,multiline=TRUE表示添加相应直线
library(effects)
plot(effect('hp:wt', fit, xlevels=list(wt=c(2.2, 3.2, 4.2))), multiline=TRUE) # 展示wt取三种值时mpg和hp的关系
8.3回归诊断
fit <- lm(Murder ~ Population + Illiteracy + Income + Frost, data = states)
confint(fit)
本章细节:
1.可以利用args(函数)查看函数需要的参数。