Tự động xác định phân phối xác suất cho một tập dữ liệu


12

Đưa ra một tập dữ liệu:

x <- c(4.9958942,5.9730174,9.8642732,11.5609671,10.1178216,6.6279774,9.2441754,9.9419299,13.4710469,6.0601435,8.2095239,7.9456672,12.7039825,7.4197810,9.5928275,8.2267352,2.8314614,11.5653497,6.0828073,11.3926117,10.5403929,14.9751607,11.7647580,8.2867261,10.0291522,7.7132033,6.3337642,14.6066222,11.3436587,11.2717791,10.8818323,8.0320657,6.7354041,9.1871676,13.4381778,7.4353197,8.9210043,10.2010750,11.9442048,11.0081195,4.3369520,13.2562675,15.9945674,8.7528248,14.4948086,14.3577443,6.7438382,9.1434984,15.4599419,13.1424011,7.0481925,7.4823108,10.5743730,6.4166006,11.8225244,8.9388744,10.3698150,10.3965596,13.5226492,16.0069239,6.1139247,11.0838351,9.1659242,7.9896031,10.7282936,14.2666492,13.6478802,10.6248561,15.3834373,11.5096033,14.5806570,10.7648690,5.3407430,7.7535042,7.1942866,9.8867927,12.7413156,10.8127809,8.1726772,8.3965665)

.. Tôi muốn xác định phân phối xác suất phù hợp nhất (gamma, beta, bình thường, hàm mũ, poisson, chi bình phương, v.v.) với ước tính của các tham số. Tôi đã biết câu hỏi trên liên kết sau, nơi giải pháp được cung cấp bằng R: /programming/2661402/given-a-set-of-random-numbers-drawn-from-a- liên tục-univariate-phân phối-f giải pháp đề xuất tốt nhất là như sau:

> library(MASS)
> fitdistr(x, 't')$loglik                                                              #$
> fitdistr(x, 'normal')$loglik                                                         #$
> fitdistr(x, 'logistic')$loglik                                                       #$
> fitdistr(x, 'weibull')$loglik                                                        #$
> fitdistr(x, 'gamma')$loglik                                                          #$
> fitdistr(x, 'lognormal')$loglik                                                      #$
> fitdistr(x, 'exponential')$loglik                                                    #$

Và phân phối với giá trị loglik nhỏ nhất được chọn. Tuy nhiên, các phân phối khác như phân phối beta yêu cầu đặc điểm kỹ thuật của một số tham số bổ sung trong hàm fitdistr ():

   fitdistr(x, 'beta', list(shape1 = some value, shape2= some value)).

Cho rằng tôi đang cố gắng xác định phân phối tốt nhất mà không có bất kỳ thông tin nào trước đó, tôi không biết giá trị của các tham số có thể là bao nhiêu cho mỗi phân phối. Có một giải pháp khác đưa yêu cầu này vào tài khoản? nó không phải ở R.

Câu trả lời:


18

Bạn làm gì về sự vô hạn của các bản phân phối không có trong danh sách?

Bạn làm gì khi không ai trong số những người trong danh sách của bạn phù hợp? ví dụ: nếu phân phối của bạn mạnh mẽ lưỡng kim

Làm thế nào bạn sẽ đối phó với thực tế rằng số mũ chỉ là một trường hợp đặc biệt của gamma, và do đó, gamma phải luôn phù hợp với bất kỳ tập hợp dữ liệu nào tốt hơn, vì nó có một tham số bổ sung và do đó phải có khả năng tốt hơn ?

Làm thế nào để bạn đối phó với thực tế là khả năng chỉ được xác định theo hằng số nhân và khả năng cho các phân phối khác nhau có thể không tự động so sánh được trừ khi được xác định nhất quán?

Không phải là những thứ này nhất thiết không hòa tan, nhưng làm những thứ này một cách hợp lý là không cần thiết; chắc chắn nhiều suy nghĩ được yêu cầu hơn là chỉ làm hỏng mọi thứ thông qua việc tính toán MLE và so sánh khả năng.


3
Tôi chỉ quan tâm đến các bản phân phối trong danh sách, và nếu không có bản phân phối nào phù hợp, thì tôi sẽ giải quyết vấn đề đó tiếp theo. nhưng bây giờ đạt đến điểm đó là đủ tốt cho tôi. Đối với câu hỏi cuối cùng liên quan đến phân phối gamma, vâng, nó có thể phù hợp hơn với một số tham số, câu hỏi của tôi là chính xác về vấn đề này, có thuật toán nào cho phép tôi lặp qua các giá trị tham số khác nhau cho các phân phối khác nhau trong danh sách không? và trả lại phân phối phù hợp nhất với các thông số phù hợp?

1
Vâng, có và không. Bạn có thể đưa ra một "con số công đức" để tính toán bộ tham số nào mang lại cho bạn sự phù hợp nhất và viết một vòng lặp "leo đồi" để tối ưu hóa giá trị của công đức. Một ví dụ về FOM là giá trị R cho hồi quy phù hợp.
Carl Witthoft

tôi đăng ký +1 này.

4
@shachem Bạn đã bỏ lỡ quan điểm về gamma. Phân phối với các tham số bổ sung sẽ luôn có khả năng tốt hơn, ngay cả khi dữ liệu đến từ phân phối có ít tham số hơn . Bạn cần xem xét điều này. Một số biện pháp phù hợp điều chỉnh cho hiệu ứng này. Thành thật mà nói, tôi nghĩ rằng điều bạn đang cố gắng có khả năng là 'trả lời sai câu hỏi', hơi giống như hỏi 'làm thế nào để tôi biết cái búa nào là cái tốt nhất để đập vào cái vít này'
Glen_b -Reinstate Monica

1
Nếu "khả năng chỉ được xác định theo hằng số nhân", thì làm sao người ta có thể hiểu câu nói của bạn rằng "phân phối với các tham số bổ sung sẽ luôn có khả năng tốt hơn"? Thật vậy, làm thế nào người ta có thể so sánh khả năng rất khó xác định? Tôi nghi ngờ một số ý tưởng quan trọng đã bị bỏ qua ...
whuber

3

Tôi đã tìm thấy một hàm trả lời câu hỏi của tôi bằng matlab. Nó có thể được tìm thấy trên liên kết này: http://www.mathworks.com/matlabcentral/fileexchange/34943

Tôi lấy một vectơ dữ liệu làm đầu vào

   allfitdist(data)

và trả về các thông tin sau để phân phối phù hợp nhất:

   DistName- the name of the distribution
   NLogL - Negative of the log likelihood
   BIC - Bayesian information criterion (default)
   AIC - Akaike information criterion
   AICc - AIC with a correction for finite sample sizes 
   ParamNames
   ParamDescription
   Params
   etc.

1
OK, bây giờ tất cả những gì bạn cần làm là chuyển tệp m sang tệp R. :-)
Carl Witthoft

Thậm chí không! Như tôi đã đề cập, nó không cần phải là tệp R, vì vậy hàm MATLAB hoàn toàn giải quyết vấn đề của tôi :-)

AIC, BIC, AICc, v.v. có thể là một cách để quyết định, nhưng liệu điều đó có thực sự có ý nghĩa hay không phụ thuộc vào những gì bạn đang cố gắng làm. Ví dụ, bạn sẽ làm gì nếu một phân phối thực sự gần với các phân phối khác về log L? Nếu những gì bạn đang cố gắng làm là dự đoán, thì thường bỏ qua các mô hình gần với tiêu chí của bạn không nên bị loại bỏ. Ví dụ: lấy trung bình mô hình là một cách đưa chúng vào tài khoản.
Bjorn
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.