嘿所以我正在开发一个多元回归模型并使用前向子集选择方法来减少参数的数量并使用“mallows Cp”作为选择标准。然而,这是一个工程问题,并且有一个截距没有意义,即当所有预测变量为零时,预测将为0.因此我想从我的回归方程中删除截距。我知道,如果只是回归“lm(y~x + z-1)”,那么这似乎不适用于我的代码。
#Fitting Using Model Selection
library(leaps)
a.fit<- regsubsets(ROP~.-1,data=dat1,nvmax=10)
summary(a.fit)
plot(summary(a.fit)$cp,xlab="No. of variables", ylab="Cp")
which.min((summary(a.fit)$cp))
plot(a.fit,scale="Cp")
coef(a.fit,6)
##Forward Stepwise Selection
f.fit<- regsubsets(ROP~.,data=dat1)
summary(f.fit)
plot(summary(f.fit)$cp,xlab="No. of variables", ylab="Cp")
which.min((summary(f.fit)$cp))
plot(f.fit,scale="Cp")
coef(f.fit,5)
答案 0 :(得分:1)
之前我没有使用regsubsets()
,但我看到它的方法只需将intercept
参数设置为FALSE,请检查?regsubsets
。例如:
data(swiss)
a.fit <- regsubsets(Fertility ~ ., data = swiss, nvmax = 10, intercept = F)
minimum <- which.min((summary(a.fit)$cp)) # 4
coef(a.fit, minimum)
Agriculture Education Catholic Infant.Mortality
0.11714390 -0.44750066 0.07508021 3.27420789