Phải làm gì khi dữ liệu đếm không phù hợp với phân phối Poisson


7

Tôi là một sinh viên thống kê tiến sĩ. Tôi đang làm việc với một tập hợp dữ liệu đếm dữ liệu. Đó là số lượng người dùng tham gia vào cuộc trò chuyện theo thời gian thực n-way. Số người dùng nằm trong khoảng từ 1 đến 6 và có khoảng 300 mẩu dữ liệu trong bộ.

Động lực ban đầu của tôi là để hiểu liệu dữ liệu có phù hợp với phân phối Poisson hay không, suy nghĩ của tôi là nếu tìm thấy sự phù hợp tốt, tôi có thể sử dụng kết quả này để suy luận thêm.

Để cắt ngắn một câu chuyện dài, tôi đã cố gắng khớp dữ liệu và sự phù hợp thất bại ở mức ý nghĩa 0,05. Do đó tôi có thể bác bỏ giả thuyết của mình (rằng phân phối Poisson có thể được sử dụng để xấp xỉ tập dữ liệu).

Khi tôi nhìn vào một biểu đồ mật độ, tôi tin rằng lý do tại sao có sự phù hợp kém như vậy là có "quá nhiều giá trị được ghi lại cho 2 người dùng. Phân phối Poisson sẽ phù hợp hơn với ít giá trị hơn trong thùng này. Tuy nhiên, khi tôi biên dịch bản thân dữ liệu Tôi không có lý do để tin rằng có các ngoại lệ (tức là các cuộc hội thoại với 2 người dùng sẽ được gán cho thùng cao hơn hoặc thấp hơn)

users <- c(1, 2, 2, 1, 1, 1, 1, 2, 2, 3, 2, 2, 2, 1, 1, 1, 2, 2, 1, 1, 4, 3, 3, 3, 1,
        2, 1, 1, 2, 4, 3, 2, 2, 1, 2, 3, 2, 2, 1, 1, 1, 2, 2, 1, 1, 1, 2, 2, 1, 3,
        2, 1, 2, 3, 2, 1, 2, 1, 2, 1, 1, 3, 1, 1, 1, 2, 2, 2, 3, 1, 2, 1, 2, 4, 4,
        3, 2, 2, 3, 4, 3, 3, 3, 1, 2, 4, 2, 3, 3, 2, 4, 3, 1, 2, 4, 1, 2, 2, 2, 1,
        1, 1, 2, 3, 2, 4, 5, 2, 2, 4, 2, 2, 3, 3, 3, 2, 2, 3, 1, 3, 1, 1, 1, 2, 3,
        6, 3, 3, 4, 2, 2, 2, 3, 1, 1, 1, 2, 2, 3, 2, 2, 2, 1, 1, 1, 1, 2, 2, 2, 2,
        3, 3, 3, 1, 1, 2, 1, 2, 2, 2, 2, 2, 2, 4, 3, 3, 2, 1, 2, 4, 1, 2, 1, 2, 2,
        2, 3, 2, 2, 2, 2, 2, 3, 2, 2, 1, 1, 3, 1, 2, 1, 2, 3, 4, 2, 4, 3, 2, 2, 1,
        4, 2, 2, 1, 1, 2, 2, 2, 1, 1, 1, 2, 2, 3, 3, 1, 1, 2, 1, 2, 1, 3, 3, 3, 3,
        4, 6, 6, 5, 5, 2, 2, 3, 3, 3, 2, 3, 3, 4, 2, 3, 1, 3, 3, 1, 3, 2, 1, 3, 3,
        2, 1, 3, 1, 3, 2, 1, 1, 1, 1, 3, 1, 3, 4, 1, 4, 1, 3, 2, 3, 6, 2, 2, 3, 2,
        1, 2, 2, 2, 2, 2, 1, 2, 3, 2, 2, 4, 2, 2, 2, 3, 2, 2, 5, 3, 2, 2, 3, 2, 2,
        2, 5, 2, 1, 4, 1, 2, 2, 6, 1, 3, 2)


tu.fit <- goodfit(users,type="poisson", method = "MinChisq")
summary(tu.fit)
 Goodness-of-fit test for poisson distribution

             X^2 df     P(> X^2)
Pearson 69.37891  5 1.379945e-13

Ở cấp độ thống kê cấp dưới, tôi được dạy rằng dữ liệu đếm có thể được mô hình hóa bằng phân phối Poisson, nhưng họ không bao giờ dạy phải làm gì khi dữ liệu đếm không phù hợp.

Tôi không bị ràng buộc với tiền đề rằng dữ liệu đếm của tôi phải phù hợp với Poisson (hoặc bất kỳ phân phối nào khác cho vấn đề đó). Tuy nhiên, tôi muốn khám phá tính hiệu quả của việc liệu tôi có nên chuyển đổi tập dữ liệu của mình và phù hợp với phân phối rời rạc khác hay thử một số phương pháp khác (KDE) thay thế. Hoặc tôi nên đơn giản kết luận rằng dữ liệu của tôi không phù hợp với Poisson (hoặc bất kỳ phân phối nào khác) và để nó ở đó?


(1) Không có giá trị sẽ xuất hiện một ưu tiên là không thể, do đó loại trừ Poisson như một mô hình. Nhưng tại sao giá trị có thể? Điều đó có nghĩa gì khi chỉ một người tham gia vào một "cuộc trò chuyện" một chiều? (2) Bạn hy vọng đạt được điều gì bằng cách phù hợp với bất kỳ phân phối nào cho bộ dữ liệu đơn biến này? Làm thế nào điều đó sẽ giúp với "suy luận trong tương lai"? Suy luận về những gì, chính xác? (3) Bạn có nhận thấy rằng phù hợp với phân phối Poisson không? 1users-1
whuber

1
(1) Là một giá trị có thể trong trường hợp sau: Một người dùng gửi một tin nhắn dòng duy nhất (vì lý do từng có) Không ai trả lời tin nhắn / tham gia thảo luận thêm. Trong trường hợp đó, đây là một người dùng "trò chuyện nhóm" (2) Nếu phù hợp với Poisson, nếu có thể tôi có thể đặt câu hỏi như xác suất trò chuyện tiếp theo sẽ chứa chính xác 2,3,4,5 người dùng, v.v. (3 ) Tôi sẽ thừa nhận rằng tôi đã không phát hiện ra người dùng-1 phù hợp với Phân phối Poisson. Điều này có vẻ thú vị, tôi sẽ cần phải suy ngẫm thêm về điều này
Jonathan Dunne

Tôi đoán bạn có thể thử phân phối nhị thức âm hoặc một cái gì đó khác được thảo luận trong số liệu thống kê bài đăng liên quan này.stackexchange.com/questions/67385/ mẹo
wonghang

Vì vậy, tôi đã xem xét tỷ lệ phân tán và với tỷ lệ 0,36 được tính bằng cách sử dụng chức năng kiểm tra phân tán từ gói AER. Nhìn vào điều này từ quan điểm của một bộ dữ liệu phân tán, một số ý kiến ​​trong phần 67385 đã thảo luận về việc loại bỏ thùng cụ thể với tần suất cao. Các ý kiến ​​khác đề nghị một số hình thức tái hòa giải trở ngại. Whubers nhận xét rằng users-1khi được trang bị phù hợp với phân phối Poisson (là một hình thức vượt rào). Tôi nghi ngờ một cách tiếp cận thông thường cần được áp dụng khi xử lý dữ liệu phân tán.
Jonathan Dunne

1
@whuber Tôi rất vui lòng chấp nhận ý kiến ​​của bạn như một câu trả lời cho câu hỏi này.
Jonathan Dunne

Câu trả lời:


8

Hãy xem xét, phần nào đơn giản, lịch sử tự nhiên của một cuộc trò chuyện:

  1. Một người bắt đầu một cuộc trò chuyện bằng cách gửi tin nhắn ra ether.

  2. Mọi người trả lời. Mỗi người trả lời mới (duy nhất) thêm một vào số đếm.

  3. Phản hồi cho bất kỳ tin nhắn nào là ngẫu nhiên: việc một cá nhân trả lời tùy thuộc vào việc

    • Họ nhận thức được thông điệp
    • Hiện tại có cơ hội trả lời
    • Có hứng thú trả lời.
  4. So với số người có thể nhận tin nhắn, số lượng tin nhắn được bắt đầu tương đối thấp. Như vậy

    • Hầu như tất cả các cá nhân sẽ trả lời một hoặc một số lượng nhỏ các tin nhắn có thể quản lý bất cứ lúc nào.

Các đặc điểm (3) và (4) cho thấy phân phối Poisson có thể là mô hình tốt cho số người trả lời bất kỳ tin nhắn nào vào bất kỳ lúc nào: đó là số đếm trừ đi một. Những gì chúng ta không biết, và có thể không an toàn khi giả định là liệu tất cả các tin nhắn có xấp xỉ cùng một tham số Poisson hay không hoặc các tham số đó có thay đổi đáng kể hay không.

Sau đó, một điểm khởi đầu tốt sẽ là kiểm tra xem số đếm trừ đi có phù hợp với phân phối Poisson hay không. Ngoài ra, chúng có thể phù hợp với một số phân phối quá mức bao gồm một hỗn hợp Poissons.

Ước tính khả năng tối đa của tham số Poisson là giá trị trung bình của số đếm (trừ đi một), bằng . (Điều quan trọng là sử dụng ước tính ML cho tính toán này thay vì ước tính "MinChisq" được tính bằng : xem https://stats.stackexchange.com/a/17148/919 .) Nhân xác suất Poisson với tổng số người dùng đưa ra số lượng dự kiến ​​của số lượng người dùng. Ở đây chúng được so sánh với số lượng thực tế:λ1.20vcd::goodfit

          0   1  2  3 4 5
Expected 94 113 68 27 8 2
Actual   85 127 68 22 5 5

Sự phù hợp có vẻ gần gũi. Nó có thể được đo bằng thống kê chi bình phương,

χ2=(8594)294+(127113)2113++(52)22=9.61.

Sáu thuật ngữ trong tổng này đo lường sự khác biệt về số lượng cá nhân. họ đang

     0    1    2    3    4    5 
  0.88 1.79 0.00 0.93 1.18 4.82  

Giá trị gần biểu thị thỏa thuận tốt. Chỉ có giá trị cuối cùng, , là lớn. Đó là do giá trị dự kiến ​​nhỏ là cho số lượng . Thông thường, các giá trị dự kiến ​​nhỏ hơn được cho là dẫn đến một số không đáng tin cậy trong thử nghiệm truyền thống : ở đây, chúng ta nên lấy thống kê để có thể bị thổi phồng lên một chút do số lượng sáu hướng dự kiến ​​nhỏ hội thoại. 14.82255χ2χ2

Tuy nhiên, thống kê này không quá cao: theo phân phối Poisson không có giả thuyết, thống kê này sẽ xấp xỉ theo phân phối . Phân phối đó cho chúng ta biết một giá trị cao này xảy ra gần chín phần trăm thời gian. Chúng tôi kết luận rằng có rất ít bằng chứng về sự ra đi từ một phân phối Poisson không đổi.χ2χ2(5)

Ngẫu nhiên, một biểu đồ của dữ liệu - theo trình tự được đưa ra - không gợi ý về sự thay đổi của số lượng. Trung bình họ tăng một chút từ đầu đến cuối, vì Lowess mượt mà trong cốt truyện này cho thấy:

Âm mưu

Do đó, phép thử chi bình phương của phân phối Poisson không nên là từ cuối cùng: nó chỉ nên được coi là sự khởi đầu của một phân tích chi tiết hơn.


Đây là Rmã được sử dụng để thực hiện các tính toán và tạo hình.

counts <- table(users-1)
mu <- mean(users-1)
expected <- dpois(as.numeric(names(counts)), mu) * length(users)
x <- (counts - expected)^2 / expected
print(round(x, 2)) # Terms in the chi-squared statistic
print(rbind(Expected = round(expected, 0), Actual=counts)) # Compare expected to actual

library(ggplot2)
X <- data.frame(Index=1:length(users), Count=users)
g <- ggplot(X, aes(Index, Count)) + geom_smooth(size=2) + geom_point(size=2, alpha=1/2)
print(g)

Điều gì làm bạn nghĩ về user-1"mánh khóe"?
Antoni Parellada

@Antoni Dòng lý luận được phản ánh trong bình luận đầu tiên của tôi cho câu hỏi. Ở giữa phần viết (1) và (2) của nhận xét đó, một mô hình giống như mô hình được nêu trong câu trả lời này đã xảy ra với tôi, vì vậy tôi đã nhanh chóng thực hiện bài kiểm tra chi bình phương đối với dữ liệu và bao gồm phần (3) của nhận xét.
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.