前向逐步回归

Mic*_*ert 13 regression r

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

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

有没有办法指定使用矩阵/ 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=(~ .))
Run Code Online (Sandbox Code Playgroud)

S. *_*ica 18

scope期待(引用帮助页面?step)

单个公式,或包含组件'upper'和'lower'的列表,两个公式.有关如何指定公式及其使用方式的详细信息,请参阅.

您可以提取并使用与"〜"对应的公式.像这样:

> 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
> 
Run Code Online (Sandbox Code Playgroud)

  • 您是否了解到大量证据表明变量选择会导致严重的估计和推断问题?至少,应该逐步采用逐步方法来显示其任意性. (10认同)