R - QQPlot: cách xem dữ liệu có được phân phối bình thường không


47

Tôi đã lên kế hoạch này sau khi tôi làm một bài kiểm tra tính bình thường của Shapiro-Wilk. Thử nghiệm cho thấy có khả năng dân số được phân phối bình thường. Tuy nhiên, làm thế nào để xem "hành vi" này trên cốt truyện này?nhập mô tả hình ảnh ở đây

CẬP NHẬT

Một biểu đồ đơn giản của dữ liệu:

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

CẬP NHẬT

Bài kiểm tra Shapiro-Wilk cho biết:

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


6
Chỉnh sửa lại: kết quả kiểm tra SW bác bỏ giả thuyết rằng những dữ liệu này được rút ra độc lập từ một phân phối bình thường chung: giá trị p rất nhỏ. (Điều này rõ ràng cả trong biểu đồ qq, biểu hiện một cái đuôi trái ngắn và trong biểu đồ, biểu hiện độ lệch dương.) Điều này cho thấy bạn hiểu sai về bài kiểm tra. Khi bạn diễn giải bài kiểm tra một cách chính xác, bạn vẫn còn một câu hỏi để hỏi?
whuber

4
Trái lại: phần mềm và tất cả các âm mưu đều phù hợp với những gì họ nói. Biểu đồ qq và biểu đồ cho thấy các cách cụ thể trong đó dữ liệu đi chệch khỏi quy tắc; thử nghiệm SW nói rằng dữ liệu đó dường như không đến từ một phân phối bình thường.
whuber

1
Tại sao các lô nói rằng nó không phân phối bình thường? Các qqplot tạo ra một đường thẳng và biểu đồ trông cũng bình thường phân phối? Tôi không hiểu; (
Le Max

7
Biểu đồ qq rõ ràng không thẳng và biểu đồ rõ ràng không đối xứng (có lẽ là cơ bản nhất trong nhiều tiêu chí mà biểu đồ phân phối thông thường phải đáp ứng). Câu trả lời của Sven Hohenstein giải thích cách đọc cốt truyện qq.
whuber

1
Bạn có thể thấy hữu ích khi tạo một vectơ bình thường có cùng kích thước và tạo một biểu đồ QQ với dữ liệu bình thường để xem nó xuất hiện như thế nào khi thực tế dữ liệu đến từ một phân phối bình thường.
StatsStudent

Câu trả lời:


31

" Thử nghiệm cho thấy có khả năng dân số được phân phối bình thường. "

Không; nó đã không cho thấy điều đó.

Các xét nghiệm giả thuyết không cho bạn biết khả năng null là như thế nào. Trong thực tế, bạn có thể đặt cược null này là sai.

Cốt truyện QQ không đưa ra một dấu hiệu mạnh mẽ về tính phi quy tắc (cốt truyện khá thẳng); có lẽ đuôi trái ngắn hơn bạn mong đợi một chút nhưng điều đó thực sự không quan trọng lắm.

Biểu đồ như có lẽ cũng không nói lên nhiều điều; nó cũng gợi ý ở phần đuôi bên trái ngắn hơn một chút. Nhưng xem ở đây

Phân phối dân số dữ liệu của bạn sẽ không hoàn toàn bình thường. Tuy nhiên, cốt truyện QQ cho thấy tính bình thường có lẽ là một xấp xỉ hợp lý tốt.

Nếu cỡ mẫu không quá nhỏ, việc thiếu từ chối Shapiro-Wilk có thể sẽ nói nhiều như vậy.

Cập nhật: chỉnh sửa của bạn để bao gồm giá trị p Shapiro-Wilk thực tế rất quan trọng vì trên thực tế điều đó cho thấy bạn sẽ từ chối null ở các mức đáng kể điển hình. Thử nghiệm đó cho thấy dữ liệu của bạn không được phân phối bình thường và độ lệch nhẹ được biểu thị bởi các ô có lẽ là những gì đang được thử nghiệm chọn. Đối với các quy trình điển hình có thể giả sử tính quy phạm của chính biến đó (thử nghiệm t một mẫu là một trong số đó xuất hiện trong tâm trí), với kích thước mẫu khá lớn, tính phi quy tắc nhẹ này sẽ gần như không có kết quả tất cả - một trong những vấn đề với độ tốt của kiểm tra sự phù hợp là chúng có nhiều khả năng từ chối ngay khi nó không thành vấn đề (khi cỡ mẫu đủ lớn để phát hiện một số tính không quy tắc khiêm tốn); tương tự như vậy, nhiều khả năng họ sẽ không từ chối khi nó quan trọng nhất (khi kích thước mẫu nhỏ).


Trên thực tế, điều này khiến tôi đọc sai tuyên bố của OP: Tôi nghĩ anh ấy nói không chắc. Lưu ý rằng tôi hơi không đồng ý với bạn: trong khi một bài kiểm tra thường cho bạn biết khả năng quan sát sẽ khó xảy ra như thế nào nếu giả thuyết null là đúng, chúng tôi sử dụng điều này để chứng minh rằng vì chúng tôi đã có được quan sát này, giả thuyết null không chắc là đúng.
Nick Sabbe

Thx cho câu trả lời của bạn! Tôi hơi bối rối bởi tất cả các tuyên bố đi theo hướng khác. Nói rõ hơn, bài tập của tôi là đưa ra tuyên bố về tính quy phạm của mẫu. Vì vậy, những gì bạn sẽ đề nghị để nói như một câu trả lời cho giáo sư của tôi? Và làm thế nào để thể hiện sự bình thường ngay cả kích thước mẫu là rất lớn ?; S
Le Max

2
Về điểm mạnh nhất mà bạn có thể nói sẽ giống như - "Cốt truyện QQ phù hợp một cách hợp lý với tính quy tắc, nhưng phần đuôi bên trái hơi 'ngắn'; có dấu hiệu sai lệch nhẹ."
Glen_b

37

Nếu dữ liệu được phân phối bình thường, các điểm trong ô bình thường QQ nằm trên một đường chéo thẳng. Bạn có thể thêm dòng này vào âm mưu QQ của bạn bằng lệnh qqline(x), trong đó xlà vectơ của các giá trị.

Ví dụ về phân phối bình thường và không bình thường:

Phân phối bình thường

set.seed(42)
x <- rnorm(100)

Cốt truyện QQ-bình thường với dòng:

qqnorm(x); qqline(x)

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

Các độ lệch từ đường thẳng là tối thiểu. Điều này cho thấy phân phối bình thường.

Biểu đồ:

hist(x)

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

Phân phối không bình thường (Gamma)

y <- rgamma(100, 1)

Cốt truyện bình thường của QQ:

qqnorm(y); qqline(y)

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

Các điểm rõ ràng theo một hình dạng khác hơn đường thẳng.

Biểu đồ xác nhận tính phi chuẩn. Phân phối không có hình chuông nhưng bị lệch dương (nghĩa là hầu hết các điểm dữ liệu nằm ở nửa dưới). Biểu đồ phân phối bình thường cho thấy tần số cao nhất ở trung tâm của phân phối.

hist(y)

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


Tôi thấy rằng việc đặt khoảng tin cậy trên qqplot là hữu ích. Không có gì là "hoàn toàn" bình thường và kích thước mẫu có thể dẫn đến việc một thứ gì đó có thể không chính xác đến mức nào và vẫn trong mức bình thường.
EngrStudent - Phục hồi Monica

@EngrStudent Bạn có mã để chia sẻ để bao gồm khoảng tin cậy trong qqplot không?
danno

1
@danno Kiểm tra qqPlotchức năng trong cargói.
Sven Hohenstein

@danno - xem "qqPlot" trong thư viện "xe hơi". Nó đã xuất hiện được một thời gian và tôi đã không làm được. Nó thêm các khoảng tin cậy. Bạn cũng có thể chỉ định phân phối cơ sở cho một số phân phối không bình thường. Đó là trong câu trả lời của tôi dưới đây.
EngrStudent - Phục hồi Monica

1
approximately

23

Một số công cụ để kiểm tra tính hợp lệ của giả định về tính quy tắc trong R

library(moments)
library(nortest)
library(e1071)

set.seed(777)
x <- rnorm(250,10,1)

# skewness and kurtosis, they should be around (0,3)
skewness(x)
kurtosis(x)

# Shapiro-Wilks test
shapiro.test(x)

# Kolmogorov-Smirnov test
ks.test(x,"pnorm",mean(x),sqrt(var(x)))

# Anderson-Darling test
ad.test(x)

# qq-plot: you should observe a good fit of the straight line
qqnorm(x)
qqline(x)

# p-plot: you should observe a good fit of the straight line
probplot(x, qdist=qnorm)

# fitted normal density
f.den <- function(t) dnorm(t,mean(x),sqrt(var(x)))
curve(f.den,xlim=c(6,14))
hist(x,prob=T,add=T)

11

Mặc dù đó là một ý tưởng tốt để kiểm tra trực quan xem liệu trực giác của bạn có phù hợp với kết quả của một số thử nghiệm hay không, bạn không thể mong đợi điều này sẽ dễ dàng mọi lúc. Nếu những người cố gắng phát hiện ra Higgs Boson sẽ chỉ tin tưởng vào kết quả của họ nếu họ có thể đánh giá trực quan về họ, họ sẽ cần một con mắt rất sắc bén.

Đặc biệt với các bộ dữ liệu lớn (và do đó, điển hình là với sức mạnh ngày càng tăng), các số liệu thống kê có xu hướng thu nhận những khác biệt nhỏ nhất, ngay cả khi chúng khó có thể nhận thấy bằng mắt thường.

Điều đó đang được nói: đối với tính bình thường, cốt truyện QQ của bạn sẽ hiển thị một đường thẳng: Tôi sẽ nói là không. Có những khúc cua rõ ràng ở đuôi, và thậm chí gần giữa có một chút hỗn loạn. Trực quan, tôi vẫn có thể sẵn sàng nói (tùy thuộc vào mục tiêu kiểm tra tính bình thường), tuy nhiên, dữ liệu này là "hợp lý" bình thường.

Tuy nhiên, lưu ý: đối với hầu hết các mục đích mà bạn muốn kiểm tra tính quy phạm, bạn chỉ cần tính quy tắc của phương tiện thay vì tính quy tắc của các quan sát, vì vậy định lý giới hạn trung tâm có thể đủ để giải cứu bạn. Ngoài ra: mặc dù tính quy tắc thường là một giả định mà bạn cần kiểm tra "chính thức", nhiều thử nghiệm đã được chứng minh là khá nhạy cảm khi giả định này không được thực hiện.


2

Tôi thích phiên bản ra khỏi 'xe' thư viện 'vì nó không chỉ cung cấp xu hướng trung tâm, mà cả khoảng tin cậy. Nó đưa ra hướng dẫn trực quan để giúp xác nhận xem hành vi của dữ liệu có phù hợp với phân phối giả thuyết hay không.

library(car)

qqPlot(lm(prestige ~ income + education + type, data=Duncan), 
       envelope=.99)

một số liên kết:

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.