R:cv.glm变量长度不同错误

问题描述 投票:0回答:1

我试图比较后向选择与线性回归的尺寸减少。数据集相当大,有150个变量。

我一直使用相同的方法来生成与所选模型的交叉验证的比较,但这次使用此数据集时,cv.glm会出现我无法修复的错误:

model.frame.default中的错误(公式= SurveyTest $ H.test~:变量长度不同(找到'音乐')

SurveyTest中没有NA值,我似乎无法检测到长度差异的其他原因。

交叉验证代码:

#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)
r variables cross-validation glm statistics-bootstrap
1个回答
1
投票

我想我找到了解决方案。我应该创建lm_full

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

代替

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

这解决了这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.