【问题标题】:forward stepwise regression前向逐步回归
【发布时间】:2014-05-19 18:37:35
【问题描述】:

在 R 逐步前向回归中,我指定了一个最小模型和一组要添加(或不添加)的变量:

min.model = lm(y ~ 1)
fwd.model = step(min.model, direction='forward', scope=(~ x1 + x2 + x3 + ...))

有没有办法指定使用矩阵/data.frame 中的所有变量,所以我不必枚举它们?

举例说明我想做什么,但它们不起作用:

# 1
fwd.model = step(min.model, direction='forward', scope=(~ ., data=my.data.frame))

# 2
min.model = lm(y ~ 1, data=my.data.frame)
fwd.model = step(min.model, direction='forward', scope=(~ .))

【问题讨论】:

    标签: r regression


    【解决方案1】:

    scope 期望(引用帮助页面?step

    单个公式或包含 成分“上”和“下”,两个公式。见 有关如何指定公式及其方式的详细信息 用过。

    您可以提取和使用“~”对应的公式。像这样:

    > my.data.frame=data.frame(y=rnorm(20),foo=rnorm(20),bar=rnorm(20),baz=rnorm(20))
    > min.model = lm(y ~ 1, data=my.data.frame)
    > biggest <- formula(lm(y~.,my.data.frame))
    > biggest
    y ~ foo + bar + baz
    > fwd.model = step(min.model, direction='forward', scope=biggest)
    Start:  AIC=0.48
    y ~ 1
    
           Df Sum of Sq    RSS      AIC
    + baz   1    2.5178 16.015 -0.44421
    <none>              18.533  0.47614
    + foo   1    1.3187 17.214  0.99993
    + bar   1    0.4573 18.075  1.97644
    
    Step:  AIC=-0.44
    y ~ baz
    
           Df Sum of Sq    RSS      AIC
    <none>              16.015 -0.44421
    + foo   1   0.41200 15.603  1.03454
    + bar   1   0.20599 15.809  1.29688
    > 
    

    【讨论】:

    • 您是否阅读过大量证据表明变量选择会导致严重的估计和推理问题?至少,应该引导逐步方法以显示其任意性。
    • @FrankHarrell - 我在哪里可以了解有关引导逐步回归的更多信息?
    • Http://biostat.mc.vanderbilt.edu/rms 并查找课程笔记
    【解决方案2】:

    你可以像这样一步完成

    fwd.model = step(lm(y ~ 1, data=my.data.frame), direction='forward', scope=~ x1 + x2 + x3 + ...)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-05
      • 2021-10-06
      • 2019-01-05
      • 2021-12-08
      • 2013-05-06
      • 2013-03-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多