Cảnh báo trong R - xấp xỉ bình phương Chi có thể không chính xác


40

Tôi có dữ liệu cho thấy kết quả kỳ thi tuyển sinh chữa cháy. Tôi đang kiểm tra giả thuyết rằng kết quả thi và dân tộc không độc lập lẫn nhau. Để kiểm tra điều này, tôi đã chạy thử nghiệm chi bình phương Pearson ở R. Kết quả cho thấy những gì tôi mong đợi, nhưng nó đưa ra một cảnh báo rằng " In chisq.test(a) : Chi-squared approximation may be incorrect."

> a
       white black asian hispanic
pass       5     2     2        0
noShow     0     1     0        0
fail       0     2     3        4
> chisq.test(a)

    Pearson's Chi-squared test

data:  a
X-squared = 12.6667, df = 6, p-value = 0.04865

Warning message:
In chisq.test(a) : Chi-squared approximation may be incorrect

Có ai biết tại sao nó đưa ra một cảnh báo? Có phải vì tôi đang sử dụng một phương pháp sai?


2
Không bao giờ tin tưởng một kết quả với rất ít phép đo. Khi bạn có hàng trăm người trong mỗi cột, thì bạn có thể tin tưởng vào kết quả của mình. Tuy nhiên, kết quả có thể là do khu phố hoặc sự giàu có hơn là do chính chủng tộc.
Rodrigo

Câu trả lời:


41

Nó đưa ra cảnh báo vì nhiều giá trị dự kiến ​​sẽ rất nhỏ và do đó các xấp xỉ của p có thể không đúng.

Trong Rbạn có thể sử dụng chisq.test(a, simulate.p.value = TRUE)để sử dụng mô phỏng giá trị p.

Tuy nhiên, với kích thước ô nhỏ như vậy, tất cả các ước tính sẽ kém. Có thể là tốt khi chỉ kiểm tra vượt qua so với thất bại (xóa "không hiển thị") bằng hồi quy chi bình phương hoặc logistic. Thật vậy, vì khá rõ ràng rằng lớp pass / fail là một biến phụ thuộc, hồi quy logistic có thể tốt hơn.


Điều gì thực sự simulate.p.value = TRUElàm khi được thêm vào chisq.test?
Al14

1
Nó sử dụng mô phỏng để tìm giá trị p
Peter Flom - Tái lập Monica

1
Lưu ý rằng simulate.p.value = TRUEsử dụng mô phỏng có điều kiện trên các lề , vì vậy đây thực sự là một phiên bản của thử nghiệm chính xác của Fisher.
kjetil b halvorsen

23

Vấn đề là xấp xỉ chi bình phương cho phân phối thống kê kiểm tra phụ thuộc vào số lượng được phân phối gần như bình thường. Nếu nhiều số lượng dự kiến ​​là rất nhỏ, gần đúng có thể là kém.

Lưu ý rằng phân phối thực tế của thống kê chi bình phương cho tính độc lập trong các bảng dự phòng là rời rạc, không liên tục.

Thể loại noshow sẽ là một đóng góp lớn cho vấn đề; một điều cần xem xét là hợp nhất noshow và thất bại. Bạn vẫn sẽ nhận được cảnh báo nhưng nó sẽ không ảnh hưởng đến kết quả gần như vậy và việc phân phối phải khá hợp lý (quy tắc được áp dụng trước khi cảnh báo được đưa ra là quá nghiêm ngặt).

Nhưng trong mọi trường hợp, nếu bạn sẵn sàng dựa vào lề (như bạn làm khi chạy thử nghiệm chính xác của Fisher), bạn có thể giải quyết vấn đề rất dễ dàng trong R; đặt simulate.p.valueđối số thành TRUE; sau đó bạn không phụ thuộc vào xấp xỉ chi bình phương cho phân phối thống kê kiểm tra.


bạn có thể vui lòng giải thích cho tôi tại sao ".. xấp xỉ bình phương cho phân phối thống kê kiểm tra dựa vào số lượng được phân phối gần như bình thường"? Tôi không hiểu làm thế nào điều này có thể đúng nếu một ví dụ có bảng dự phòng 2x2. Làm thế nào số lượng có thể được (xấp xỉ) phân phối bình thường? Làm thế nào các số lượng trắng, đen, Tây Ban Nha và Châu Á có thể được phân phối bình thường? Bạn có nghĩa là chỉ hơi bằng nhau? Và làm thế nào điều này liên quan đến câu hỏi này? : stats.stackexchange.com/questions/141407/ trên
Erosennin 18/03/2015

Phân phối đa biến của các biến ngẫu nhiên đếm cần xấp xỉ bình thường (mặc dù nó sẽ bị suy biến). Tập hợp số lượng quan sát chỉ là một quan sát véc tơ duy nhất từ thông thường đa biến này - bạn không thể đánh giá phân phối từ một quan sát. Để đưa ra đánh giá tôi đang nói về bạn cần dựa vào các giả định; thật dễ dàng để làm điều đó cho các ô riêng lẻ (tức là phân phối biên cho một ô đã cho, dưới giá trị null). Bạn dường như đang kết hợp số lượng trên các ô, nhưng điều đó không có ý nghĩa gì vì tất cả chúng đều đến từ các bản phân phối khác nhau
Glen_b 18/03/2015

Đầu tiên, cảm ơn bạn đã dành thời gian! Vì vậy, bạn đang nói rằng số đếm "xuống dưới" bảng dự phòng sẽ là (suy biến) đa biến bình thường, nếu chúng ta nhìn vào nhiều quan sát? Điều này không có nghĩa là số lượng của từng ô riêng lẻ cũng bình thường và cũng tính "ngang" bảng dự phòng (tôi cho rằng đây là ý nghĩa của bạn với 'ngang qua')? F.ex một ô có giá trị dự kiến ​​5, nên được phân phối bình thường vào khoảng 5, phải không? Vì vậy, nếu một ô trên có giá trị mong đợi 40, ô này sẽ được phân phối bình thường vào khoảng 40 và cùng với một bình thường đa biến có nghĩa là 5 và 40, không?
Erosennin 18/03/2015

1
Trong trường hợp chung có lề cố định (đó là trường hợp tôi đã nghĩ), chúng ta sẽ sắp xếp tất cả các biến trong bảng thành một vectơ có độ dài , nhưng chúng nằm trong một siêu phẳng có kích thước - đó là sự thoái hóa. Trong trường hợp 2x2, đó là 1 bậc tự do và 4 ô đếm nằm dọc theo một đường trong không gian 4D. Nhưng thực sự không có không gian để cung cấp chi tiết thích hợp. Bạn vẫn chưa hoàn toàn hiểu được (mặc dù bạn có vẻ gần gũi hơn). Bạn có thể muốn đăng lại một cái gì đó giống như câu hỏi đầu tiên của bạn (về ý nghĩa của các giá trị gần như bình thường) như một câu hỏi. r c ( r - 1 ) ( c - 1 )r×crc(r1)(c1)
Glen_b

Điều này là nặng nề, và rất xen kẽ. Nếu bạn có thời gian, tôi đã đăng lại câu hỏi đầu tiên của tôi ở đây: stats.stackexchange.com/questions/142429/ .
Erosennin

12

Đối với số lượng nhỏ như vậy, bạn có thể sử dụng thử nghiệm chính xác của Fisher:

> fisher.test(a)

        Fisher's Exact Test for Count Data

data:  a 
p-value = 0.02618
alternative hypothesis: two.sided 

3

Vui lòng xem phần "Giả định" trong bài viết kiểm tra chi bình phương của Pearson .

Tóm lại, khi số lượng trong bất kỳ ô nào trong bảng của bạn nhỏ hơn 5 thì một trong những giả định bị phá vỡ. Tôi nghĩ đó là những gì thông báo lỗi đang đề cập đến. Trong bài viết được liên kết, bạn cũng có thể tìm thấy về sự điều chỉnh có thể được áp dụng.


6
Có hai vấn đề với quy tắc đếm ít hơn năm của bạn. Đầu tiên là tuyên bố chính xác đề cập đến số lượng dự kiến hơn là số lượng thực tế. Thứ hai là nó quá nghiêm trọng. Các xấp xỉ thường hoạt động tốt ngay cả khi một tỷ lệ nhỏ trong số lượng dự kiến là ít hơn năm. Trong trường hợp này, trong đó tất cả các biên của cột là năm hoặc ít hơn, rõ ràng là mọi số lượng dự kiến ​​là nhỏ và vì vậy chúng tôi khuyên bạn nên thận trọng. Ngoài ra, việc hiệu chỉnh được đề cập trong bài viết Wikipedia chỉ áp dụng trong một trường hợp DF; trường hợp này có 6 DF. χ2
whuber

0

Câu hỏi chính của bạn nói về kích thước mẫu, nhưng tôi thấy rằng có nhiều hơn hai nhóm được so sánh. Nếu giá trị p từ thử nghiệm là 0,05 trở xuống, sẽ khó diễn giải kết quả. Do đó, tôi đang chia sẻ một kịch bản ngắn gọn mà tôi sử dụng trong các tình huống như vậy:

# Load the required packages:
library(MASS) # for chisq
library(descr) # for crosstable

CrossTable(a$exam_result, a$ethnicity
       fisher = T, chisq = T, expected = T,
       prop.c = F, prop.t = F, prop.chisq = F, 
       sresid = T, format = 'SPSS')

Mã này sẽ tạo ra cả Chi-vuông của Pearson và Chi của Fisher. Nó tạo ra số lượng cũng như tỷ lệ của từng mục trong bảng. Dựa trên số dư hoặc giá trị z được chuẩn hóa, nghĩa là,

sresid

Nếu nó nằm ngoài phạm vi | 1.96 | tức là nhỏ hơn -1,96 hoặc lớn hơn 1,96, thì nó có ý nghĩa p <0,05. Dấu hiệu sau đó sẽ cho biết liệu liên quan tích cực hay tiêu cực.

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.