Bir güven aralığı ne zaman mantıklıdır, ancak ilgili güvenilir aralık ne zaman anlam ifade etmez?


14

Genellikle% 95 kapsama alanına sahip bir güven aralığının, posterior yoğunluğun% 95'ini içeren güvenilir bir aralığa çok benzediğidir. Bu, önceki durumda üniform veya ikinci durumda üniformaya yakın olduğunda olur. Bu nedenle, güvenilir bir aralığa yaklaşmak için bir güven aralığı sıklıkla kullanılabilir veya tersi de geçerlidir. Önemli olarak, güvenilir bir aralık olarak bir güven aralığının çok kötü huylu olarak yorumlanmasının birçok basit kullanım vakası için çok az pratik pratik önemi olmadığı sonucuna varabiliriz.

Bunun gerçekleşmediği birkaç örnek var, ancak sık sık yaklaşımda yanlış bir şey olduğunu kanıtlamak için hepsi Bayesli istatistik taraftarları tarafından şifrelenmiş gibi görünüyor. Bu örneklerde, güven aralığının saçma olduklarını göstermesi beklenen imkansız değerler, vb. İçerdiğini görüyoruz.

Bu örneklere ya da Bayesian ve Frequentist hakkında felsefi bir tartışmaya geri dönmek istemiyorum.

Sadece tam tersinin örneklerini arıyorum. Güven ve güvenilir aralıkların önemli ölçüde farklı olduğu ve güven prosedürü tarafından sağlanan aralığın açıkça üstün olduğu durumlar var mı?

Açıklığa kavuşturmak için: Bu, güvenilir aralığın genellikle karşılık gelen güven aralığına denk gelmesinin beklendiği, yani düz, üniform vb. Birinin daha önce keyfi olarak kötü seçtiği durumla ilgilenmiyorum.

DÜZENLEME: @JaeHyeok Shin'in aşağıdaki cevabına yanıt olarak, örneğinin doğru olasılığı kullandığını kabul etmemeliyim. R'de aşağıdaki teta için doğru posterior dağılımı tahmin etmek için yaklaşık bayes hesaplamasını kullandım:

### 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))

Bu% 95 güvenilir aralıktır:

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

resim açıklamasını buraya girin

DÜZENLEME # 2:

@JaeHyeok Shin'ın yorumlarından sonra bir güncelleme. Mümkün olduğunca basit tutmaya çalışıyorum ama senaryo biraz daha karmaşık. Ana değişiklikler:

  1. Şimdi ortalama için 0.001'lik bir tolerans kullanarak (1 idi)
  2. Daha küçük toleransı hesaba katmak için adım sayısı 500 bine yükseltildi
  3. Daha küçük toleransı sağlamak için teklif dağıtımının SD'sini 1'e düşürdü (10'du)
  4. Karşılaştırma için n = 2k ile basit rnorm olasılığı eklendi
  5. Örnek boyutu (n) özet istatistik olarak ekledik, toleransı 0,5 * n_target olarak ayarlayın

İşte kod:

### 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 benim "olasılık" ve hdi2 basit rnorm (n, teta, 1) olduğu sonuçlar:

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

Bu nedenle, toleransı yeterince düşürdükten ve daha birçok MCMC adımı pahasına, rnorm modeli için beklenen CrI genişliğini görebiliriz.

resim açıklamasını buraya girin



6
Genel olarak, daha önce oldukça yanlış olan bir bilgilendiriciniz varsa, gayri resmi anlamda, örneğin, gerçek değer -3.6 olduğunda Normal (0,1) olduğunda, çok fazla veri olmadığında güvenilir aralığınız oldukça zayıf olacaktır. sık sık bir bakış açısıyla bakıyordu.
jbowman

@jbowman Bu daha önce tek tip üniforma veya N (0, 1e6) gibi bir şey kullanırken durumla ilgilidir.
Canlı

Onlarca yıl önce gerçek Bayes, daha önce sahte (veya sahte) Bayes olarak bilgilendirici olmayan istatistikçi olarak adlandırdı.
user158565

@ user158565 Bu offtopiktir, ancak tek biçimli bir önceki yalnızca bir yaklaşımdır. P (H_0) = p (H_1) = p (H_2) = ... = p (H_n) ise, tüm öncelikler Bayes'in kurallarını hesaplamayı kolaylaştırabilir. Bir paydadan küçük terimleri mantıklı olduğunda düşürmekten daha yanlış değildir.
Canlı

Yanıtlar:


6

Sıralı deneysel bir tasarımda, güvenilir aralık yanıltıcı olabilir.

(Feragatname: Makul olmadığını iddia etmiyorum - Bayes mantığında mükemmel mantıklı ve Bayesci bakış açısından yanıltıcı değil.)

Basit bir örnek olarak, bize bilinmeyen ile den rastgele bir örnek veren bir makinemiz olduğunu . Bunun yerine çizim istatistiksel bağımsız örneklerini, biz kadar numunelerin çizmek sabit için . Kendisine, numune sayısı bir durdurma zamanı ile tanımlanır XN(θ,1)θnnX¯n>kkN

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

Yinelenen logaritma yasasından, herhangi bir için olduğunu biliyoruz . Bu tip durdurma kuralı, çıkarım yapılacak örnek sayısını azaltmak için sıralı test / tahminlerde yaygın olarak kullanılır.Pθ(N<)=1θR

Olabilirlik ilkesi, posteriorunun kuralın durdurulmasından ve dolayısıyla makul bir düzgün (örn. için etkilenmediğini gösterir , eğer yeterince büyük bir ayarlarsak , posterioru yaklaşık ve bu nedenle güvenilir aralık yaklaşık olarak olarak verilir Ancak tanımından , biz bu güvenilir aralık içermediğini biliyoruz ise beri büyük θπ(θ)θN(0,10))kθN(X¯N,1/N)

CIbayes:=[X¯N1.96N,X¯N+1.96N].
N0k
0<X¯NkNX¯N1.96N
için . Bu nedenle, frequentist kapsama sıfır olduğundan ve olduğunda erişilen olan . Buna karşılık, Bayes kapsamı beri her zaman yaklaşık eşittirk0CIbayes
infθPθ(θCIbayes)=0,
0θ00.95
P(θCIbayes|X1,,XN)0.95.

Eve mesaj atın: Eğer sık ​​sık bir garantiye sahip olmak istiyorsanız, her zaman Bayes için geçerli olan ancak her zaman sık olmayanlar için geçerli olmayan Bayesian çıkarsama araçlarını kullanmaya dikkat etmelisiniz.

(Bu örneği Larry'nin muhteşem dersinden öğrendim. Bu not, sık ve Bayesci çerçeveler arasındaki ince fark hakkında birçok ilginç tartışma içeriyor. Http://www.stat.cmu.edu/~larry/=stat705/Lecture14.pdf )

DÜZENLEME Livid'in ABC'sinde, tolerans değeri çok büyüktür, bu nedenle sabit sayıda gözlemi örneklediğimiz standart ayar için bile doğru bir CR vermez. ABC'ye aşina değilim ama sadece tol değerini 0.05 olarak değiştirirsem, aşağıdaki gibi çok eğri bir CR'ye sahip olabiliriz

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

resim açıklamasını buraya girin

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

Tabii ki, zincir iyi stabilize edilmemiştir, ancak zincir uzunluğunu arttırsak bile, benzer CR'ye çarpık pozitif CR alabiliriz.

Aslında, ortalama farka dayalı ret kural yüksek olasılık ile beri bu ortamda çok uygun olmadığını düşünüyorum yakındır için ise ve yakın eğer .NX¯Nk0<θkkkθ<0


"Yeterince büyük bir k ayarlarsak, θ 'nin arka kısmı yaklaşık olarak N (X_N, 1 / N) olur" . Bana öyle geliyor ki Pr (X | theta)! = Normal (teta, 1). Yani, dizinizi oluşturan süreç için yanlış olasılık budur. Ayrıca, bir yazım hatası var. Orijinal örnekte, sqrt (n) * abs (ortalama (x))> k olduğunda örneklemeyi durdurursunuz.
Canlı

Yorumlar için teşekkürler. Durdurma kuralı altında bile, olasılık . Bu yüzden N artık rasgele olmasına rağmen N normal gözlemlerinin ürünü ile aynıdır. Bu örnek, şu anki durma kuralı için hala geçerli olup, belirttiğiniz orijinal ve tarihi örnektir. Örneğin, errortatistics.com/2013/04/06/…i=1Nϕ(Xiθ)
JaeHyeok Shin

Lütfen sorudaki düzenlememe bakın. Güvenilir aralığınızın hala mantıklı olmadığını düşünüyorum çünkü yanlış bir olasılık kullanıyor. Kodumda olduğu gibi doğru olasılığı kullanırken makul bir aralık elde ederiz.
Canlı

Ayrıntılı deneme için teşekkürler. Ayarınızda, eşitsizlikleri karşılayamayacak kadar küçük . O Not 1,96 den büyük olamaz ve kompanse yaklaşım hatasına gerekir diye düşünüyorum güvenli bir seçim olacaktır. k0<X¯Nk/NX¯N1.96/Nkk>10
JaeHyeok Shin

Ayrıca, bu ABC hesaplamanın standart durum için çalışıp çalışmadığını tekrar kontrol edebilir misiniz? Sabit sayıda gözlem yapmak için \ code {like} işlevini değiştirdim (n = 2000) Sonra, CR'nin teorik uzunluğu yaklaşık ancak her zaman çok daha geniş CR (uzunluk yaklaşık 2'dir). Tolerans seviyesi çok yüksek. 2×1.96/2000=0.0876
JaeHyeok Shin

4

Güvenilir aralık, öngörülen bir önceki dağılıma dayalı olarak posterior dağılımdan oluştuğu için, yüksek derecede mantıksız parametre değerlerine yoğunlaşan bir önceki dağılımı kullanarak kolayca çok kötü bir güvenilir aralık oluşturabilirsiniz. Tamamen imkansız parametre değerlerine odaklanmış bir önceki dağıtımı kullanarak "mantıklı" olmayan güvenilir bir aralık yapabilirsiniz .


1
Ya da daha iyisi, öncekinizle aynı fikirde olmayan bir başkasının inşa ettiği inandırıcı (başkasının önceliği olmasına rağmen) sizin için mantıksız olma ihtimaline sahiptir. Bu bilimde nadir değildir; Araştırmacılar, uzmanın görüşünü dahil etmek istemediklerini söylediler, çünkü gözlemlerinde uzmanlar her zaman aşırı güvendiler.
Cliff AB

1
Bu özellikle tekdüze veya "düz" önceliklerle ilgilidir.
Canlı

1
@Livid: Sorunuzda düz önceliklerden bahsettiğinizi kesinlikle belirtmelisiniz. Bu her şeyi tamamen değiştirir.
Cliff AB

1
@CliffAB İlk iki cümle içinde, ama açıklığa kavuşacağım, teşekkürler.
Canlı

1

Eğer daha önce bir daire kullanıyorsak, bu mantıklı olmayan bir yeniden parametrelendirmede bir daire bulmaya çalıştığımız bir oyundur.

Örneğin, bir olasılık hakkında çıkarım yapmak istediğimizi varsayalım. Olasılığın log oranlarına bir düz koyarsak, gerçek olasılık için% 95 güvenilir aralığımız , verileri görmeden önce olan iki noktadır ! Tek bir pozitif veri noktası alırsak ve% 95 güvenilir bir aralık oluşturursak, şimdi tek nokta .{0,1} {1}

Bu yüzden birçok Bayesli düz önceliklere itiraz ediyor.


Motivasyonumu oldukça açık bir şekilde anlattım. Güven aralıklarının imkansız değerler içerdiği, ancak güvenilir aralığın iyi davrandığı örnekler gibi bir şey istiyorum. Örneğiniz, örneğin yanlış olasılığı seçmek gibi saçma bir şey yapmaya bağlıysa, neden herkesin ilgisini çekebilir?
Canlı

1
@Livid: olabilirlik işlevi son derece makul. Düz ön log oran üzerinde değildir. Ve bu Bayesilerin düz öncelikler kullanmamanız gerektiğini söylemek için kullandıkları argümanın tamamıdır; aslında son derece bilgilendirici olabilir ve genellikle kullanıcının istediği gibi olmayabilir!
Cliff AB

1
İşte Andrew Gelman , düz önceliklerin bazı konularını tartışıyor .
Cliff AB

"Günlük oranlarından önceki daire değil." Demek istediğim, log-dönüştürülmüş oranlar üzerine bir daire koymak sizin için yanlış gibi görünüyor. Üzgünüm, ama bu örneğe aşina değilim. Bu model tam olarak ne yapmalı?
Canlı

@Livid: olağandışı görünebilir, ama gerçekten değil! Örneğin, lojistik regresyon tipik olarak log-odds ölçeğindeki tüm parametreleri dikkate alır. Tüm gruplarınız için kukla değişkenleriniz varsa ve regresyon parametrelerinizde düz öncelikler kullandıysanız, tam olarak bu sorunla karşılaşırsınız.
Cliff AB
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.