Làm thế nào để kiểm tra nếu dữ liệu của tôi phù hợp với phân phối bình thường?


11

Tôi muốn kiểm tra xem Rdữ liệu của tôi có phù hợp với các bản phân phối log-normal hoặc Pareto không. Làm thế nào tôi có thể làm điều đó? Có lẽ ks.testcó thể giúp tôi làm điều đó, nhưng làm cách nào tôi có thể nhận được các tham số và để phân phối Pareto cho dữ liệu của mình?αk


Đối với câu hỏi cuối cùng cũng xem stats.stackexchange.com/questions/392629/...
Kjetil b Halvorsen

Câu trả lời:


6

... Tôi vừa nhận thấy bạn có thẻ 'hồi quy' ở đó. Nếu bạn có một vấn đề hồi quy, bạn không thể nhìn vào phân phối đơn biến của phản hồi để đánh giá hình dạng phân phối, vì nó phụ thuộc vào mô hình của x. Nếu bạn đang hỏi về việc kiểm tra xem một biến trả lời (y) trong một loại hồi quy hoặc GLM nào đó có phân phối logic hay Pareto trong đó phương tiện khác nhau trong quan sát, thì đó là một câu hỏi rất khác nhau (nhưng về cơ bản lại thuộc về các loại phân tích tương tự trên phần dư). Bạn có thể vui lòng làm rõ nếu nó là một vấn đề hồi quy. Câu trả lời của tôi, hiện tại, liên quan đến việc đánh giá logic bất biến hoặc Pareto

Bạn có một số câu hỏi khá khác nhau ở đó.

Làm thế nào để kiểm tra nếu dữ liệu của tôi phù hợp với phân phối bình thường?

Ghi nhật ký và làm một âm mưu QQ bình thường. Nhìn và xem nếu phân phối đủ gần cho mục đích của bạn.

Tôi muốn kiểm tra R nếu dữ liệu của tôi phù hợp với các bản phân phối log-normal hoặc Pareto

Chấp nhận từ đầu rằng không có bản phân phối nào bạn xem xét sẽ là mô tả chính xác. Bạn đang tìm kiếm một mô hình hợp lý. Điều này có nghĩa là ở các cỡ mẫu nhỏ, bạn sẽ không từ chối bất kỳ tùy chọn hợp lý nào, nhưng với kích thước mẫu đủ, bạn sẽ từ chối tất cả. Tồi tệ hơn, với kích thước mẫu lớn, bạn sẽ từ chối các mô hình hoàn hảo, trong khi ở các cỡ mẫu nhỏ, bạn sẽ không từ chối các mẫu xấu.

Các thử nghiệm như vậy không thực sự là một cơ sở hữu ích để lựa chọn mô hình.

Nói tóm lại, câu hỏi quan tâm của bạn - đại loại như "mô hình nào tốt cho dữ liệu này, một mô hình đủ gần để nó có thể khiến suy luận tiếp theo trở nên hữu ích?" chỉ đơn giản là không được trả lời bởi sự tốt của các bài kiểm tra phù hợp. Tuy nhiên, trong một số trường hợp, tính tốt của thống kê phù hợp (thay vì các quyết định đưa ra các quy tắc từ chối dựa trên chúng) trong một số trường hợp có thể cung cấp một bản tóm tắt hữu ích về các loại thiếu phù hợp cụ thể.

Có lẽ ks.test có thể giúp tôi làm điều đó

Thứ nhất, có vấn đề tôi vừa đề cập, và thứ hai, một thử nghiệm Kolmogorov-Smirnov là một thử nghiệm cho một phân phối hoàn toàn cụ thể. Bạn không có một trong số đó.

Trong nhiều trường hợp, tôi muốn giới thiệu các lô QQ và màn hình tương tự. Đối với các trường hợp nghiêng phải như thế này, tôi có xu hướng làm việc với các bản ghi (một lognatural sau đó sẽ trông bình thường, trong khi Pareto sẽ trông theo cấp số nhân). Ở kích thước mẫu hợp lý, không khó để phân biệt trực quan liệu dữ liệu trông gần như bình thường hơn theo cấp số nhân hay ngược lại. Đầu tiên, hãy lấy một số dữ liệu thực tế từ mỗi và vẽ sơ đồ đó - ít nhất là nửa tá mẫu, để bạn biết chúng trông như thế nào.

Xem một ví dụ dưới đây

Làm cách nào tôi có thể nhận được các tham số alpha và k để phân phối pareto cho dữ liệu của mình?

Nếu bạn cần ước tính các tham số, hãy sử dụng MLE ... nhưng đừng làm điều đó để quyết định giữa Pareto và lognatural.

Bạn có thể cho biết cái nào trong số này là logic và cái nào là Pareto không?

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

Lưu ý rằng với các ô QQ bình thường (cột bên trái), chúng ta thấy các bản ghi của tập dữ liệu 1 cho một đường khá thẳng, trong khi tập dữ liệu 2 cho thấy độ lệch phải. Với các ô số mũ, nhật ký của tập dữ liệu 1 hiển thị đuôi bên phải nhẹ hơn theo hàm mũ, trong khi tập dữ liệu 2 hiển thị một đường khá thẳng (các giá trị ở đuôi bên phải có xu hướng lắc lư một chút ngay cả khi mô hình đúng; không có gì lạ với đuôi nặng, đó là một lý do tại sao bạn cần vẽ một số mẫu có kích thước tương tự như mẫu bạn đang xem để xem các lô thường trông như thế nào)

Mã được sử dụng để làm bốn ô đó:

qqnorm(log(y1))
qqnorm(log(y2))
qex <- function(x) qexp((rank(x)-.375)/(length(x)+.25))
plot(qex(y1),log(y1))
plot(qex(y2),log(y2))

Nếu bạn có một vấn đề về hồi quy - một trong đó phương tiện thay đổi với các biến khác, bạn thực sự chỉ có thể đánh giá sự phù hợp của giả định phân phối với sự có mặt của một mô hình phù hợp với giá trị trung bình.


3

Tất nhiên, đây là vấn đề lựa chọn mô hình , giả sử rằng bạn chỉ muốn kiểm tra xem dữ liệu của bạn đến từ mô hình này hay mô hình kia và mục tiêu của bạn không tìm thấy mô hình phù hợp giữa đại dương phân phối vô hạn. Vì vậy, một lựa chọn là sử dụng AIC (ưu tiên các mô hình có giá trị AIC thấp nhất và tôi sẽ không cố gắng mô tả ở đây). Hãy xem ví dụ sau với dữ liệu mô phỏng:

rm(list=ls())

set.seed(123)
x = rlnorm(100,0,1)

hist(x)

# Loglikelihood and AIC for lognormal model

ll1 = function(param){
if(param[2]>0) return(-sum(dlnorm(x,param[1],param[2],log=T)))
else return(Inf)
}

AIC1 = 2*optim(c(0,1),ll1)$value + 2*2

# Loglikelihood and AIC for Pareto model

dpareto=function(x, shape=1, location=1) shape * location^shape / x^(shape + 1)

ll2 = function(param){
if(param[1]>0 & min(x)> param[2]) return(-sum(log(dpareto(x,param[1],param[2]))))
else return(Inf)
}


AIC2 = 2*optim(c(1,0.01),ll2)$value + 2*2

# Comparison using AIC, which in this case favours the lognormal model.

 c(AIC1,AIC2)

1

Có lẽ fitdistr ()?

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

require(MASS)
hist(x, freq=F)
fit<-fitdistr(x,"log-normal")$estimate
lines(dlnorm(0:max(x),fit[1],fit[2]), lwd=3)


> fit
meanlog     sdlog 
3.8181643 0.1871289 



> dput(x)
c(52.6866903145324, 39.7511298620398, 50.0577071855833, 33.8671245370402, 
51.6325665911116, 41.1745418750494, 48.4259060939127, 67.0893697776377, 
35.5355051232044, 44.6197404834786, 40.5620805256951, 39.4265590077884, 
36.0718655240496, 56.0205581625823, 52.8039852992611, 46.2069383488226, 
36.7324212941395, 44.7998046213554, 47.9727885542368, 36.3400338997286, 
32.7514839453244, 50.6878893947656, 53.3756089181472, 39.4769689441593, 
38.5432770167907, 62.350999487007, 44.5140171935881, 47.4026606915147, 
57.3723511479393, 64.4041641945078, 51.2286815562554, 60.4921839777139, 
71.6127652225805, 40.6395409719693, 48.681036613906, 52.3489622656967, 
46.6219563536878, 55.6136160469819, 62.3003761050482, 42.7865905767138, 
50.2413659137295, 45.6327941365187, 46.5621907725798, 48.9734785224035, 
40.4828649022511, 59.4982559591637, 42.9450436744074, 66.8393386407167, 
40.7248473206552, 45.9114242834839, 34.2671010054407, 45.7569869970351, 
50.4358523486278, 44.7445606782492, 44.4173298921541, 41.7506552050873, 
34.5657344132409, 47.7099864540652, 38.1680974794929, 42.2126680994737, 
35.690599714042, 37.6748157160789, 35.0840798650981, 41.4775827114607, 
36.6503753230464, 42.7539062488003, 39.2210050689652, 45.9364763482558, 
35.3687017955285, 62.8299659875044, 38.1532612008011, 39.9183076516292, 
59.0662388169057, 47.9032427690417, 42.4419580084314, 45.785859495192, 
59.5254284342724, 47.9161476636566, 32.6868959277799, 30.1039453246766, 
37.7606323857655, 35.754797368422, 35.5239777126187, 43.7874313667592, 
53.0328404605954, 37.4550326357314, 42.7226751172495, 44.898430515261, 
59.7229655935187, 41.0701258705001, 42.1672231656919, 60.9632847841197, 
60.3690132883734, 45.6469334940722, 39.8300067022836, 51.8185235060234, 
44.908828102875, 50.8200011497451, 53.7945569828737, 65.0432670527801, 
49.0306734716282, 35.9442821219144, 46.8133296904456, 43.7514416949611, 
43.7348972849838, 57.592040060118, 48.7913517211383, 38.5555058596449
)

1
Mặc dù giải pháp này phù hợp với dữ liệu bất thường, nhưng nó không cho biết liệu sự phù hợp đó có tốt hay không, liệu Pareto có phải là lựa chọn tốt hơn hay không.
whuber
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.