我想从公式中包含自然样条的 R 调查 glm 对象进行预测。以调查包主页为例:
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
,我怀疑这是有充分理由的。在我开始破解之前,我只是想知道是否有一个聪明的解决方案。谢谢。