3
predict
과 survey
패키지의 svyglm
개체로 이상한 동작을 발견했습니다. '나는 모델에 대한 예측으로 한 수준 변수를 넣는 경우svyglm을 사용하여 예측하기
Error in `contrasts<-`(`*tmp*`, value = contr.funs[1 + isOF[nn]]) :
contrasts can be applied only to factors with 2 or more levels
이 오류는 의미가 있지만, newData에 대한 나는 돈 : predict
에 newData의 한 레벨 요소/문자가있는 경우이 오류를 뱉어 문제를 보지 마라.
일반 glm
으로 정상적으로 작동합니다.
MRE :
library(survey)
data(api)
dstrat<-svydesign(id=~1,strata=~stype, weights=~pw, data=apistrat, fpc=~fpc)
svymodel <- svyglm(api00~sch.wide,design=dstrat)
# errors
predict(svymodel, data.frame(sch.wide=rep("No",10)))
regmodel <- glm(api00~sch.wide,data=apistrat)
# works
predict(regmodel,data.frame(sch.wide=rep("No",10)))
나는 요인의 수준을 해킹하면 작동 것을 발견, 그러나 이것은 필요는 없습니다 :
svymodel <- svyglm(api00~sch.wide,design=dstrat)
predict(svymodel, data.frame(sch.wide=factor(rep("No",10),
levels = c("No","random phrase"))))
내가 뭔가를 오해하거나입니다 있습니까 survey
패키지에 문제가 있습니까?
교수님 감사합니다 Lumley. – Carl
그리고 r-forge를 기반으로하는 버전 3.31-5는'$ xlevels'를'predict.svyglm'에 추가합니다. –