【问题标题】:R: cv.glm variable lengh differ errorR:cv.glm 变量长度不同错误
【发布时间】:2017-12-17 06:53:20
【问题描述】:

我正在尝试比较后向选择与线性回归的降维效果。数据集相当大,有 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】:

    我想我找到了解决方案。我应该用

    创建 lm_full

    lm_full &lt;- lm(H.test~.,data=SurveyTest)

    而不是

    lm_full &lt;- lm(SurveyTest$H.test~.,data=SurveyTest)

    这解决了问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-25
      • 2015-06-08
      • 1970-01-01
      相关资源
      最近更新 更多