R中的前向子集选择没有拦截

forward subset selection in R without intercept

嘿,所以我正在开发一个多元回归模型,并使用前向子集选择方法来减少参数的数量,并使用 "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)

我以前没有用过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