我在使用此代码
的季节包中运行了一个casecross函数library(season)
library(splines)
data(CVDdaily)
CVDdaily<-subset(CVDdaily,date<=as.Date('1987-12-31'))
# Effect of ozone on CVD death
model1<- casecross(cvd ~ o3mean+tmpd+Mon+Tue+Wed+Thu+Fri+Sat, data=CVDdaily)
但是当我使用自然样条线时,我收到一条错误消息“ns中的错误(tmpd,df = 6):找不到对象'tmpd'”
model2<-casecross(cvd ~ o3mean + ns(tmpd, df=6) +Mon+Tue+Wed+Thu+Fri+Sat, data=CVDdaily)
是否意味着软件包不支持样条线?如果是的话,我会很感激如何使用季节包来调整温度的非线性效应?
答案 0 :(得分:0)
您可以使用dlnm软件包在季节中调整样条曲线。 (我使用了4个自由度,而不是6个。)
library(season)
library(dlnm)
data(CVDdaily)
CVDdaily = subset(CVDdaily,date<=as.Date('1987-12-31'))
t.spline = crossbasis(CVDdaily$tmpd,lag=0,argvar=list(fun="ns",df=4))
model2 = casecross(cvd ~ o3mean + t.spline +Mon+Tue+Wed+Thu+Fri+Sat, data=CVDdaily)
summary(model2)
要获得估计样条曲线的精美绘图,需要提取系数和方差 - 协方差矩阵。
coef = coefficients(model2$c.model)[2:5]
var.cov = model2$c.model$var[2:5,2:5]
pred.t = crosspred(basis=t.spline, at=45:86, vcov=var.cov, coef=coef, model.link='identity')
plot(pred.t,"overall")