Khi nào thì một khoảng tin cậy có ý nghĩa, nhưng khoảng tin cậy tương ứng thì không?


14

Thông thường, khoảng tin cậy với độ bao phủ 95% rất giống với khoảng tin cậy chứa 95% mật độ sau. Điều này xảy ra khi ưu tiên là đồng phục hoặc gần đồng phục trong trường hợp sau. Do đó, khoảng tin cậy thường có thể được sử dụng để xấp xỉ khoảng tin cậy và ngược lại. Điều quan trọng, chúng ta có thể kết luận từ điều này rằng việc giải thích sai nhiều về khoảng tin cậy là khoảng tin cậy có ít hoặc không có tầm quan trọng thực tế đối với nhiều trường hợp sử dụng đơn giản.

Có một số ví dụ về các trường hợp điều này không xảy ra, tuy nhiên tất cả chúng dường như bị đánh cắp bởi những người đề xuất thống kê Bayes trong một nỗ lực để chứng minh rằng có một cái gì đó sai với cách tiếp cận thường xuyên. Trong các ví dụ này, chúng ta thấy khoảng tin cậy chứa các giá trị không thể, v.v ... được cho là cho thấy chúng vô nghĩa.

Tôi không muốn quay lại những ví dụ đó, hoặc một cuộc thảo luận triết học về Bayesian vs Người thường xuyên.

Tôi chỉ tìm kiếm ví dụ về điều ngược lại. Có trường hợp nào mà khoảng tin cậy và khoảng tin cậy khác nhau đáng kể và khoảng thời gian được cung cấp bởi quy trình tin cậy rõ ràng là vượt trội không?

Để làm rõ: Đây là về tình huống khi khoảng tin cậy thường được dự kiến ​​trùng với khoảng tin cậy tương ứng, tức là khi sử dụng các linh mục phẳng, thống nhất, v.v. Tôi không quan tâm đến trường hợp ai đó chọn một người xấu tùy tiện trước đó.

EDIT: Đáp lại câu trả lời của @JaeHyeok Shin bên dưới, tôi phải không đồng ý rằng ví dụ của anh ấy sử dụng khả năng chính xác. Tôi đã sử dụng tính toán bayes gần đúng để ước tính phân phối sau chính xác cho theta bên dưới trong 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))

Đây là khoảng tin cậy 95%:

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

nhập mô tả hình ảnh ở đây

EDIT # 2:

Đây là bản cập nhật sau những bình luận của @JaeHyeok Shin. Tôi đang cố gắng giữ nó đơn giản nhất có thể nhưng kịch bản phức tạp hơn một chút. Những thay đổi chính:

  1. Bây giờ sử dụng dung sai 0,001 cho giá trị trung bình (nó là 1)
  2. Tăng số bước lên 500k để tính dung sai nhỏ hơn
  3. Giảm sd của phân phối đề xuất xuống 1 để tính dung sai nhỏ hơn (là 10)
  4. Đã thêm khả năng rnorm đơn giản với n = 2k để so sánh
  5. Đã thêm kích thước mẫu (n) làm thống kê tóm tắt, đặt dung sai thành 0,5 * n_target

Đây là mã:

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

Kết quả, trong đó hdi1 là "khả năng" của tôi và hdi2 là rnorm đơn giản (n, theta, 1):

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

Vì vậy, sau khi hạ đủ dung sai và với chi phí của nhiều bước MCMC hơn, chúng ta có thể thấy chiều rộng CrI dự kiến ​​cho mô hình rnorm.

nhập mô tả hình ảnh ở đây


Không trùng lặp, nhưng có mối quan hệ chặt chẽ với stats.stackexchange.com/questions/419916/NH
user158565

6
Nói chung, khi bạn có một thông tin trước đó khá sai, theo nghĩa không chính thức, ví dụ: Bình thường (0,1) khi giá trị thực là -3,6, khoảng tin cậy của bạn khi không có nhiều dữ liệu sẽ khá kém khi nhìn từ một quan điểm thường xuyên.
jbowman

@jbowman Đây là trường hợp cụ thể khi sử dụng đồng phục trước hoặc đại loại như N (0, 1e6).
Sống

Nhiều thập kỷ trước, Bayesian thực sự đã gọi nhà thống kê đã sử dụng phi thông tin trước đó là Bayesian giả (hoặc giả-).
dùng158565

@ user158565 Đây là ngoại lệ nhưng đồng phục trước chỉ là một xấp xỉ. Nếu p (H_0) = p (H_1) = p (H_2) = ... = p (H_n) thì tất cả các linh mục có thể thoát khỏi quy tắc của Bayes giúp việc tính toán trở nên dễ dàng hơn. Không có gì sai hơn là bỏ các thuật ngữ nhỏ từ mẫu số khi nó có ý nghĩa.
xám xanh

Câu trả lời:


6

Trong một thiết kế thử nghiệm tuần tự, khoảng tin cậy có thể gây hiểu nhầm.

(Tuyên bố miễn trừ trách nhiệm: Tôi không cho rằng điều đó không hợp lý - nó hoàn toàn hợp lý trong lý luận Bayes và không gây hiểu lầm trong quan điểm của quan điểm Bayes.)

Đối với một ví dụ đơn giản, chúng ta hãy nói rằng chúng ta có một máy cho chúng ta một mẫu ngẫu nhiên X từ N(θ,1) với chưa biết θ . Thay vì vẽ n mẫu iid, chúng tôi vẽ mẫu cho đến khi nX¯n>kcho mộtkcố định. Đó là, số lượng mẫu là một thời gian dừngNđược xác định bởi

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

Từ luật logarit lặp, chúng ta biết Pθ(N<)=1 đối với bất kỳ θR . Loại quy tắc dừng này thường được sử dụng trong kiểm tra / ước tính tuần tự để giảm số lượng mẫu cần suy luận.

Nguyên tắc khả năng cho thấy sau của θ không bị ảnh hưởng bởi quy luật dừng và do đó đối với bất kỳ lý trơn tru trước π(θ) (ví dụ, θN(0,10)) , nếu chúng ta thiết lập một lực lượng đủ lớn k thì sau của θ là khoảng N(X¯N,1/N) và do đó khoảng thời gian đáng tin cậy được xấp xỉ cho là

CIbayes:=[X¯N1.96N,X¯N+1.96N].
Tuy nhiên, từ định nghĩa củaN, chúng ta biết rằng khoảng tin cậy này không chứa0nếuklớn vì
0<X¯NkNX¯N1.96N
chok0. Do đó, độ che phủ frequentist củaCIbayeslà zero kể từ
infθPθ(θCIbayes)=0,
0là đạt được khiθ0. Ngược lại, độ che phủ Bayesian luôn là xấp xỉ bằng0.95kể từ khi
P(θCIbayes|X1,,XN)0.95.

Tin nhắn về nhà: Nếu bạn quan tâm đến việc có bảo lãnh thường xuyên, bạn nên cẩn thận về việc sử dụng các công cụ suy luận Bayes luôn có giá trị đối với các bảo lãnh Bayes nhưng không phải lúc nào cũng dành cho những người thường xuyên.

(Tôi đã học được ví dụ này từ bài giảng tuyệt vời của Larry. Ghi chú này chứa nhiều cuộc thảo luận thú vị về sự khác biệt tinh tế giữa các khuôn khổ thường xuyên và Bayesian. Http://www.stat.cmu.edu/~larry/=stat705/Lecture14.pdf )

EDIT Trong ABC của Livid, giá trị dung sai quá lớn, do đó, ngay cả đối với cài đặt tiêu chuẩn nơi chúng tôi lấy mẫu một số lượng quan sát cố định, nó cũng không cho CR chính xác. Tôi không quen thuộc với ABC nhưng nếu tôi chỉ thay đổi giá trị tol thành 0,05, chúng ta có thể có CR rất sai lệch như sau

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

enter image description here

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

Tất nhiên, chuỗi không ổn định tốt nhưng ngay cả khi chúng ta tăng chiều dài chuỗi, chúng ta có thể bị CR tương tự - lệch sang phần tích cực.

NX¯Nk0<θkkkθ<0


"Nếu chúng ta đặt một k đủ lớn, thì phần sau của θ xấp xỉ N (X_N, 1 / N)" . Dường như với tôi rõ ràng là Pr (X | theta)! = Bình thường (theta, 1). Tức là, đó là khả năng sai cho quy trình tạo ra chuỗi của bạn. Ngoài ra, có một lỗi đánh máy. Trong ví dụ ban đầu, bạn dừng lấy mẫu khi sqrt (n) * abs (mean (x))> k.
Sống

i=1Nϕ(Xiθ)

Xin vui lòng xem chỉnh sửa của tôi trong câu hỏi. Tôi vẫn nghĩ rằng khoảng tin cậy của bạn không có ý nghĩa bởi vì nó sử dụng một khả năng không chính xác. Khi sử dụng khả năng chính xác như trong mã của tôi, chúng tôi có một khoảng thời gian hợp lý.
Sống

k0<X¯Nk/NX¯N1.96/Nkk>10

2×1.96/2000=0.0876

4

Do khoảng tin cậy được hình thành từ phân phối sau, dựa trên phân phối trước được quy định, bạn có thể dễ dàng xây dựng một khoảng đáng tin cậy rất xấu bằng cách sử dụng phân phối trước tập trung nhiều vào các giá trị tham số rất hợp lý. Bạn có thể tạo một khoảng đáng tin cậy không "có ý nghĩa" bằng cách sử dụng phân phối trước đó hoàn toàn tập trung vào các giá trị tham số không thể .


1
Hoặc tốt hơn nữa, một người đáng tin cậy được xây dựng bởi một người đi trước không đồng ý với sự ưu tiên của bạn (mặc dù đó là người đi trước) có tỷ lệ cược tốt với bạn là người vô lý. Đây không phải là hiếm trong khoa học; Tôi đã có các nhà nghiên cứu nói rằng họ không muốn đưa ra ý kiến ​​của chuyên gia, bởi vì trong quan sát của họ, các chuyên gia luôn tự tin thái quá.
Vách đá AB

1
Điều này đặc biệt về đồng phục, hoặc "phẳng", các linh mục.
Sống

1
@ Sống động: Bạn chắc chắn nên bao gồm rằng bạn đang nói về các linh mục phẳng trong câu hỏi của bạn. Điều đó thay đổi hoàn toàn mọi thứ.
Vách đá AB

1
@CliffAB Đó là trong hai câu đầu tiên, nhưng tôi sẽ làm rõ, cảm ơn.
Sống

1

Nếu chúng ta đang sử dụng căn hộ trước, thì đây đơn giản là một trò chơi mà chúng ta cố gắng đưa ra căn hộ trước trong việc xác định lại thông số không có ý nghĩa.

{0,1} {1}

Đây là lý do tại sao nhiều người Bayes phản đối các linh mục phẳng.


Tôi giải thích động lực của tôi khá rõ ràng. Tôi muốn một cái gì đó giống như các ví dụ trong đó khoảng tin cậy bao gồm các giá trị không thể, nhưng trong đó khoảng tin cậy hoạt động tốt. Nếu ví dụ của bạn xoay quanh việc làm một điều gì đó vô nghĩa, ví dụ như chọn sai khả năng, thì tại sao nó lại được mọi người quan tâm?
Sống

1
@Livid: chức năng khả năng là hoàn toàn hợp lý. Căn hộ trước trên tỷ lệ cược log là không. Và đây là toàn bộ lập luận mà Bayes sử dụng để nói rằng bạn không nên sử dụng các linh mục phẳng; chúng thực sự có thể cực kỳ nhiều thông tin và thường không như người dùng dự định!
Vách đá AB

1
Đây là Andrew Gelman thảo luận về một số vấn đề của các linh mục phẳng.
Vách đá AB

"Căn hộ trước trên tỷ lệ cược log là không." Tôi có nghĩa là đặt một căn hộ trước các tỷ lệ cược chuyển đổi dường như là vô nghĩa với bạn, như sử dụng khả năng sai. Xin lỗi, nhưng tôi không quen với ví dụ này. Mô hình này phải làm gì chính xác?
Sống

@ Sống động: có vẻ không bình thường, nhưng thực sự không phải vậy! Ví dụ, hồi quy logistic thường xem xét tất cả các tham số trên thang tỷ lệ cược log. Nếu bạn có các biến giả cho tất cả các nhóm của bạn và sử dụng các mục sư phẳng trên các tham số hồi quy của bạn, bạn sẽ gặp vấn đề chính xác .
Vách đá AB
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.