1

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

1 回答 1

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 
于 2015-02-17T04:15:17.560 回答