多元线性分析+回归诊断-代码笔记

本文介绍了如何在RStudio环境中使用多元线性回归进行数据分析,包括处理state.x77数据集,构建模型,查看系数,以及通过AIC选择最佳模型。同时,文章详细讨论了回归诊断的重要性,包括检查残差、正态性、方差和杠杆等以评估模型的适用性。
摘要由CSDN通过智能技术生成

RStudio面板展示

配套代码

#多元线性回归分析
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要好

最终效果图

  • 7
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值