Kolmogorov-Smirnov với dữ liệu rời rạc: Sử dụng hợp lý dgof :: ks.test trong R là gì?


23

Câu hỏi dành cho người mới bắt đầu:

Tôi muốn kiểm tra xem hai bộ dữ liệu rời rạc có đến từ cùng một phân phối hay không. Một thử nghiệm Kolmogorov-Smirnov đã được đề xuất cho tôi.

Conover (Số liệu thống kê phi thực tế , 3d) dường như nói rằng Thử nghiệm Kolmogorov-Smirnov có thể được sử dụng cho mục đích này, nhưng hành vi của nó là "bảo thủ" với các phân phối rời rạc và tôi không chắc điều đó có nghĩa gì ở đây.

Nhận xét của DavidR về một câu hỏi khác cho biết "... Bạn vẫn có thể thực hiện bài kiểm tra cấp độ α dựa trên thống kê của KS, nhưng bạn sẽ phải tìm một số phương pháp khác để có được giá trị tới hạn, ví dụ như bằng mô phỏng."

Phiên bản của ks.test () trong gói dgof R ( bài viết , cran ) bổ sung một số khả năng không có trong phiên bản mặc định của ks.test () trong gói thống kê. Trong số những thứ khác, dgof :: ks.test bao gồm tham số này:

simulation.p.value: một logic cho biết có nên tính giá trị p bằng mô phỏng Monte Carlo hay không, chỉ dành cho các thử nghiệm độ phù hợp riêng biệt.

Mục đích của simulation.p.value = T để thực hiện những gì DavidR gợi ý?

Ngay cả nếu có, tôi không chắc liệu tôi có thể thực sự sử dụng dgof :: ks.test cho thử nghiệm hai mẫu hay không. Có vẻ như nó chỉ cung cấp một bài kiểm tra hai mẫu để phân phối liên tục:

Nếu y là số, một phép thử hai mẫu của giả thuyết null cho rằng x và y được rút ra từ cùng một phân phối liên tục được thực hiện.

Ngoài ra, y có thể là một chuỗi ký tự đặt tên hàm phân phối (tích lũy) liên tục (hoặc một hàm như vậy) hoặc hàm ecdf (hoặc đối tượng của stepfun lớp) để phân phối rời rạc. Trong những trường hợp này, thử nghiệm một mẫu được thực hiện bằng null mà hàm phân phối tạo ra x là phân phối y ....

(Chi tiết cơ bản: Nói đúng ra, các phân phối cơ bản của tôi là liên tục, nhưng dữ liệu có xu hướng nằm rất gần một số điểm. Mỗi điểm là kết quả của một mô phỏng và là trung bình của 10 hoặc 20 số thực giữa -1 và 1. Khi kết thúc mô phỏng, các số đó gần như luôn luôn rất gần với .9 hoặc -.9. Do đó, cụm có nghĩa là xung quanh một vài giá trị và tôi coi chúng là rời rạc. Mô phỏng rất phức tạp và tôi không có lý do để nghĩ rằng dữ liệu tuân theo phân phối nổi tiếng.)

Lời khuyên?


Tôi chỉ nhận thấy nhận xét của Tiến sĩ G ở đây cho thấy ks.boot là thứ tôi cần, nhưng tôi vẫn tự hỏi liệu tùy chọn mô phỏng của dgof :: ks.test có hoạt động không, và "hội tụ" nghĩa là gì.
Sao Hỏa

Câu trả lời:


16

Đây là một câu trả lời cho phần mở rộng @jbrucks (nhưng cũng trả lời bản gốc).

Một thử nghiệm chung cho dù 2 mẫu có đến từ cùng một quần thể / phân phối hay nếu có sự khác biệt là thử nghiệm hoán vị. Chọn một thống kê quan tâm, đây có thể là thống kê kiểm tra của KS hoặc sự khác biệt của phương tiện hoặc sự khác biệt của trung bình hoặc tỷ lệ phương sai hoặc ... (bất cứ điều gì có ý nghĩa nhất đối với câu hỏi của bạn, bạn có thể thực hiện mô phỏng trong các điều kiện có thể thấy thống kê nào cho bạn kết quả tốt nhất) và tính toán chỉ số đó trên 2 mẫu ban đầu. Sau đó, bạn hoán vị ngẫu nhiên các quan sát giữa các nhóm (nhóm tất cả các điểm dữ liệu thành một nhóm lớn, sau đó chia ngẫu nhiên chúng thành 2 nhóm có cùng kích thước với các mẫu ban đầu) và tính toán thống kê quan tâm trên các mẫu được thẩm thấu. Lặp lại điều này rất nhiều lần, phân phối số liệu thống kê mẫu tạo thành phân phối null của bạn và bạn so sánh thống kê ban đầu với phân phối này để tạo thành thử nghiệm. Lưu ý rằng giả thuyết null là các bản phân phối giống hệt nhau, không chỉ là phương tiện / trung bình / v.v. bằng nhau

Nếu bạn không muốn cho rằng các bản phân phối giống hệt nhau nhưng muốn kiểm tra sự khác biệt về phương tiện / trung bình / v.v. sau đó bạn có thể làm một bootstrap.

Nếu bạn biết phân phối dữ liệu đến từ đâu (hoặc ít nhất là sẵn sàng giả định phân phối) thì bạn có thể thực hiện kiểm tra tỷ lệ thích về sự bằng nhau của các tham số (so sánh mô hình với một bộ tham số duy nhất trên cả hai nhóm với mô hình với các bộ tham số riêng biệt). Kiểm tra tỷ lệ thích thường sử dụng phân phối chi bình phương, điều này rất tốt trong nhiều trường hợp (tiệm cận), nhưng nếu bạn đang sử dụng các cỡ mẫu nhỏ hoặc kiểm tra một tham số gần ranh giới của nó (ví dụ phương sai là 0) thì có thể không gần đúng tốt, bạn lại có thể sử dụng thử nghiệm hoán vị để có được phân phối null tốt hơn.

Các thử nghiệm này đều hoạt động trên các bản phân phối liên tục hoặc rời rạc. Bạn cũng nên bao gồm một số thước đo sức mạnh hoặc khoảng tin cậy để chỉ ra mức độ không chắc chắn, thiếu ý nghĩa có thể là do công suất thấp hoặc sự khác biệt có ý nghĩa thống kê vẫn có thể thực sự vô nghĩa.


Greg, cảm ơn. Đây là một câu trả lời chung rất hữu ích cho câu hỏi của jbr, và nó cũng hữu ích với tôi. (Câu hỏi của tôi cụ thể hơn. Có lẽ quá hẹp để mong đợi câu trả lời.)
Sao Hỏa

1
@Mars, tôi nghĩ rằng câu trả lời của tôi không gián tiếp trả lời ít nhất là một phần của bạn. Kiểm tra KS thông thường giả định không có mối quan hệ và sử dụng mô hình lý thuyết cho thống kê kiểm tra theo giả thuyết null. Với các mối quan hệ, mô hình lý thuyết không chính xác nhưng thay vào đó bạn có thể sử dụng mô phỏng (kiểm tra hoán vị, mô phỏng từ null dist, v.v.) để tính toán phân phối null và do đó có được giá trị p, v.v. Tôi đoán đó là mô phỏng đối số bạn đề cập đến.
Greg Snow
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.