美文网首页
R 多元线性回归和逐步回归

R 多元线性回归和逐步回归

作者: 上校的猫 | 来源:发表于2019-04-17 15:20 被阅读0次

多元线性回归

我们使用 mtcars 数据集来演示。

library(dplyr)
df <- mtcars %>% select(-c(am, vs, cyl, gear, carb))
View(df)
  1. 连续变量
    例如我们相同其中几个变量(disp ,hp ,dra,twt)来预测 mpg。
model <- mpg ~ disp + hp + drat + wt
fit <- lm(model, df)
fit
## Call:
## lm(formula = model, data = df)
##
## Coefficients:
## (Intercept)         disp           hp         drat           wt  
## 29.148738     0.003815    -0.034784     1.768049    -3.479668  

也可以通过下面方式查看更多细节

summary(fit)
anova(fit)

可视化

par(mfrow=c(2,2))
plot(fit)
Rplot.png
  1. 因子型变量
model <- mpg~ disp + hp + drat + wt + cyl + vs+ am+ gear + carb
df <- mtcars %>%
  mutate(cyl = factor(cyl),
         vs = factor(vs),
         am = factor(am),
         gear = factor(gear),
         carb = factor(carb))
summary(lm(model, df))

逐步回归

目的是筛选出最佳变量,更好拟合。下面是使用olsrr包自动筛选所有变量。

library(dplyr)
library(olsrr)

df <- mtcars %>%
  mutate(cyl = factor(cyl),
         vs = factor(vs),
         am = factor(am),
         gear = factor(gear),
         carb = factor(carb))

model <- mpg~.
fit <- lm(model, df)
test <- ols_step_all_possible(fit)
plot(test)

test结果中会给出所有变量组合,并给出了拟合度 rsquare 值。


image.png

R-squared(值范围0-1)描述的 输入变量对输出变量的解释程度。在单变量线性回归中R-squared 越大,说明拟合程度越好。然而只要曾加了更多的变量,无论增加的变量是否和输出变量存在关系,则R-squared 要么保持不变,要么增加。So, 需要adjusted R-squared ,它会对那些增加的且不会改善模型效果的变量增加一个惩罚向。结论,如果单变量线性回归,则使用 R-squared评估,多变量,则使用adjusted R-squared。在单变量线性回归中,R-squared和adjusted R-squared是一致的。另外,如果增加更多无意义的变量,则R-squared 和adjusted R-squared之间的差距会越来越大,Adjusted R-squared会下降。但是如果加入的特征值是显著的,则adjusted R-squared也会上升。
作者:王发北
来源:CSDN
原文:https://blog.csdn.net/wwangfabei1989/article/details/80656668
版权声明:本文为博主原创文章,转载请附上博文链接!

下面我去试验下

我有65个变量,用这种方法需要多久,毕竟计算所有组合是很大的,我用服务器试一下,emmm
如果不行可要换其他回归策略了

试验结果

我宛如智障,一种排列组合C(65,33) = 3609714217008131600,更别说其他情况一起累加了,结果太大直接无法写入了,看下报错


image.png

当然有其他挑选变量的办法,有向前回归,向后回归和逐步回归,也有许多R包可以实现。我采用逐步回归,试了 MASS 包中的 stepAIC(fit, direction = "both") 和 olsrr 包中的 ols_step_both_aic(fit),结果一致。

参考

相关文章

  • R 多元线性回归和逐步回归

    多元线性回归 我们使用 mtcars 数据集来演示。 连续变量例如我们相同其中几个变量(disp ,hp ,dra...

  • Matlab一元/多元回归(后续会有更新)

    一元线性回归&一元非线性回归 多元回归/逐步回归 多元回归 先画散点图,看有没有线性性质,再决定能不能用多元线性回...

  • 机器学习算法一览

    回归 普通最小二乘回归 线性回归 对数几率回归 逐步回归 多元自适应回归样条法 局部散点平滑估计 Jackknif...

  • 各类统计方法R语言实现(六)

    今天是各类统计方法R语言实现的第六期,我们主要介绍多元线性回归、回归诊断。 多元线性回归 多元线性回归指的是用多个...

  • 机器学习算法总结

    回归算法 线性回归算法: 支持向量机&向前逐步回归&惩罚线性回归(岭回归/套索回归/ElasticNet/最小角度...

  • 用遗传算法筛选线性回归模型自变量

    线性回归模型的解释变量筛选一般有逐步回归和全子集两种方法,在R中分别以car包的stepAIC和leaps包的re...

  • 2020-02-14

    线性回归:线性回归分为一元线性回归和多元线性回归,一元线性回归用一条直线描述数据之间的关系,多元回归是用一条曲线描...

  • Linear Regression

    在线性回归模型中,我们分为单元线性回归和多元线性回归(Multivariate Linear Regression...

  • 多元线性回归-matlab实现

    多元线性回归regress[b,bint,r,rint,stats] = regress(y,x, alpha)b...

  • 第三天 多元线性回归

    多元线性回归 多元线性回归旨在用现有的数据构建两个或多个因变量与一个因变量之间的相关模型 多元线性回归的实现步骤和...

网友评论

      本文标题:R 多元线性回归和逐步回归

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