신뢰 구간은 언제 "이해"되지만 해당 신뢰 구간이 그렇지 않습니까?


14

적용 범위가 95 % 인 신뢰 구간이 사후 밀도의 95 %를 포함하는 신뢰할 수있는 구간과 매우 유사한 경우가 종종 있습니다. 이는 후자의 경우 사전이 균일하거나 거의 균일 할 때 발생합니다. 따라서 신뢰 구간을 사용하여 신뢰할 수있는 구간을 추정 할 수 있으며 그 반대도 마찬가지입니다. 중요한 것은 신뢰할 수있는 구간으로 신뢰 구간을 잘못 해석하는 것이 많은 간단한 사용 사례에서 실질적으로 중요하지 않다는 결론입니다.

이런 일이 일어나지 않는 경우에는 여러 가지 예가 있지만, 모두 빈번한 접근 방식에 문제가 있음을 증명하기 위해 베이지안 통계의 지지자들이 선택하는 것처럼 보입니다. 이 예에서 신뢰 구간에는 불가능한 값 등이 포함되어 있으며 이는 의미가없는 것으로 표시됩니다.

나는 이러한 예나 베이지안 대 Frequentist에 대한 철학적 논의를 되돌아보고 싶지 않습니다.

나는 그 반대의 예를 찾고 있습니다. 신뢰 구간과 신뢰 구간이 실질적으로 다르고 신뢰 절차에 의해 제공된 구간이 분명히 우수한 경우가 있습니까?

명확히하기 : 이것은 신뢰할 수있는 간격이 일반적으로 해당 신뢰 구간과 일치 해야하는 상황, 즉 평평하고 균일 한 등을 사용할 때의 상황에 관한 것입니다. 누군가가 사전에 임의로 나쁜 것을 선택한 경우에는 관심이 없습니다.

편집 : 아래의 @ 재혁 신의 답변에 대한 응답으로, 그의 예가 올바른 가능성을 사용한다는 것에 동의하지 않아야합니다. 근사 베이지안 계산을 사용하여 R에서 아래의 세타에 대한 올바른 후방 분포를 추정했습니다.

### Methods ###
# Packages
require(HDInterval)

# Define the likelihood
like <- function(k = 1.2, theta = 0, n_print = 1e5){
  x    = NULL
  rule = FALSE
  while(!rule){
    x     = c(x, rnorm(1, theta, 1))
    n     = length(x)
    x_bar = mean(x)

    rule = sqrt(n)*abs(x_bar) > k

    if(n %% n_print == 0){ print(c(n, sqrt(n)*abs(x_bar))) }
  }
  return(x)
}

# Plot results
plot_res <- function(chain, i){
    par(mfrow = c(2, 1))
    plot(chain[1:i, 1], type = "l", ylab = "Theta", panel.first = grid())
    hist(chain[1:i, 1], breaks = 20, col = "Grey", main = "", xlab = "Theta")
}


### Generate target data ### 
set.seed(0123)
X = like(theta = 0)
m = mean(X)


### Get posterior estimate of theta via ABC ###
tol   = list(m = 1)
nBurn = 1e3
nStep = 1e4


# Initialize MCMC chain
chain           = as.data.frame(matrix(nrow = nStep, ncol = 2))
colnames(chain) = c("theta", "mean")
chain$theta[1]  = rnorm(1, 0, 10)

# Run ABC
for(i in 2:nStep){
  theta = rnorm(1, chain[i - 1, 1], 10)
  prop  = like(theta = theta)

  m_prop = mean(prop)


  if(abs(m_prop - m) < tol$m){
    chain[i,] = c(theta, m_prop)
  }else{
    chain[i, ] = chain[i - 1, ]
  }
  if(i %% 100 == 0){ 
    print(paste0(i, "/", nStep)) 
    plot_res(chain, i)
  }
}

# Remove burn-in
chain = chain[-(1:nBurn), ]

# Results
plot_res(chain, nrow(chain))
as.numeric(hdi(chain[, 1], credMass = 0.95))

이것은 95 % 신뢰할 수있는 간격입니다.

> as.numeric(hdi(chain[, 1], credMass = 0.95))
[1] -1.400304  1.527371

여기에 이미지 설명을 입력하십시오

편집 # 2 :

다음은 @JaeHyeok Shin의 의견에 대한 업데이트입니다. 가능한 한 간단하게 유지하려고하지만 스크립트가 조금 더 복잡해졌습니다. 주요 변경 사항 :

  1. 이제 평균에 대해 허용 오차 0.001 (1)을 사용합니다.
  2. 더 작은 공차를 설명하기 위해 단계 수를 500k로 증가
  3. 더 작은 공차를 고려하기 위해 제안서 배포의 sd를 1로 줄였습니다 (10).
  4. 비교를 위해 n = 2k 인 간단한 rnorm 가능성을 추가했습니다.
  5. 표본 크기 (n)를 요약 통계로 추가하고 공차를 0.5 * n_target으로 설정

코드는 다음과 같습니다.

### Methods ###
# Packages
require(HDInterval)

# Define the likelihood
like <- function(k = 1.3, theta = 0, n_print = 1e5, n_max = Inf){
  x    = NULL
  rule = FALSE
  while(!rule){
    x     = c(x, rnorm(1, theta, 1))
    n     = length(x)
    x_bar = mean(x)
    rule  = sqrt(n)*abs(x_bar) > k
    if(!rule){
     rule = ifelse(n > n_max, TRUE, FALSE)
    }

    if(n %% n_print == 0){ print(c(n, sqrt(n)*abs(x_bar))) }
  }
  return(x)
}


# Define the likelihood 2
like2 <- function(theta = 0, n){
  x = rnorm(n, theta, 1)
  return(x)
}



# Plot results
plot_res <- function(chain, chain2, i, main = ""){
    par(mfrow = c(2, 2))
    plot(chain[1:i, 1],  type = "l", ylab = "Theta", main = "Chain 1", panel.first = grid())
    hist(chain[1:i, 1],  breaks = 20, col = "Grey", main = main, xlab = "Theta")
    plot(chain2[1:i, 1], type = "l", ylab = "Theta", main = "Chain 2", panel.first = grid())
    hist(chain2[1:i, 1], breaks = 20, col = "Grey", main = main, xlab = "Theta")
}


### Generate target data ### 
set.seed(01234)
X    = like(theta = 0, n_print = 1e5, n_max = 1e15)
m    = mean(X)
n    = length(X)
main = c(paste0("target mean = ", round(m, 3)), paste0("target n = ", n))



### Get posterior estimate of theta via ABC ###
tol   = list(m = .001, n = .5*n)
nBurn = 1e3
nStep = 5e5

# Initialize MCMC chain
chain           = chain2 = as.data.frame(matrix(nrow = nStep, ncol = 2))
colnames(chain) = colnames(chain2) = c("theta", "mean")
chain$theta[1]  = chain2$theta[1]  = rnorm(1, 0, 1)

# Run ABC
for(i in 2:nStep){
  # Chain 1
  theta1 = rnorm(1, chain[i - 1, 1], 1)
  prop   = like(theta = theta1, n_max = n*(1 + tol$n))
  m_prop = mean(prop)
  n_prop = length(prop)
  if(abs(m_prop - m) < tol$m &&
     abs(n_prop - n) < tol$n){
    chain[i,] = c(theta1, m_prop)
  }else{
    chain[i, ] = chain[i - 1, ]
  }

  # Chain 2
  theta2  = rnorm(1, chain2[i - 1, 1], 1)
  prop2   = like2(theta = theta2, n = 2000)
  m_prop2 = mean(prop2)
  if(abs(m_prop2 - m) < tol$m){
    chain2[i,] = c(theta2, m_prop2)
  }else{
    chain2[i, ] = chain2[i - 1, ]
  }

  if(i %% 1e3 == 0){ 
    print(paste0(i, "/", nStep)) 
    plot_res(chain, chain2, i, main = main)
  }
}

# Remove burn-in
nBurn  = max(which(is.na(chain$mean) | is.na(chain2$mean)))
chain  = chain[ -(1:nBurn), ]
chain2 = chain2[-(1:nBurn), ]


# Results
plot_res(chain, chain2, nrow(chain), main = main)
hdi1 = as.numeric(hdi(chain[, 1],  credMass = 0.95))
hdi2 = as.numeric(hdi(chain2[, 1], credMass = 0.95))


2*1.96/sqrt(2e3)
diff(hdi1)
diff(hdi2)

hdi1이 내 "우도"이고 hdi2가 간단한 rnorm (n, theta, 1) 인 결과 :

> 2*1.96/sqrt(2e3)
[1] 0.08765386
> diff(hdi1)
[1] 1.087125
> diff(hdi2)
[1] 0.07499163

따라서 공차를 충분히 낮추고 더 많은 MCMC 단계를 희생시키면서 rnorm 모델의 예상 CrI 너비를 볼 수 있습니다.

여기에 이미지 설명을 입력하십시오



6
일반적으로 실제 값이 -3.6 일 때 보통 (0,1)과 같이 비공식적 인 의미에서 정보가 잘못되어있는 경우에는 많은 양의 데이터가없는 경우 신뢰할 수있는 간격이 상당히 나빠집니다. 빈번한 관점에서 보았습니다.
jbowman

@jbowman 이것은 특히 균일 한 사전 또는 N (0, 1e6)과 같은 것을 사용할 때에 관한 것입니다.
Livid

수십 년 전, 실제 베이지안은 의사 (또는 가짜) 베이지안으로서 비 정보를 사용했던 통계학자를 불렀습니다.
user158565 19

@ user158565이 주제는 주제가 아니지만 균일 한 사전은 근사치입니다. p (H_0) = p (H_1) = p (H_2) = ... = p (H_n)이면 모든 선행 사항이 Bayes의 규칙을 쉽게 계산에서 제외 할 수 있습니다. 의미가있을 때 분모에서 작은 용어를 삭제하는 것 이상은 아닙니다.
Livid

답변:


6

순차적 인 실험 설계에서 신뢰할 수있는 간격이 잘못 될 수 있습니다.

(면책 조항 : 나는 그것이 합리적이지 않다고 주장하지 않습니다-베이지안 추론에서 완벽하게 합리적이며 베이지안 관점의 관점에서 오도하지 않습니다.)

XN(θ,1)θnnX¯n>kkN

N=inf{n1:nX¯n>k}.

Pθ(N<)=1θR

가능성 원칙에 따르면 θ후자 는 정지 규칙에 의해 영향을받지 않으므로 합리적이고 부드러운 이전의π(θ)θN(0,10))kθN(X¯N,1/N)

CIbayes:=[X¯N1.96N,X¯N+1.96N].
N0케이
0<엑스¯케이엑스¯1.96
케이0나는와이이자형에스
INFθθ(θ나는와이이자형에스)=0,
0θ00.95
(θ나는와이이자형에스|엑스1,,엑스)0.95.

집으로 돌아 가기 메시지 : 잦은 보증에 관심이있는 경우 항상 베이지안 보장에는 유효하지만 잦은 지원에는 적합하지 않은 베이지안 추론 도구 사용에주의해야합니다.

(저는 Larry의 멋진 강의에서이 예제를 배웠습니다.이 노트에는 잦은 프레임 워크와 베이지안 프레임 워크의 미묘한 차이점에 대한 많은 흥미로운 토론이 포함되어 있습니다. http://www.stat.cmu.edu/~larry/=stat705/Lecture14.pdf )

편집 Livid의 ABC에서는 공차 값이 너무 커서 고정 된 수의 관측 값을 샘플링하는 표준 설정의 경우에도 정확한 CR을 제공하지 않습니다. 나는 ABC에 익숙하지 않지만 tol 값을 0.05로만 변경하면 다음과 같이 매우 왜곡 된 CR을 가질 수 있습니다

> X = like(theta = 0)
> m = mean(X)
> print(m)
[1] 0.02779672

여기에 이미지 설명을 입력하십시오

> as.numeric(hdi(chain[, 1], credMass = 0.95)) [1] -0.01711265 0.14253673

물론 체인은 잘 안정화되지 않지만 체인 길이를 늘려도 비슷한 CR을 얻을 수 있습니다.

엑스¯케이0<θ케이케이케이θ<0


"우리가 충분히 큰 k를 설정하면 θ의 후자는 대략 N (X_N, 1 / N) 입니다. " 분명히 Pr (X | theta)! = 보통 (theta, 1) 인 것 같습니다. 즉, 그것은 시퀀스를 생성 한 프로세스에 대한 잘못된 가능성입니다. 또한 오타가 있습니다. 원래 예제에서 sqrt (n) * abs (mean (x))> k 일 때 샘플링을 중지합니다.
Livid

나는=1ϕ(엑스나는θ)

질문에서 편집 한 내용을 참조하십시오. 나는 여전히 당신의 믿을만한 간격이 잘못된 가능성을 사용하기 때문에 의미가 없다고 생각합니다. 내 코드에서와 같이 올바른 가능성을 사용할 때 합리적인 간격을 얻습니다.
Livid

케이0<엑스¯케이/엑스¯1.96/케이케이>10

또한이 ABC 컴퓨팅이 표준 사례에 적합한 지 다시 확인할 수 있습니까? \ code {like} 함수를 대체하여 고정 된 수의 관측치 (n = 2000)를 그리도록했습니다. 그런 다음 CR의 이론적 길이는 약 여야합니다.2×1.96/2000 년=0.0876

4

신뢰할 수있는 구간은 규정 된 사전 분포를 기반으로 사후 분포로 구성되므로 매우 신뢰할 수없는 모수 값에 크게 집중된 사전 분포를 사용하여 매우 잘못된 신뢰할 수있는 구간을 쉽게 구성 할 수 있습니다. 불가능한 모수 값 에 전적으로 집중된 사전 분포를 사용하여 "이해되지 않는"신뢰할 수있는 간격을 만들 수 있습니다 .


1
또는 더 나은 방법으로, 이전에 동의하지 않는 이전에 의해 구성된 신뢰할 수있는 사람 (다른 사람의 이전 사람 임에도 불구하고)은 당신에게 터무니없는 일이 될 가능성이 높습니다. 이것은 과학에서는 드문 일이 아닙니다. 나는 연구원들이 전문가의 의견을 포함하고 싶지 않다고 말했다.
Cliff AB

1
이것은 구체적으로 균일하거나 "평평한"이전의 문제에 관한 것입니다.
Livid

1
@Livid : 당신은 당신의 질문에서 평범한 선행에 대해 이야기하고 있음을 분명히 포함시켜야합니다. 그것은 모든 것을 완전히 바꿉니다.
Cliff AB

1
@CliffAB 그것은 처음 두 문장에 있지만 감사합니다.
Livid

1

우리가 플랫을 먼저 사용한다면, 이것은 단순히 이해가 안되는 매개 변수화에서 플랫을 생각해내는 게임입니다.

{0,1} {1}

이것이 많은 베이지안들이 평평한 우선 순위에 반대하는 이유입니다.


나는 나의 동기를 아주 명확하게 설명했다. 신뢰 구간에 불가능한 값이 포함되지만 신뢰할 수있는 구간이 올바르게 작동하는 예제와 같은 것을 원합니다. 예를 들어 잘못된 가능성을 선택하는 것과 같이 무의미한 일을하는데 도움이되는 이유는 무엇입니까?
Livid

1
@Livid : 우도 함수는 완벽하게 합리적입니다. 로그 홀수 이전평평 하지 않습니다. 그리고 이것은 베이지안이 당신 평평한 사전을 사용 해서는 안된다고 말하는데 사용하는 논쟁의 전체입니다 . 그들은 실제로 매우 유익하고 종종 사용자가 의도 한 바가 아닙니다!
Cliff AB

1
여기 앤드류 겔만이 논의 평면 전과의 몇 가지 문제.
Cliff AB

"로그 홀수 이전의 플랫은 아닙니다." 나는 로그 변환 확률에 평평한 것을 놓는 것은 잘못된 가능성을 사용하는 것처럼 말도 안되는 것처럼 보입니다. 죄송하지만이 예에 익숙하지 않습니다. 이 모델은 정확히 무엇을해야합니까?
Livid

@Livid : 이례적인 것처럼 보이지만 실제로는 그렇지 않습니다! 예를 들어 로지스틱 회귀 분석은 일반적으로 로그 홀수 스케일의 모든 매개 변수를 고려합니다. 모든 그룹에 더미 변수가 있고 회귀 매개 변수에 플랫 우선 순위를 사용한 경우 정확하게이 문제가 발생합니다.
Cliff AB
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.