1

我想从公式中包含自然样条的 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,我怀疑这是有充分理由的。在我开始破解之前,我只是想知道是否有一个聪明的解决方案。谢谢。

4

0 回答 0