길이 n의 두 배열 x와 y가 주어지면 모델 y = a + b * x에 적합하고 기울기에 대한 95 % 신뢰 구간을 계산하려고합니다. 이것은 (b-델타, b + 델타)이며 여기서 b는 일반적인 방식으로 발견됩니다.
delta = qt(0.975,df=n-2)*se.slope
se.slope는 기울기의 표준 오차입니다. R에서 기울기의 표준 오차를 얻는 한 가지 방법은 summary(lm(y~x))$coef[2,2]
입니다.
이제 x와 y가 주어진 기울기의 가능성을 쓰고 여기에 "평평한"을 곱한 후 MCMC 기법을 사용 하여 사후 분포에서 표본 m 을 추출한다고 가정 합니다. 밝히다
lims = quantile(m,c(0.025,0.975))
내 질문 : (lims[[2]]-lims[[1]])/2
위에서 정의한 델타와 대략 동일합니까?
부록 아래는이 두 가지가 다른 간단한 JAGS 모델입니다.
model {
for (i in 1:N) {
y[i] ~ dnorm(mu[i], tau)
mu[i] <- a + b * x[i]
}
a ~ dnorm(0, .00001)
b ~ dnorm(0, .00001)
tau <- pow(sigma, -2)
sigma ~ dunif(0, 100)
}
R에서 다음을 실행합니다.
N <- 10
x <- 1:10
y <- c(30.5,40.6,20.5,59.1,52.5,
96.0,121.4,78.9,112.1,128.4)
lin <- lm(y~x)
#Calculate delta for a 95% confidence interval on the slope
delta.lm <- qt(0.975,df=N-2)*summary(lin)$coef[2,2]
library('rjags')
jags <- jags.model('example.bug', data = list('x' = x,'y' = y,'N' = N),
n.chains = 4,n.adapt = 100)
update(jags, 1000)
params <- jags.samples(jags,c('a', 'b', 'sigma'),7500)
lims <- quantile(params$b,c(0.025,0.975))
delta.bayes <- (lims[[2]]-lims[[1]])/2
cat("Classical confidence region: +/-",round(delta.lm, digits=4),"\n")
cat("Bayesian confidence region: +/-",round(delta.bayes,digits=4),"\n")
그리고 얻다:
고전적 신뢰 영역 : +/- 4.6939
베이지안 신뢰 영역 : +/- 5.1605
이 여러 번 실행되는 베이지안 신뢰 영역은 기존의 신뢰 영역보다 일관되게 넓습니다. 내가 선택한 이전의 결과 때문입니까?