Tính khoảng tin cậy cho giá trị trung bình của phân phối beta


12

Xem xét phân phối beta cho một bộ xếp hạng nhất định trong [0,1]. Sau khi đã tính giá trị trung bình:

μ= =αα+β

Có cách nào để cung cấp một khoảng tin cậy xung quanh ý nghĩa này không?


1
chiếm ưu thế - bạn đã xác định trung bình dân số . Một khoảng tin cậy sẽ được dựa trên một số ước tính về ý nghĩa đó. Bạn đang sử dụng thống kê mẫu nào?
Glen_b -Reinstate Monica

Glen_b - Xin chào, tôi đang sử dụng một bộ xếp hạng chuẩn hóa (của sản phẩm) trong khoảng [0,1]. Những gì tôi đang tìm kiếm là một ước tính của một khoảng thời gian xung quanh giá trị trung bình (đối với mức độ tin cậy nhất định), ví dụ: trung bình + - 0.02
dominic

2
±

Glen_b - cảm ơn vì sự kiên nhẫn của bạn. Tôi sẽ sử dụng MLE
dominic

2
nμμ

Câu trả lời:


22

Mặc dù có các phương pháp cụ thể để tính khoảng tin cậy cho các tham số trong phân phối beta, tôi sẽ mô tả một vài phương pháp chung, có thể được sử dụng cho (hầu hết) tất cả các loại phân phối , bao gồm phân phối beta và được thực hiện dễ dàng trong R .

Hồ sơ khả năng khoảng tin cậy

Hãy bắt đầu với ước tính khả năng tối đa với khoảng tin cậy khả năng hồ sơ tương ứng. Đầu tiên chúng ta cần một số dữ liệu mẫu:

# Sample size
n = 10

# Parameters of the beta distribution
alpha = 10
beta = 1.4

# Simulate some data
set.seed(1)
x = rbeta(n, alpha, beta)

# Note that the distribution is not symmetrical
curve(dbeta(x,alpha,beta))

Hàm mật độ xác suất cho phân phối beta.

Ý nghĩa thực tế / lý thuyết là

> alpha/(alpha+beta)
0.877193

Bây giờ chúng ta phải tạo một hàm để tính hàm khả năng nhật ký âm cho một mẫu từ phân phối beta, với giá trị trung bình là một trong các tham số. Chúng ta có thể sử dụng các dbeta()chức năng, nhưng vì đây không sử dụng một parametrisation liên quan đến giá trị trung bình, chúng tôi đã phải thể hiện các thông số của nó ( αβ ) là một hàm của giá trị trung bình và một số thông số khác (như độ lệch chuẩn):

# Negative log likelihood for the beta distribution
nloglikbeta = function(mu, sig) {
  alpha = mu^2*(1-mu)/sig^2-mu
  beta = alpha*(1/mu-1)
  -sum(dbeta(x, alpha, beta, log=TRUE))
}

Để tìm ước tính khả năng tối đa, chúng ta có thể sử dụng mle()hàm trong stats4thư viện:

library(stats4)
est = mle(nloglikbeta, start=list(mu=mean(x), sig=sd(x)))

Chỉ cần bỏ qua các cảnh báo cho bây giờ. Họ đang gây ra bởi các thuật toán tối ưu hóa giá trị cố gắng không hợp lệ cho các thông số, cho giá trị âm cho α và / hoặc β . (Để tránh cảnh báo, bạn có thể thêm một lowerđối số và thay đổi tối ưu hóa methodđược sử dụng.)

Bây giờ chúng tôi có cả ước tính và khoảng tin cậy cho hai tham số của chúng tôi:

> est
Call:
mle(minuslogl = nloglikbeta, start = list(mu = mean(x), sig = sd(x)))

Coefficients:
        mu        sig 
0.87304148 0.07129112

> confint(est)
Profiling...
         2.5 %    97.5 %
mu  0.81336555 0.9120350
sig 0.04679421 0.1276783

Lưu ý rằng, như mong đợi, khoảng tin cậy không đối xứng:

par(mfrow=c(1,2))
plot(profile(est)) # Profile likelihood plot

Hồ sơ khả năng hồ sơ cho phân phối beta.

(Các đường màu đỏ tươi bên ngoài thứ hai cho thấy khoảng tin cậy 95%.)

Cũng lưu ý rằng thậm chí chỉ với 10 quan sát, chúng tôi có được ước tính rất tốt (khoảng tin cậy hẹp).

Thay thế cho mle(), bạn có thể sử dụng fitdistr()chức năng từ MASSgói. Điều này cũng tính toán công cụ ước tính khả năng tối đa và có lợi thế là bạn chỉ cần cung cấp mật độ, không phải khả năng ghi nhật ký âm, nhưng không cung cấp cho bạn khoảng tin cậy khả năng hồ sơ, chỉ có khoảng tin cậy không đối xứng (đối xứng).

Một lựa chọn tốt hơn là mle2()(và các chức năng liên quan) từ bbmlegói, phần nào linh hoạt và mạnh mẽ hơn mle(), và đưa ra các lô đẹp hơn một chút.

Khoảng tin cậy của Bootstrap

Một lựa chọn khác là sử dụng bootstrap. Nó rất dễ sử dụng trong R và thậm chí bạn không phải cung cấp hàm mật độ:

> library(simpleboot)
> x.boot = one.boot(x, mean, R=10^4)
> hist(x.boot)                # Looks good
> boot.ci(x.boot, type="bca") # Confidence interval
BOOTSTRAP CONFIDENCE INTERVAL CALCULATIONS
Based on 10000 bootstrap replicates

CALL : 
boot.ci(boot.out = x.boot, type = "bca")

Intervals : 
Level       BCa          
95%   ( 0.8246,  0.9132 )  
Calculations and Intervals on Original Scale

Bootstrap có thêm lợi thế là nó hoạt động ngay cả khi dữ liệu của bạn không đến từ bản phân phối beta.

Khoảng tin cậy tiệm cận

Đối với các khoảng tin cậy trên trung bình, chúng ta đừng quên các khoảng tin cậy tiệm cận cũ tốt dựa trên định lý giới hạn trung tâm (và phân phối t ). Chừng nào chúng ta có hoặc là một kích thước mẫu lớn (vì vậy CLT áp dụng và sự phân bố của giá trị trung bình mẫu là xấp xỉ bình thường) hoặc giá trị lớn của cả αβ (để phân phối phiên bản beta chính nó là xấp xỉ bình thường), nó hoạt động tốt. Ở đây chúng tôi không có, nhưng khoảng tin cậy vẫn không quá tệ:

> t.test(x)$conf.int
[1] 0.8190565 0.9268349

Đối với các giá trị n chỉ hơi lớn (và không quá cực trị của hai tham số), khoảng tin cậy tiệm cận hoạt động cực kỳ tốt.


Cảm ơn Karl. Câu hỏi nhanh: làm thế nào bạn xác định alpha và beta của bạn? Tôi đã sử dụng phương sai và mẫu có nghĩa là để có được alpha và beta, nhưng tôi nghĩ rằng tôi có thể đã nhầm lẫn ý nghĩa của mẫu với dân số vì vậy tôi không chắc là tôi đã đi đúng hướng ... xem nhận xét của Glen_b ở trên .
dominic

Để xác định αβ như chức năng của độ lệch trung bình và tiêu chuẩn, tôi chỉ đảo ngược các chức năng cho độ lệch trung bình và tiêu chuẩn như các chức năng của αβ (nhưng tôi chắc chắn rằng bạn cũng có thể nhìn nó lên trên mạng).
Karl Ove Hufthammer

α,β

0

Kiểm tra hồi quy Beta. Một giới thiệu tốt về cách làm điều đó bằng R có thể được tìm thấy ở đây:

http://cran.r-project.org/web/packages/betareg/vignettes/betareg.pdf

Một cách khác (thực sự dễ dàng) để xây dựng khoảng tin cậy sẽ là sử dụng phương pháp boostrap không tham số. Wikipedia có thông tin tốt:

http://en.wikipedia.org/wiki/Bootstrapping_%28statistic%29

Cũng video hay ở đây:

http://www.youtube.com/watch?v=ZCXg64l9R_4

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.