美文网首页R for statisticsData science生统
变量之间相互不独立如何进行回归分析2021.3.18

变量之间相互不独立如何进行回归分析2021.3.18

作者: R语言_茶味先生 | 来源:发表于2021-03-19 14:01 被阅读0次

    1. 变量之间不独立

    也就是说用变量A,B,C来预测D变量,进行线性回归时发现A和B之间可能有关系,B和C直接可能有关系,C和A之间可能还有关系。我们应该如何进行线性回归。这里举的例子还只是有三个自变量,我们可以轻松的算出三种不同的模型,但是要是有更多自变量我们该如何处理呢,我们该如何从众多的模型中选择出最佳的模型呢?接下来就是见证奇迹的时刻😎

    1.1 变量之间不独立进行线性回归

    我们以mtcars数据集为例,想要知道mpg(每加仑行驶里程数)和hp(马力),汽车重量(wt)之间的关系,汽车的重量和马力之间存在交互,汽车的重量会影响马力。

    fit<-lm(mpg~hp+wt+hp:wt,data=mtcars)
    summary(fit)
    

    可以看出hp和wt之间的关系的p值小于0.01,呈显著相关。


    图1 总结拟合结果

    1.2 AIC函数衡量模型拟合效果(事实信息准则)

    AIC函数比较各个模型的拟合效果AIC得出的值越小,说明模型可以用较少的参数获得很好的拟合度。以state.x77数据集为例

    fit1<-lm(Murder~Population+Illiteracy+Income+Frost,data=states)
    fit2<-lm(Murder~Illiteracy+Income,data=states)
    fit3<-lm(Murder~Population+Illiteracy,data=states)
    AIC(fit1,fit2,fit3)
    

    通过比较AIC值可以发现有时候并不是参数越多,拟合的效果就越好。


    图2 各个模型的拟合效果

    1.3 更多变量回归分析

    更多变量的回归分析,当变量数达到10甚至100个的时候,可以采用逐步回归法和全子集回归法。

    • 逐步回归法:模型会一次添加或者删除一个变量,直到达到某个节点为止,也就是继续添加或者删除变量,模型的拟合结果不再继续变化。增加变量称为向前逐步回归,删除变量称为向后逐步回归。
    • 全子集回归法: 计算出所有可能的模型,然后计算出效果最佳的模型。(更加推荐)
    1.3.1 逐步回归法对应的函数以及用法

    我们可以使用MASS包中的stepAIC()函数进行逐步回归分析。

    library(MASS)
    states <- as.data.frame(state.x77[,c("Murder", "Population","Illiteracy", "Income","Frost")])
    fit <- lm(Murder ~ Population + Illiteracy + Income + Frost,data=states)
    stepAIC(fit, direction="backward")
    
    图3 向后逐步回归法

    这种方法的弊端很明显,不会把所有的组合都考虑在内。

    1.3.2 全子集回归法对应的函数以及用法

    我们可以使用leaps包中的regsubsets函数进行全子集回归分析。

    library(leaps)
    states <- as.data.frame(state.x77[,c("Murder", "Population","Illiteracy", "Income", "Frost")])
    leaps <-regsubsets(Murder ~ Population + Illiteracy + Income +Frost, data=states, nbest=4)
    summary(leaps)#
    

    通过结果我们可以看出从一个变量到四个变量的各种组合。


    图4 全子集回归分析的结果

    这种组合结果很像矩阵形式,所以我们猜测可以用绘制出热图形式的图来表达意思

    plot(leaps, scale="adjr2")#横轴表示变量的组成,纵轴表示模型拟合的效果值。
    
    图5 全子集回归分析的热图

    相关文章

      网友评论

        本文标题:变量之间相互不独立如何进行回归分析2021.3.18

        本文链接:https://www.haomeiwen.com/subject/agdvcltx.html