답변:
일반적인 방법으로 :
p <- predict(mod, newdata, type = "link", se.fit = TRUE)
그런 다음의 관측치 예측에 표준 오차 p
가있는 성분 이 포함되어 있습니다 . 그런 다음 SE에 원하는 수준에 적절한 값을 곱하여 CI를 형성 할 수 있습니다. 예를 들어 대략 95 % 신뢰 구간은 다음과 같이 구성됩니다.$se.fit
newdata
upr <- p$fit + (2 * p$se.fit)
lwr <- p$fit - (2 * p$se.fit)
필요한 구간에 대해 또는 가우스 분포 에서 적절한 값을 대입 합니다.
내가 사용하는 것이 주 type = "link"
당신이 GAM 또는 그냥 AM있는 경우에 당신이 말을하지 않는 한. GAM에서 선형 예측 변수의 스케일에 신뢰 구간을 형성 한 다음 역함수를 적용하여 응답의 스케일로 변환해야합니다.
upr <- mod$family$linkinv(upr)
lwr <- mod$family$linkinv(lwr)
이제는 대략적인 간격입니다. 또한 이러한 간격은 포인트 현명 예측 값에 있습니다 그리고 그들은 계정에 부드러움 선택이 수행 된 사실을 고려하지 않습니다.
모수의 사후 분포에서 시뮬레이션을 통해 동시 신뢰 구간을 계산할 수 있습니다. 내 블로그 에 그 예가 있습니다.
당신이 평활 매개 변수에 따라 조건없는 신뢰 구간을 원하는 경우 (즉 우리가 추정하는 대신 부드러움 매개 변수의 값을 알고 있지만하지 않는 것이 고려 하나), 다음 추가 unconditional = TRUE
받는 predict()
전화.
또한이 작업을 직접 수행하지 않으려는 경우 최신 버전의 mgcv 에는 평활도plot.gam()
와 플롯 간격의 플롯을 만드는 데 사용되는 모든 데이터가 포함 된 객체를 반환하는 함수가 있습니다. plot.gam()
obj에 출력을 저장할 수 있습니다.
obj <- plot(model, ....)
그런 다음 obj
smooth마다 하나의 구성 요소가있는 목록 인 inspect . 추가 seWithMean = TRUE
받는 plot()
부드러움 매개 변수에 따라 조건없는 신뢰 구간을 얻기 위해 호출.
패키지 mgcv
(gam보다 최신)는 신뢰할 수있는 간격을 쉽게 표시합니다. 이 베이지안 접근 방식은 신뢰 구간과는 다르지만 수치 시뮬레이션에서 볼 수 있듯이 결과는 거의 동일합니다 ( mgra로 연결된 Marra and Wood 의 논문 참조 ).