我试图重现 Hastie 等人(2008 年)的“统计学习要素”的图 5.4(第 147 页)的左上图。
这样做很容易:
library(splines)
library(gam)
sa=read.table("http://www-stat.stanford.edu/~tibs/ElemStatLearn/datasets/SAheart.data",
sep=",",head=T,row.names=1)
mdl=glm(chd~ns(sbp,4)+ns(tobacco,4)+ns(ldl,4)+famhist+ns(obesity,4)+ns(age,4),data=sa,family=binomial())
plot.gam(mdl,terms="ns(sbp, 4)")
这给出了所需的情节。
但是,如果我尝试直接应用我对该方法的粗略理解:
xvar=seq(min(sa$sbp),max(sa$sbp),length.out=200)
basis=ns(xvar,4)
sbpnames=c("ns(sbp, 4)1", "ns(sbp, 4)2", "ns(sbp, 4)3", "ns(sbp, 4)4")
plot(xvar,basis%*%mdl$coef[sbpnames],type="l")
情节不一样。有谁知道这是为什么?非常感谢所有反馈。