我想根据公式中包含自然样条的R测量glm对象进行预测。以survey package homepage:
为例library(survey)
data(api)
dclus2 <-svydesign(id=~dnum+snum, fpc=~fpc1+fpc2, data=apiclus2)
m <- svyglm(api00 ~ ell + meals + avg.ed, design = dclus2)
我将最后一个变量更改为avg.ed.现在我想做以下事情:
m2 <- svyglm(api00 ~ ell + meals + ns(avg.ed,4), design = dclus2)
即。我想在avg.ed上使用立方样条曲线。如果我想在一些新数据上从模型m2进行预测,我会遇到错误:
n <- data.frame(meals=2,ell=2,avg.ed=3)
predict(m1,newdata=n,type="response")
predict(m2,newdata=n,type="response") # error
似乎predict.svyglm
在进行预测时并不理解ns
就是它(即类“ns”的对象)。从源代码看来它确实
mm %*% coef(object)
(其中mm
是模型矩阵)来获得预测 - 它不使用predict.glm
,我怀疑它有充分的理由。在我开始破解之前,只是想知道是否有一个聪明的解决方案。
感谢。