R - QQPlot: bagaimana cara melihat apakah data terdistribusi secara normal


47

Saya telah merencanakan ini setelah saya melakukan tes normalitas Shapiro-Wilk. Tes menunjukkan bahwa ada kemungkinan bahwa populasi terdistribusi secara normal. Namun, bagaimana cara melihat "perilaku" ini di plot ini?masukkan deskripsi gambar di sini

MEMPERBARUI

Sebuah histogram sederhana dari data:

masukkan deskripsi gambar di sini

MEMPERBARUI

Tes Shapiro-Wilk mengatakan:

masukkan deskripsi gambar di sini


6
Sunting: hasil uji SW menolak hipotesis bahwa data ini diambil secara independen dari distribusi normal yang umum: nilai p sangat kecil. (Ini terlihat jelas dalam plot qq, yang memperlihatkan ekor kiri pendek, dan dalam histogram, yang menunjukkan kemiringan positif.) Ini menunjukkan bahwa Anda salah menafsirkan tes. Ketika Anda menginterpretasikan tes dengan benar, apakah Anda masih memiliki pertanyaan untuk ditanyakan?
Whuber

4
Sebaliknya: perangkat lunak dan semua plot konsisten dengan apa yang mereka katakan. Plot qq dan histogram menunjukkan cara-cara khusus di mana data menyimpang dari normalitas; uji SW mengatakan bahwa data seperti itu tidak mungkin berasal dari distribusi normal.
whuber

1
Mengapa plot mengatakan bahwa itu tidak berdistribusi normal? Qqplot menciptakan garis lurus dan histogram terlihat juga terdistribusi normal? Saya tidak mengerti; (
Le Max

7
Plot qq jelas tidak lurus dan histogram jelas tidak simetris (yang mungkin paling mendasar dari banyak kriteria yang harus dipenuhi histogram terdistribusi normal). Jawaban Sven Hohenstein menjelaskan cara membaca plot qq.
whuber

1
Anda mungkin merasa terbantu untuk menghasilkan vektor normal dengan ukuran yang sama dan membuat plot QQ dengan data normal untuk melihat bagaimana itu muncul ketika data, pada kenyataannya, berasal dari distribusi normal.
StatsStudent

Jawaban:


31

" Tes menunjukkan bahwa kemungkinan populasi terdistribusi secara normal. "

Tidak; itu tidak menunjukkan itu.

Tes hipotesis tidak memberi tahu Anda seberapa besar kemungkinan nol itu. Sebenarnya Anda bisa bertaruh bahwa nol ini salah.

Plot QQ tidak memberikan indikasi kuat akan ketidaknormalan (plot ini cukup lurus); mungkin ada ekor kiri yang sedikit lebih pendek dari yang Anda harapkan, tetapi itu benar-benar tidak masalah.

Histogram apa adanya mungkin juga tidak banyak bicara; itu juga mengisyaratkan ekor kiri yang sedikit lebih pendek. Tapi lihat di sini

Distribusi populasi tempat asal data Anda tidak akan menjadi normal. Namun, plot QQ menunjukkan bahwa normalitas mungkin merupakan perkiraan yang cukup baik.

Jika ukuran sampel tidak terlalu kecil, kurangnya penolakan terhadap Shapiro-Wilk mungkin akan mengatakan hal yang sama.

Perbarui: hasil edit Anda untuk menyertakan nilai p Shapiro-Wilk yang sebenarnya adalah penting karena pada kenyataannya itu akan menunjukkan Anda akan menolak nol pada tingkat signifikan yang khas. Tes itu menunjukkan data Anda tidak terdistribusi secara normal dan kemiringan ringan yang ditunjukkan oleh plot mungkin adalah apa yang diambil oleh tes. Untuk prosedur tipikal yang mungkin mengasumsikan normalitas dari variabel itu sendiri (uji-satu sampel adalah yang terlintas dalam pikiran), pada apa yang tampak sebagai ukuran sampel yang cukup besar, ketidaknormalan ringan ini hampir tidak ada konsekuensi pada semua - salah satu masalah dengan uji goodness of fit adalah mereka lebih cenderung menolak hanya ketika itu tidak masalah (ketika ukuran sampel cukup besar untuk mendeteksi beberapa non-normalitas sederhana); sama halnya mereka lebih cenderung gagal untuk menolak ketika hal itu paling penting (ketika ukuran sampel kecil).


Bahkan, ini membuat saya salah membaca pernyataan OP: Saya pikir dia mengatakan tidak mungkin. Perhatikan bahwa saya sedikit tidak setuju dengan Anda: sementara tes biasanya memberi tahu Anda seberapa kecil kemungkinan pengamatan jika hipotesis nol itu benar, kami menggunakan ini untuk menyatakan bahwa karena kami memang mendapatkan pengamatan ini, hipotesis nol tidak mungkin benar.
Nick Sabbe

Terima kasih atas jawaban Anda! Saya sedikit bingung dengan semua pernyataan yang mengarah ke arah lain. Untuk mengatakannya dengan jelas, latihan saya adalah membuat pernyataan tentang normalitas sampel. Jadi apa yang Anda sarankan untuk katakan sebagai jawaban untuk profesor saya? Dan bagaimana cara menunjukkan normalitas bahkan ukuran sampelnya sangat besar?; S
Le Max

2
Tentang yang terkuat yang bisa Anda katakan adalah sesuatu seperti - "Plot QQ cukup konsisten dengan normalitas, tetapi ekor kiri sedikit 'pendek'; ada indikasi kemiringan yang ringan."
Glen_b

37

Jika data terdistribusi secara normal, titik-titik dalam plot QQ-normal terletak pada garis diagonal lurus. Anda dapat menambahkan baris ini ke plot QQ Anda dengan perintah qqline(x), di mana xvektor nilai.

Contoh distribusi normal dan non-normal:

Distribusi normal

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

Plot QQ-normal dengan garis:

qqnorm(x); qqline(x)

masukkan deskripsi gambar di sini

Penyimpangan dari garis lurus minimal. Ini menunjukkan distribusi normal.

Histogram:

hist(x)

masukkan deskripsi gambar di sini

Distribusi tidak normal (Gamma)

y <- rgamma(100, 1)

Plot QQ-normal:

qqnorm(y); qqline(y)

masukkan deskripsi gambar di sini

Poin-poinnya jelas mengikuti bentuk lain dari garis lurus.

Histogram mengkonfirmasi ketidaknormalan. Distribusi tidak berbentuk lonceng tetapi condong positif (yaitu, sebagian besar titik data berada di bagian bawah). Histogram distribusi normal menunjukkan frekuensi tertinggi di pusat distribusi.

hist(y)

masukkan deskripsi gambar di sini


Saya menemukan bahwa menempatkan interval kepercayaan pada qqplot berguna. Tidak ada yang "sempurna" normal, dan ukuran sampel dapat mengarahkan sejauh apa sesuatu bisa tidak eksak dan masih dalam normal.
EngrStudent

@EngrStudent Apakah Anda memiliki kode untuk dibagikan agar menyertakan interval kepercayaan di qqplot?
danno

1
@ jangan Periksa qqPlotfungsi dalam carpaket.
Sven Hohenstein

@danno - lihat "qqPlot" di perpustakaan "car". Sudah ada beberapa saat, dan saya tidak berhasil. Ini menambah interval kepercayaan. Anda juga dapat menentukan distribusi dasar untuk beberapa distribusi tidak normal. Itu dalam jawaban saya di bawah ini.
EngrStudent

1
approximately

23

Beberapa alat untuk memeriksa validitas asumsi normalitas dalam 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

Meskipun memeriksa secara visual apakah intuisi Anda cocok dengan hasil beberapa tes, Anda tidak bisa berharap ini mudah setiap saat. Jika orang yang mencoba mendeteksi Higgs Boson hanya akan mempercayai hasil mereka jika mereka bisa menilai secara visual, mereka akan membutuhkan mata yang sangat tajam.

Terutama dengan dataset besar (dan dengan demikian, biasanya dengan kekuatan yang meningkat), statistik cenderung mengambil perbedaan terkecil, bahkan ketika mereka hampir tidak dapat dilihat dengan mata telanjang.

Yang dikatakan: untuk normalitas, plot QQ Anda harus menunjukkan garis lurus: Saya akan mengatakan tidak. Ada belokan yang jelas di bagian ekor, dan bahkan di dekat tengah ada keributan. Secara visual, saya mungkin masih mau mengatakan (tergantung pada tujuan memeriksa normalitas) data ini "cukup" normal.

Namun perhatikan: untuk sebagian besar tujuan di mana Anda ingin memeriksa normalitas, Anda hanya perlu normalitas rata-rata daripada normalitas pengamatan, sehingga teorema batas pusat mungkin cukup untuk menyelamatkan Anda. Selain itu: walaupun normalitas sering merupakan asumsi bahwa Anda perlu memeriksa "secara resmi", banyak tes telah terbukti sangat tidak sensitif untuk membuat asumsi ini tidak terpenuhi.


2

Saya suka versi keluar dari 'R' perpustakaan 'mobil' karena tidak hanya memberikan kecenderungan sentral, tetapi interval kepercayaan. Ini memberikan panduan visual untuk membantu mengkonfirmasi apakah perilaku data konsisten dengan distribusi hipotetis.

library(car)

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

beberapa tautan:

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.