Hastie et al (2008) の "Elements of Statistical Learning" の Figure 5.4 (page 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")
プロットは同じではありません。これがなぜなのか誰にもわかりますか?すべてのフィードバックに感謝します。