RStudio面板展示
![](https://i-blog.csdnimg.cn/blog_migrate/73e405a4ac75cda43ddeb3f6789458da.png)
配套代码
#多元线性回归分析
state.x77 #查看state。x77矩阵数据集
states <- as.data.frame(state.x77[,c("Murder","Population","Illiteracy","Income","Frost")]) #将矩阵转换成数据框,为了简化问题只取"Murder","Population","Illiteracy","Income","Frost"
states #查看states数据集
fit <- lm(Murder ~ Population + Illiteracy + Income + Frost,data = states) #定义fit
summary(states) #查看结果
coef(fit) #查看各变量系数
options(digits = 4) #设置显示有效数字
coef(fit) #查看各变量系数
#示例
mtcars #查看mtcars矩阵数据集
fit <- lm(mpg ~ hp + wt + hp:wt,data = mtcars) #每加仑行驶里数与马力和车重之间的关系,其中马力和车重之间的关系是交互的
summary(fit) #hp:wt为三颗星,说明马力与车重的交互是非常显著的,意味着mpg与其中一个变量的关系依赖于另一个变量
?AIC #如何从众多模型中选择最佳模型,可以使用AIC比较模型,计算值越小越好,越少说明模型用较少参数获得足够的拟合度
fit1 <- lm(Murder ~ Population + Illiteracy + Income + Frost,data = states) #四个变量
fit2 <- lm(Murder ~ Population + Illiteracy = states) #两个变量
AIC(fit1,fit2) #结果说明fit2拟合模型更好
#回归诊断
#模型是否是最佳模型?
#模型多大程度满足OLS模型的统计假设?
#模型是否经的起更多数据的检验?
#如果拟合不好,该如何继续?
opar <- par(no.readonly = TRUE) #用于设置图形参数,通过保存当前图形参数的状态,可以在之后的代码中进行图形参数的修改,
#然后通过还原 opar 变量的值,回到最初的图形参数状态。
fit <- lm(weight ~ height,data = women) #定义fit
fit #列出fit
plot(fit) #绘制拟合结果图形
#Residuals vs Fitted:残差vs拟合,表示因变量与自变量是否成线性关系,图中的点是残差值的分布,曲线是拟合曲线,这里贴合程度可以说明数据成线性分布
#Q-Q图描述正态性,如数据正态分布则在途中为一条直线
#Scale-Location:位置与尺寸图,用来描述同方差性,如果满足不变方差的假设,图中水平线的周围的点应该是随机分布的
#Residuals vs Leverage:残差与杠杆图,提供了对单个数据的观测,可以鉴别离群点、高高杠杆点,强影响点,其中离群点表示单个数据对模型拟合不好,残差比较大,高高杠杆点异常变量的组合;强影响点对模型影响过大,图中用cook‘distance表示,这些都不好
par (mfrow = c(2,2) #将4张图形合成一个2行2列的矩阵
plot(fit) #绘制拟合结果图形
fit2 <- lm(weight ~ height+I(height^2),data = women)
opar <- par(no.readonly = TRUE) #用于设置图形参数,通过保存当前图形参数的状态,可以在之后的代码中进行图形参数的修改
par (mfrow = c(2,2)) #将4张图形合成一个2行2列的矩阵
plot(fit2) #绘制拟合结果图形,可以发现fit2的拟合效果比fit1要好
最终效果图
![](https://i-blog.csdnimg.cn/blog_migrate/07163a79173a0661daaebcb86f8aadde.png)
![](https://i-blog.csdnimg.cn/blog_migrate/e80d2d11b04ecaf284681208d795932f.png)