2015-02-16 3 views
0

Эй, поэтому я разрабатываю модель множественной регрессии и использую метод выбора прямого подмножества, чтобы уменьшить количество параметров и использовать «mallows Cp» в качестве критерия выбора. Однако это инженерная проблема, и нет смысла перехватывать, т. Е. Когда все предсказатели равны нулю, предсказание будет равно 0. Следовательно, я хочу удалить перехват из моего уравнения регрессии. Я знаю, что в случае только регрессии будет выполняться «lm (y ~ x + z-1)», однако это не похоже на мой код.выбор прямого подмножества в R без перехвата

#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) 

ответ

1

Я раньше не использовал regsubsets(), но, как я вижу его, вы можете просто установить параметр в FALSE intercept, проверьте ?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 
Смежные вопросы