我使用反向回归在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"))我仍然得到了最初的一组功能,这些特性被输入到模型中。请建议我如何做到这一点。
谢谢
发布于 2017-06-01 23:34:32
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这是向后选择后的模型,而不是初始模型。
希望这能帮到你。
https://stackoverflow.com/questions/44318415
复制相似问题