배경 : 나는 사회 심리학 박사 학위를 받았는데, 이론적 통계와 수학은 정량적 교과 과정에서 거의 다루지 않았습니다. 저학년과 대학원을 통해, 나는 "고전적인"빈번한 틀을 통해 (사회 과학 분야의 많은 사람들과 마찬가지로) 배웠습니다. 지금, 나는 또한 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에서하고있는 작업이 실제로 알고 싶은 내용을 알려주는 방법을 시뮬레이션 방법을 사용하여 어떻게 확인할 수 있습니까?