Bayesians는 Monte Carlo 시뮬레이션 방법을 사용하여 방법을 어떻게 확인합니까?


11

배경 : 나는 사회 심리학 박사 학위를 받았는데, 이론적 통계와 수학은 정량적 교과 과정에서 거의 다루지 않았습니다. 저학년과 대학원을 통해, 나는 "고전적인"빈번한 틀을 통해 (사회 과학 분야의 많은 사람들과 마찬가지로) 배웠습니다. 지금, 나는 또한 R을 사랑하고 방법의 일을하게되었는지 확인하기 위해 시뮬레이션 방법을 사용하여 방법을수학 증거보다 더 의미가 있습니다 (다시 : 이론적 통계가 아닌 정량적 사회 과학의 배경). 빈번한 방법과 시뮬레이션 방법은 함께 나에게 의미가 있습니다. 잦은 주의자들은 확률을 장기 확률이라고 생각하기 때문에 (예를 들어,이 작업을 임의로 여러 번 수행하면 시간의 50 %가 발생하면 50 %의 확률이 발생합니다). Monte Carlo 방법으로이 장기를 시뮬레이션 할 수 있습니다!

합병증 : 학부 과정 이후, 나는 베이지안 방법을 매우 잘 알고 있었으며, 내 인생에서 나를 베이지안으로 부르는 사람들이 항상 있었으며 결과는 해석하기가 쉽고 데이터 대신 가설에 대한 확률 얻습니다. 가설 등을 감안할 때 나는 실제로 이것에 들어갔고 베이지안 수업을 들었고, 베이지안 책과 논문을 읽었고, 스탠과 관련 R 패키지에 꽤 익숙하다.

Mayo 입력 : "Bayesian은 아마도 미래의 길"이라고 생각한 후 Deborah Mayo의 통계적 추론을 심각하게 테스트했습니다 . 그녀는 책의 시작 부분에서 측면을 고르지 않는다고 말하지만 그녀는 다음과 같이 말합니다. 그녀가 증거를 보는 방식이 타당하다고 생각하는지 아닌지에 대해 논의하고 싶지는 않지만, 이것이 베이 즈가 광고하는 모든 것입니까? 베이 즈 군중이 너무 골절되어 베이 즈 프레임 워크에서 데이터를 분석하는 "올바른"방법조차 모릅니다. 보통은 그냥rstanarm현재 포인트 추정치 및 신뢰할 수있는 구간은 종종 빈번한 추정치 및 신뢰 구간과 밀접하게 일치합니다. 모델 비교를 수행 할 수도 있지만 베이 즈 요인을 사후 확률 비교 등으로 설명하는 것이 항상 두렵습니다.

더 많은 사고 : Mayo의 책을 통해 내가 계속 생각했던 것은 : 컴퓨터를 사용하여 우리의 잦은 방법이 작동하는지 확인할 수있는 방법이 있습니다. 왜냐하면 확률은 장기적으로 볼 수 있고 그것을 시뮬레이션 할 수 있기 때문입니다. 베이지안은 베이지안 학교 (기본, 주관 등)에 따라 실제로 어떤 가능성이 있는지에 동의 할 수 없습니다. 내 질문으로 연결됩니다.

질문 : Bayesian은 확률이 장기적으로 비율로 정의되지 않은 경우 Monte Carlo 시뮬레이션 방법을 사용하여 방법이 불확실성을 올바르게 정의하는지 (즉, 유효한 신뢰할 수있는 구간 및 사후 분포를 계산 함) 어떻게 확인합니까?

: 데이터 생성기를 만듭니다. 이것은 단지 .5의 확률로 Bernoulli 분포에서 시뮬레이션 할 것입니다.

set.seed(1839)
p <- .50
n <- 100
gen_dat <- function(n, p) {
  rbinom(n, 1, p)
}

이제 로지스틱 회귀 분석의 신뢰 구간이 실제로 유효한지 확인하고 싶습니다. 회귀 분석을 여러 번 시뮬레이션하고 실제 모집단 값이 95 % 신뢰 구간의 95 %에 해당하는지 확인할 수 있습니다. 인터셉트 전용 모델이므로 p올바르게 추정하고 있는지 확인하고 싶습니다 .

set.seed(1839)
iter <- 10000
results <- sapply(seq_len(iter), function(zzz) {
  mod <- glm(gen_dat(n, p) ~ 1, binomial)
  conf <- suppressMessages(confint(mod))
  log(p / (1 - p)) < max(conf) & log(p / (1 - p)) > min(conf)
})
mean(results)

이 작업을 실행하는 데 몇 분이 걸리지 만 mean(results)호출 로 인해 우리에게 끝납니다 0.9416. 이것은 약 95 %이며 glm명령이 불확실성을 올바른 방식으로 설명 하고 있다고 확신 합니다. 내가 일어 서서 iter랩탑에서 더 오래 기다렸 다면 코에서 오른쪽으로 95 % 가까워 졌을 것 입니다.

다른 한편으로, 같은 것을 베이지안 모델에 맞추자 :

library(rstanarm)
set.seed(1839)
dat <- data.frame(y = gen_dat(n, p))
stan_mod <- stan_glm(y ~ 1, binomial, dat)
summary(stan_mod)

부분적으로 이것은 다음을 제공합니다.

Estimates:
                mean   sd    2.5%   25%   50%   75%   97.5%
(Intercept)    -0.1    0.2  -0.5   -0.2  -0.1   0.0   0.3  
mean_PPD        0.5    0.1   0.3    0.4   0.5   0.5   0.6  
log-posterior -73.0    0.7 -75.1  -73.1 -72.7 -72.5 -72.5  

베이지안은 장기적으로 볼 때 확률을 확률로 정의하지 않기 때문에 시뮬레이션 방법을 사용 stan_glm하여 불확실성을 정확하게 포착하는 것보다 어떻게 확인할 수 있습니까? 즉, 시뮬레이션 방법을 사용하여 이러한 신뢰할 수있는 간격이 유효하다는 것을 어떻게 신뢰할 수 있습니까? 그리고 지금, 나는 사전을 정의하지도 않습니다. 사전의 포함이 어떻게 여기에 영향을 미치나요? 이것이 불확실성 측정에 영향을 미치기 때문입니까?

Stan에서 허들 모델 구성 요소로 베타 회귀를 처음부터 처음부터 쓰려고 할 때 누군가에게 다음과 같이 권유했습니다. % 그 시간의." 그러나 저에게 그것은 베이지안이 믿는 바로 그 것에 반대합니다! 그것은 확률에 대한 잦은 이해에 의존합니다! 그렇다면 베이지안은 어떻게 summary()모델 호출 에서 얻은 신뢰할만한 간격 이 시뮬레이션 방법을 사용하여 불확실성을 정확하게 묘사 하고 있는지 어떻게 확신 할 수 있습니까?

질문의 목적 : 이것은 간단한 예이지만, 많은 경우 고객이 어려운 문제를 제공합니다. 그리고 나는 익숙하지 않은 일을 시도하기 때문에 종종 내가하고있는 일이 유효한지 확인하기 위해 시뮬레이션 연구를 실행합니다. Stan에서 커스텀 모델을 작성한다면, 내가하고있는 일이 합법적이라는 것을 어떻게 알 수 있습니까? Stan에서하고있는 작업이 실제로 알고 싶은 내용을 알려주는 방법을 시뮬레이션 방법을 사용하여 어떻게 확인할 수 있습니까?


3
좋은 질문. 두 가지 의견 : 1. 시뮬레이션 방법을 사용하여 잦은 모델을 "확인"할 수 있지만 시뮬레이션만으로는 잦은 모델의 신뢰도를 완전히 알 수 없습니다. 2 : 베이지안 / 스탠 모델이 추론에 신뢰할 수 없다는 것을 알 수있는 방법이 있습니다. 예를 들어 워밍업 기간 후에 분기 전이가 관찰되었습니다.
JTH

1
두 가지 종류의 "불확실성"을 혼란스럽게 생각합니다. 빈번한 방법은 해발 불확실성을 다루며 장기적 특성에 의해 정당화됩니다. 베이지안 방법은 유행 불확실성을 다루며, 긴 속성을 근거로 정당화 될 필요는 없습니다. 특히 95 % 신뢰할 수있는 구간이 95 % 신뢰 구간 일 필요는 없습니다. 그럼에도 베이지안조차도 "교정", 즉 빈번한 확률과 일치하기를 원할 수 있습니다. Rubin, DB를 참조하십시오. . 12 : 적용된 통계 통계 1984 실록은 "Bayesianly 정당과 관련 주파수 계산. 1,151에서 1,172 사이
a.arfe

주관적 확률의 세계에 살고 있다면 아무것도 확인하지 않아도 될 것입니다.
Aksakal

당신은보고 할 수 있습니다 stats.stackexchange.com/questions/2272/... 당신이 적어도 간격에 대해, 일에 대해 생각하고 무엇을 할 수없는 이유를.
Dave Harris

답변:


5

귀하의 질문에 논리적 문제가 있다고 생각합니다. 빈번주의 패러다임에서, 인구 진실을 추정하고, 데이터를 생성하고, 추정치에 적용 범위가 좋은지 확인하는 것이 좋습니다. 그러나 베이지안 패러다임에서는 데이터를 생성 할 근거가 없습니다! 베이지안은 데이터가 제공 될 때 그러한 진리의 가능성을 묻기 때문에 시뮬레이션에서 우리는 데이터를 발생시킨 다음 데이터를 조건으로하는 다른 진리가 필요합니다. 실제로, 조건부 확률의 법칙을 시뮬레이션하게되는데, 운 좋게도 항상 정의에 의해 유지됩니다. 나는 Rouder, 2014, Psychonomic Bulletin and Review 에서이 정확한 문제를 취합니다. https://dx.doi.org/10.3758/s13423-014-0595-4


1

Bayesian은 확률이 장기적으로 비율로 정의되지 않은 경우 Monte Carlo 시뮬레이션 방법을 사용하여 방법이 불확실성을 올바르게 정의하는지 (즉, 유효한 신뢰할 수있는 구간 및 사후 분포 계산) 어떻게 확인합니까?

여기서 혼란은 베이지안 통계의 시뮬레이션 방법의 목적에 관한 것입니다. Gibbs Sampling 또는 Hamiltonian Monte Carlo와 같은 Markov Chain Monte Carlo 방법의 유일한 목적은 Bayes 규칙의 분모를 계산하는 것입니다.

물론 MCMC를 불필요하게 만들 수있는 다른 방법이 종종 있습니다. 일부 모델은 접합을 사용하여 표현할 수 있고, 다른 모델은 매개 변수 공간에 미세 그리드를 적용하여 표현할 수 있지만, 다른 모델은 합격-거부 테스트로 해결할 수 있습니다. MCMC가 유용한 곳은 적분이 잘못 작동하는 경우입니다.

수학을 피하고 싶지만 실제로는 피할 수 없습니다. 베이 즈 규칙 보면

π(θ|엑스)=에프(엑스|θ)π(θ)θΘ에프(엑스|θ)π(θ)θ,
에프(엑스|θ)π(θ)에프(엑스|θ)π(θ|엑스)하나에 합산합니다. MCMC의 목표는 최저 번호를 결정하는 것입니다. 최하위 숫자는 상수입니다. 예상 된 가능성입니다.

해당 숫자의 정확도에 따라 일부 모수 추정값이 결정됩니다. 최대 사후 추정기를 사용하는 경우 MCMC는 불필요한 단계입니다. 대신 언덕 등반 알고리즘을 작성해야합니다. 한편, 사후 평균 또는 구간을 결정해야합니다. 95 % 간격이 무언가의 95 % 여야하고 분모가 해당 물체의 스케일이 무엇인지 결정하기 때문입니다.

베이지안 방법론에서 MCMC의 목표는 Markov 체인이 사후 밀도로 수렴되도록하는 것입니다. 그게 다야. 그것은 아무것도의 유효성을 테스트하지 않습니다. 고정 소수점 값을 결정하려는 시도 일뿐입니다. 수치 적분의 한 형태입니다. 모든 밀집된 영역이 포함되었는지 알고리즘을 무한대로 실행하지 않으면 알 수있는 방법이 없으므로, 인간의 판단이 있습니다. 알고리즘이 완료되었다고 판단되면 컷오프가 발생하지만 실제로 완료된 것은 아닙니다.

Frequentist 방법론에서 MCMC는 종종 모델의 합리성을 테스트하거나 분석 할 수없는 솔루션을 수치 적으로 근사화하는 데 사용됩니다. 여기서는 비슷한 목적으로 사용되지 않습니다.

Stan에서 커스텀 모델을 작성한다면, 내가하고있는 일이 합법적이라는 것을 어떻게 알 수 있습니까? Stan에서하고있는 작업이 실제로 알고 싶은 내용을 알려주는 방법을 시뮬레이션 방법을 사용하여 어떻게 확인할 수 있습니까?

이 질문은 훨씬 더 어렵다. Stan은 빠른 알고리즘이므로 부정확성의 추가 위험을 위해 속도를 교환합니다. Stan은 구조상 틀린 것보다 더 정확할 것입니다. 더 정확할 수 있지만 매우 느린 로컬 최대 값을 위해 매개 변수 공간을 광범위하게 검색하도록 설계된 다른 알고리즘이 있습니다.

θΘ에프(엑스|θ)π(θ)θ.

두 번째로 할 수있는 것은 대체 알고리즘으로이를 확인하는 것입니다. 숫자가 일치하지는 않지만 충분히 가깝다고 생각되면 괜찮습니다.

셋째, 대부분의 사전 빌드 된 패키지는 무언가가 잘못되었다는 경고를 제공합니다. 경고가 표시되면 문제의 원인을 조사한 후 다른 것을 사용하여 다른 알고리즘으로 다시 작성하지 마십시오.

홍보(μ)=(7,22)σ2(25,.12)

다섯째, Stan을 처음 시작하기 전에이 작업을 수행해야합니다. 한계 가능성을 1 차원 또는 2 차원으로 그래프로 표시하십시오. 알고리즘을 방해 할 수있는 곳이 있습니까?

Bayesians는 장기적으로 볼 때 확률을 확률로 정의하지 않기 때문에 stan_glm이 정확하게 불확실성을 포착하는 것보다 시뮬레이션 방법을 사용하여 확인할 수 있습니까? 즉, 시뮬레이션 방법을 사용하여 이러한 신뢰할 수있는 간격이 유효하다는 것을 어떻게 신뢰할 수 있습니까? 그리고 지금, 나는 사전을 정의하지도 않습니다. 사전의 포함이 어떻게 여기에 영향을 미치나요? 이것이 불확실성 측정에 영향을 미치기 때문입니까?

사전을 정의하지 않으면 모델이 유효하지 않습니다. 합리적인 사전 밀도를 정의하지 않는 경우 왜 베이지안 모델을 사용 하시겠습니까? 빈번한 모델은 불량 샘플을 수집하여 발생할 수있는 최대 손실 위험을 최소화합니다. 그것들은 매우 비관적이며 베이지안 방법과 동일한 결과를 생성하기 위해 더 많은 정보가 필요합니다.

그럼에도 불구하고, 그것은 좋은 사전 밀도를 사용하지 않으면 소용이 없습니다. 사전 밀도는 베이지안 방법이 불량한 샘플을 선택함으로써 발생하는 평균 손실을 최소화 할 수있게합니다. 이전의 정보는 가중 스킴으로 작용하여 일부 극단적 인 샘플이 유감스럽게 우연히 선택 될 경우 이전은 데이터의 역할을 약화시킵니다.

편집 나는 하나의 구체적인 답변을 제공하지 않았다는 것을 깨달았습니다. 문제였다

Stan에서하고있는 작업이 실제로 알고 싶은 내용을 알려주는 방법을 시뮬레이션 방법을 사용하여 어떻게 확인할 수 있습니까?

엑스

1{1/,1/2,2/}

당신에게 중요한 점으로, 베이지안 예측이 진정한 분포가되는 것은 불가능합니다. 세 가지 분포 중 하나는 실제 분포입니다. 베이지안 방법은 관측 된 값과 이전을 기반으로 확률을 가중시킵니다. 후부는 절대 분포 나 예측 밀도가 될 수 없습니다.

"모든 가능한 설명 세트 (매개 변수, 모델 등)에서 6 개의 머리와 2 개의 꼬리를 볼 확률은 얼마입니까?"

H0:=1/,

시뮬레이션을 사용하여 표본을 고정하면 Bayes 정리가 수학적 정리이므로 Stan이 훌륭하게 수행 할 수 있습니다. 사후 최적입니다. 알고리즘이 분모를 추정 할 때 자연 오차 수준까지 베이 즈 정리를 올바르게 구현했다는 것만 알 수 있습니다.

당신이 할 수있는 세 가지가 있습니다. 먼저 표본 외부 데이터에 모델 스코어링 방법을 사용할 수 있습니다. 둘째, 베이지안 모델 선택 또는 모델 평균화 프로세스를 사용할 수 있습니다. 셋째,이 문제를 빈번한 문제로 취급하고 추정값의 샘플링 분포를 구성 할 수 있습니다.

첫 번째로, 채점 방법은 그 자체로 전체 문헌입니다. 당신은 그것들을 연구해야합니다. 베이지안 모델 선택 및 모델 평균화는 모델을 매개 변수로 취급합니다. 모형 선택의 경우 모형이 참일 확률이 계산됩니다. 모형 평균화의 경우 각 모형이 참일 확률이 계산되며 모형 공간에 대한 가중치로 사용됩니다. 마지막으로,이를 Frequentist 모델로 취급 할 수 있습니다.

마지막 표준은 이전 표준으로 인해 많은 표준 사례에서 문제가 될 것입니다. 3 차원 이상의 정규 분포를 갖는 모델의 경우, 이전 밀도가 적절한 밀도가 아닌 경우 후방 밀도는 단일성과 통합되지 않습니다. 다시 말해, 총알을 물고 실제 복잡성이있는 모델에 대한 사전을 선택해야합니다.

올바른 중심의 적절한 사전의 존재는 개선 된 정보로 인해 베이지안 방법이 해당 빈번한 방법보다 우수 할 경우를 강제합니다. 베이지안 방법은 합리적인 표준 하에서 이길 것입니다. 그것은 Frequentist 방법의 결함 때문이 아니라 베이지안 방법은 외부 정보를 가정합니다. Frequentist 방법은 샘플의 정보 만 고려하면 실제 정보가있는 경우 정보가 적습니다.

다시 말하지만, 실제 사전이 없다면 왜 베이지안 방법을 사용하고 있습니까?


@ Aksakal 나는 당신과 동의, 그것은 결정과 분석을 혼동합니다. 나는 그것을 제거했다.
Dave Harris
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.