Menafsirkan QQplot - Apakah ada aturan praktis untuk memutuskan tidak normal?

47

Saya telah membaca cukup utas tentang QQplots di sini untuk memahami bahwa QQplot dapat lebih informatif daripada tes normalitas lainnya. Namun, saya tidak berpengalaman dalam menafsirkan QQplots. Saya sering mencari di Google; Saya menemukan banyak grafik QQ non-normal, tetapi tidak ada aturan yang jelas tentang bagaimana menafsirkannya, selain apa yang tampaknya menjadi perbandingan dengan distribusi tahu ditambah "firasat".

Saya ingin tahu apakah Anda memiliki (atau Anda tahu) aturan praktis untuk membantu Anda memutuskan untuk tidak normal.

Pertanyaan ini muncul ketika saya melihat dua grafik ini: grafik 2 grafik 1

Saya mengerti bahwa keputusan tidak normal tergantung pada data dan apa yang ingin saya lakukan dengan mereka; Namun, pertanyaan saya adalah: secara umum, kapan keberangkatan yang diamati dari garis lurus merupakan bukti yang cukup untuk membuat tidak masuk akal perkiraan normalitas?

Untuk apa nilainya, uji Shapiro-Wilk gagal untuk menolak hipotesis non-normalitas dalam kedua kasus.

greymatter0
sumber
3
band kepercayaan di sekitar garis QQ cukup keren. Bisakah Anda membagikan kode R yang Anda gunakan untuk mendapatkannya?
user603
7
Itu hanya qqPlot () dari {qualityTools} :)
greymatter0

Jawaban:

43

Perhatikan bahwa Shapiro-Wilk adalah ujian normal yang kuat.

Pendekatan terbaik adalah benar-benar memiliki gagasan yang baik tentang seberapa sensitif prosedur yang ingin Anda gunakan untuk berbagai jenis ketidaknormalan (seberapa parah tidak normal yang harus dilakukan sehingga mempengaruhi pengaruh Anda lebih daripada Anda dapat menerima).

Pendekatan informal untuk melihat plot akan menghasilkan sejumlah set data yang sebenarnya normal dengan ukuran sampel yang sama dengan yang Anda miliki - (misalnya, katakan 24 di antaranya). Plot data nyata Anda di antara kisi-kisi plot seperti itu (5x5 dalam kasus 24 set acak). Jika itu bukan yang terlihat tidak biasa (yang terlihat paling buruk, katakanlah), itu cukup konsisten dengan normalitas.

masukkan deskripsi gambar di sini

Menurut saya, kumpulan data "Z" di tengah terlihat kira-kira setara dengan "o" dan "v" dan mungkin bahkan "h", sementara "d" dan "f" terlihat sedikit lebih buruk. "Z" adalah data nyata. Meskipun saya tidak percaya untuk sesaat bahwa itu sebenarnya normal, itu tidak tampak aneh ketika Anda membandingkannya dengan data normal.

[Sunting: Saya baru saja melakukan polling acak - well, saya bertanya kepada putri saya, tetapi pada waktu yang cukup acak - dan pilihannya untuk paling tidak seperti garis lurus adalah "d". Jadi 100% dari mereka yang disurvei berpikir "d" adalah yang paling aneh.]

Pendekatan yang lebih formal adalah dengan melakukan tes Shapiro-Francia (yang secara efektif didasarkan pada korelasi dalam plot QQ), tetapi (a) bahkan tidak sekuat tes Shapiro Wilk, dan (b) pengujian formal menjawab pertanyaan (kadang-kadang) bahwa Anda seharusnya sudah tahu jawabannya (distribusi data Anda berasal tidak sepenuhnya normal), alih-alih pertanyaan yang perlu Anda jawab (seberapa buruk bedanya?).


Seperti yang diminta, kode untuk tampilan di atas. Tidak ada yang terlibat:

z = lm(dist~speed,cars)$residual
n = length(z)
xz = cbind(matrix(rnorm(12*n),nr=n),z,matrix(rnorm(12*n),nr=n))
colnames(xz) = c(letters[1:12],"Z",letters[13:24])

opar = par()
par(mfrow=c(5,5));
par(mar=c(0.5,0.5,0.5,0.5))
par(oma=c(1,1,1,1));

ytpos = (apply(xz,2,min)+3*apply(xz,2,max))/4
cn = colnames(xz)

for(i in 1:25) {
  qqnorm(xz[,i],axes=FALSE,ylab= colnames(xz)[i],xlab="",main="")
  qqline(xz[,i],col=2,lty=2)
  box("figure", col="darkgreen")
  text(-1.5,ytpos[i],cn[i])
}

par(opar)

x

(Saya sudah membuat set plot seperti ini sejak pertengahan 80-an. Bagaimana Anda bisa menafsirkan plot jika Anda tidak terbiasa dengan bagaimana mereka berperilaku ketika asumsi berlaku - dan ketika mereka tidak melakukannya?)

Lihat lebih lanjut:

Buja, A., Cook, D. Hofmann, H., Lawrence, M. Lee, E.-K., Swayne, DF dan Wickham, H. (2009) Statistik Inferensi untuk analisis data eksplorasi dan model diagnostik Phil. Trans. R. Soc. A 2009 367, 4361-4383 doi: 10.1098 / rsta.2009.0120

Glen_b
sumber
8
+1. Saya sangat suka ide untuk membandingkan plot-QQ sampel Anda dengan beberapa plot yang dibuat secara acak!
COOLSerdash
@Glen_b terima kasih. Bisakah saya bertanya kepada Anda bagaimana Anda menghasilkan grid grafik?
greymatter0
3
Saya baru tahu saya tidak pernah menanggapi permintaan Anda, greymatter0. Tidak ada ruang untuk menaruh seluruh naskah saya, tetapi saya akan menguraikan intinya. Saya bermain dengan opsi plot - opar=par(); par(mfrow=c(5,5)); par(mar=c(0.5,0.5,0.5,0.5)); par(oma=c(1,1,1,1))kemudian dalam satu lingkaran di atas isaya lakukan qqnorm(xz[,i],axes=FALSE,ylab= colnames(xz)[i],xlab="",main=""); qqline(xz[,i],col=2,lty=2); box("figure", col="darkgreen")kemudian di akhir par(opar)untuk mengatur opsi kembali ke apa pun sebelumnya. Itu meninggalkan beberapa detail tetapi Anda harus dapat mengelola dari sana.
Glen_b
@ greymatter0 ... dan sekarang saya tahu saya tidak melakukan ping dengan benar sebelum saya akhirnya menjawab. Permintaan maaf saya.
Glen_b
Jangan khawatir Glen_b, terima kasih banyak untuk mengingatnya!
greymatter0
22

Tanpa bertentangan dengan jawaban yang bagus di sini, saya punya satu aturan praktis yang sering (tetapi tidak selalu) menentukan. (Sebuah komentar yang lewat dalam jawaban oleh @Dante tampaknya relevan juga.)

Kadang-kadang tampaknya terlalu jelas untuk dinyatakan, tetapi di sini Anda berada.

Saya senang menyebut distribusi tidak normal jika saya pikir saya dapat menawarkan deskripsi berbeda yang jelas lebih tepat.

Jadi, jika ada kelengkungan kecil dan / atau ketidakteraturan pada ekor plot kuantil-kuantil normal, tetapi perkiraan kelurusan pada plot kuantil-kuantil gamma, saya dapat mengatakan "Itu tidak dikategorikan sebagai normal; itu lebih seperti gamma ".

Bukan kebetulan bahwa ini menggemakan argumen standar dalam sejarah dan filsafat sains, belum lagi praktik ilmiah umum, bahwa hipotesis paling jelas dan efektif ditolak ketika Anda memiliki yang lebih baik untuk menggantikannya. (Cue: kiasan untuk Karl Popper, Thomas S. Kuhn, dan sebagainya.)

Memang benar bahwa untuk pemula, dan memang untuk semua orang, ada gradasi yang halus antara "Itu normal, kecuali untuk penyimpangan kecil yang selalu kita harapkan" dan "Itu sangat berbeda dari normal, kecuali untuk beberapa kesamaan kasar yang sering kita dapatkan ".

Keyakinan (-seperti) amplop dan beberapa sampel yang disimulasikan dapat sangat membantu, dan saya menggunakan dan merekomendasikan keduanya, tetapi ini juga bisa membantu. (Kebetulan, membandingkan dengan portofolio simulasi adalah penemuan ulang baru-baru ini, tetapi kembali setidaknya sejauh Shewhart pada tahun 1931.)

Saya akan menggemakan top line saya. Terkadang tidak ada distribusi nama-merek yang cocok, dan Anda harus bergerak maju sebaik mungkin.

Nick Cox
sumber
12

Seperti yang dikatakan @Glen_b, Anda dapat membandingkan data Anda dengan data yang Anda yakini normal - data yang Anda hasilkan sendiri, dan kemudian mengandalkan firasat Anda :)

Berikut ini adalah contoh dari buku teks Statistik OpenIntro

Mari kita lihat Plot QQ ini:

qq1

Apakah ini normal? Mari kita bandingkan dengan data yang terdistribusi normal:

qq2

Yang ini terlihat lebih baik daripada data kami, jadi data kami sepertinya tidak normal. Mari kita pastikan dengan mensimulasikannya beberapa kali dan merencanakannya berdampingan

qq3

Jadi firasat kami memberi tahu kami bahwa sampel tidak mungkin didistribusikan secara normal.

Inilah kode R untuk melakukan ini

load(url("http://www.openintro.org/stat/data/bdims.RData"))
fdims = subset(bdims, bdims$sex == 0)

qqnorm(fdims$wgt, col=adjustcolor("orange", 0.4), pch=19)
qqline(fdims$wgt)

qqnormsim = function(dat, dim=c(2,2)) {
  par(mfrow=dim)
  qqnorm(dat, col=adjustcolor("orange", 0.4), 
         pch=19, cex=0.7, main="Normal QQ Plot (Data)")
  qqline(dat)
  for (i in 1:(prod(dim) - 1)) {
    simnorm = rnorm(n=length(dat), mean=mean(dat), sd=sd(dat))
    qqnorm(simnorm, col=adjustcolor("orange", 0.4), 
           pch=19, cex=0.7,
           main="Normal QQ Plot (Sim)")
    qqline(simnorm)
  }
  par(mfrow=c(1, 1))
}
qqnormsim(fdims$wgt)
Alexey Grigorev
sumber
9

H0:F=Normal

Biasanya, tes yang menganggap setiap distribusi lainnya sebagai hipotesis alternatif memiliki daya rendah bila dibandingkan tes dengan hipotesis alternatif yang tepat (lihat, misalnya, 1 dan 2 ).

Ada paket R yang menarik dengan penerapan beberapa tes normalitas nonparametrik ('nortest', http://cran.r-project.org/web/packages/nortest/index.html). Seperti disebutkan dalam makalah di atas, tes rasio kemungkinan, dengan hipotesis alternatif yang sesuai, lebih kuat daripada tes ini.

Ide yang disebutkan oleh @Glen_b tentang membandingkan sampel Anda dengan sampel acak dari model Anda (dipasang) disebutkan dalam referensi kedua saya. Mereka disebut "QQ-Envelopes" atau "QQ-Fans". Secara implisit ini memerlukan memiliki model untuk menghasilkan data dari dan, akibatnya, hipotesis alternatif.

Dante
sumber
4

nY

Frank Harrell
sumber
1
+1. Jika Anda memiliki lima menit @ Franck, dapatkah Anda melihat utas ini: stats.meta.stackexchange.com/questions/4743 dan menimbang di sana? Ini tentang tag kami untuk ordinal / memerintahkan logit / probit - ada sejumlah besar atau tag terkait, dan beberapa ketidakkonsistenan dalam penggunaan tag [ordinal], jadi saya menyarankan untuk merapikan tag ini. Alangkah baiknya mengetahui pendapat Anda tentang cara terbaik untuk mengaturnya.
Amuba mengatakan Reinstate Monica
1
Y