如何在R

时间:2017-06-01 23:07:24

标签: r linear-regression

我使用反向回归在R中进行特征选择。运行向后特征选择后,我从初始特征集开始得到一系列输出。

    Start AIC 6811.87
    Step  AIC 6809.88
    Step  AIC 6807.99
    Step  AIC 6807.63

我想用最小的AIC获取最后一步的功能,并将其传递给另一个模型。

model.aic.backward <- step(fullModel, direction = "backward", trace = 1)

当我尝试使用以下命令

打印条款时
print(attr(model.aic.backward$terms,"term.labels"))

我仍然可以获得输入模型的初始功能集。请建议我如何实现这一目标。

谢谢

1 个答案:

答案 0 :(得分:0)

step给出的模型是“最优”模型,而不是初始模型 这是一个说明性的例子:

# Linear data generating process
set.seed(1)
n <- 100
X <- matrix(rnorm(n*5),nrow=n)
betas <- c(-1.5,2,0,-2,0,0)
y <- cbind(rep(1,n), X) %*% betas + 0.5*rnorm(n)
dtset <- data.frame(y, X)

# Initial full model
lmfit <- lm(y~., data=dtset)

# Backward selection
model.aic.backward <- step(lmfit, direction = "backward", trace = 1)

以下是step

的输出
Start:  AIC=-137.45
y ~ X1 + X2 + X3 + X4 + X5

       Df Sum of Sq    RSS     AIC
- X2    1      0.01  22.44 -139.41
- X5    1      0.11  22.54 -138.97
- X4    1      0.22  22.66 -138.47
<none>               22.44 -137.44
- X1    1    294.14 316.57  125.24
- X3    1    422.44 444.87  159.26

Step:  AIC=-139.41
y ~ X1 + X3 + X4 + X5

       Df Sum of Sq    RSS     AIC
- X5    1      0.12  22.56 -140.89
- X4    1      0.22  22.66 -140.45
<none>               22.44 -139.41
- X1    1    294.37 316.82  123.32
- X3    1    423.21 445.65  157.44

Step:  AIC=-140.89
y ~ X1 + X3 + X4

       Df Sum of Sq    RSS     AIC
- X4    1      0.23  22.79 -141.89
<none>               22.56 -140.89
- X1    1    299.18 321.74  122.86
- X3    1    423.79 446.35  155.59

Step:  AIC=-141.89
y ~ X1 + X3

       Df Sum of Sq    RSS     AIC
<none>               22.79 -141.89
- X1    1    300.89 323.67  121.46
- X3    1    431.38 454.17  155.33

这里是model.aic.backward对象内的模型:

summary(model.aic.backward)


############
Call:
lm(formula = y ~ X1 + X3, data = dtset)

Residuals:
    Min      1Q  Median      3Q     Max 
-1.2168 -0.3057 -0.0047  0.3693  1.0416 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) -1.51531    0.04885  -31.02   <2e-16 ***
X1           1.94126    0.05424   35.79   <2e-16 ***
X3          -2.01862    0.04711  -42.85   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.4847 on 97 degrees of freedom
Multiple R-squared:  0.9693,    Adjusted R-squared:  0.9687 
F-statistic:  1531 on 2 and 97 DF,  p-value: < 2.2e-16

这是向后选择后的模型,而不是初始模型。

希望这可以帮到你。