로지스틱 회귀에서 예측에 대한 신뢰 구간
R에서 predict.lm은 선형 회귀의 결과를 기반으로 예측을 계산하고 이러한 예측에 대한 신뢰 구간을 계산합니다. 매뉴얼에 따르면 이러한 구간은 피팅의 오차 분산을 기반으로하지만 계수의 오차 구간이 아닙니다.
반면에 로지스틱 및 푸 아송 회귀를 기반으로 예측을 계산하는 predict.glm (그 중 일부)에는 신뢰 구간에 대한 옵션이 없습니다. 그리고 Poisson과 로지스틱 회귀에 대한 의미있는 통찰력을 제공하기 위해 이러한 신뢰 구간을 계산하는 방법을 상상하기조차 어렵습니다.
그러한 예측에 대한 신뢰 구간을 제공하는 것이 의미있는 경우가 있습니까? 그것들을 어떻게 해석 할 수 있습니까? 그리고 이러한 경우의 가정은 무엇입니까?
일반적인 방법은 선형 예측 자의 척도에서 신뢰 구간을 계산하는 것입니다. 여기서 상황이 더 정상 (가우시안)이 될 것입니다. 그런 다음 연결 함수의 역을 적용하여 선형 예측 자 척도의 신뢰 구간을 응답 척도로 매핑합니다.
이렇게하려면 두 가지가 필요합니다.
predict()
와type = "link"
(과) 전화- 전화
predict()
로se.fit = TRUE
.
첫 번째는 선형 예측 자의 척도에 대한 예측을 생성하고 두 번째는 예측의 표준 오류를 반환합니다. 의사 코드에서
## foo <- mtcars[,c("mpg","vs")]; names(foo) <- c("x","y") ## Working example data
mod <- glm(y ~ x, data = foo, family = binomial)
preddata <- with(foo, data.frame(x = seq(min(x), max(x), length = 100)))
preds <- predict(mod, newdata = preddata, type = "link", se.fit = TRUE)
preds
그런 다음 구성 요소 fit
및 se.fit
.
선형 예측 자의 신뢰 구간은 다음과 같습니다.
critval <- 1.96 ## approx 95% CI
upr <- preds$fit + (critval * preds$se.fit)
lwr <- preds$fit - (critval * preds$se.fit)
fit <- preds$fit
critval
필요에 따라 t 또는 z (정규) 분포에서 선택됩니다 (어떤 유형의 GLM에 사용할 속성과 속성이 무엇인지 정확히 잊어 버림). 는 1.96
95 % 커버리지를 제공하는 가우스 분포의 값이다 :
> qnorm(0.975) ## 0.975 as this is upper tail, 2.5% also in lower tail
[1] 1.959964
지금 fit
, upr
그리고 lwr
우리는 그들에게 링크 기능의 역을 적용해야합니다.
fit2 <- mod$family$linkinv(fit)
upr2 <- mod$family$linkinv(upr)
lwr2 <- mod$family$linkinv(lwr)
이제 세 가지와 데이터를 모두 플로팅 할 수 있습니다.
preddata$lwr <- lwr2
preddata$upr <- upr2
ggplot(data=foo, mapping=aes(x=x,y=y)) + geom_point() +
stat_smooth(method="glm", method.args=list(family=binomial)) +
geom_line(data=preddata, mapping=aes(x=x, y=upr), col="red") +
geom_line(data=preddata, mapping=aes(x=x, y=lwr), col="red")
'program tip' 카테고리의 다른 글
`new Image ()`와`document.createElement ( 'img')`사이에 차이점이 있습니까? (0) | 2020.12.09 |
---|---|
Python의 개인 생성자 (0) | 2020.12.09 |
MVC 4 목록 모델 바인딩은 어떻게 작동합니까? (0) | 2020.12.09 |
충돌을 미리 알려주는 일종의 'git rebase --dry-run'이 있습니까? (0) | 2020.12.09 |
스크립트가 tty에서 실행 중인지 확인하는 방법은 무엇입니까? (0) | 2020.12.09 |