2017-12-17 11 views
0

私は、次元削減のために後方選択と線形回帰を比較しようとしています。データセットはむしろ150変数で大きくなります。私はいつもこの時間はこのデータセットで選択したモデルのためのクロスバリデーションとの比較を生成するために、同じ方法を使用しますが、しているR:cv.glm variable lengh異なるエラー

、cv.glmは私が解決する問題があるエラーを与える:モデルで

エラー.frame.default(式= SurveyTest $ H.test〜:変数の長さは( 「音楽」)

はSurveyTestにはNA値はありませんが見つかり異なり、私はのために他の原因を検出するように見えることはできません長さの差。

0クロス検証のため

コード:

#Linear regression full model 
lm_full <- lm(SurveyTest$H.test~.,data=SurveyTest) 
summary(lm_full) 

#Backward selection 
lm_init <- lm(H.test~1,data=SurveyTest) 
backward_lm <- stepAIC(lm_full,scope = formula(lm_init),direction="backward", 
trace = FALSE) 
summary(backward_lm) 
AIC(backward_lm) 

#Cross Validation 
library(boot) 
model1 <- glm(lm_full) 
summary(lm_full) 
model2 <- glm(backward_lm) 
cv.glm(data=SurveyTest, glmfit=model1,K=10) 
cv.glm(data=SurveyTest, glmfit=model2,K=10) 

答えて

1

私は解決策を見つけたと思います。私は問題を解決し

lm_full <- lm(H.test~.,data=SurveyTest)

代わりの

lm_full <- lm(SurveyTest$H.test~.,data=SurveyTest)

でlm_fullを作成する必要があります。