Hastie 외 (2008)의 "통계 학습 요소"의 그림 5.4 (147 페이지)의 왼쪽 위 플롯을 재현하려고합니다.스플라인 예측을 위해 ns() 사용
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")
플롯이 동일하지입니다. 왜이 사람인지 알 수 있습니까? 모든 의견은 높이 평가했습니다.
'mdl'은'gam' 객체가 아니며,'gamm'이 아닌'glm'을 사용하여 생성됩니다. – mnel
당신은 plot.gam()에서 glm의 사용을 의미합니까? plot.gam()은 lm과 glm 객체를 받아 들일 수 있습니다. –