Cara membuat & menafsirkan plot qq di r
Plot QQ , kependekan dari “quantile-quantile”, adalah jenis plot yang dapat kita gunakan untuk menentukan apakah suatu kumpulan data berpotensi berasal dari distribusi teoretis atau tidak.
Banyak uji statistik yang mengasumsikan bahwa kumpulan data mengikuti distribusi normal, dan plot QQ sering digunakan untuk menilai apakah asumsi ini terpenuhi atau tidak.
Meskipun plot QQ bukan uji statistik formal, plot ini memberikan cara sederhana untuk memeriksa secara visual apakah kumpulan data mengikuti distribusi normal dan, jika tidak, bagaimana asumsi ini dilanggar dan titik data mana yang berpotensi menjadi asal mula pelanggaran ini.
Kita dapat membuat plot QQ dengan memplot dua set kuantil satu sama lain. Jika kedua kumpulan kuantil berasal dari distribusi yang sama, maka titik-titik pada plot kira-kira membentuk garis diagonal lurus.
Kuantil mewakili titik-titik dalam kumpulan data yang di bawahnya terdapat sebagian data. Misalnya, kuantil 0,9 mewakili titik di mana 90% data berada. Kuantil 0,5 mewakili titik di bawah 50% data, dan seterusnya.
Plot QQ mengidentifikasi kuantil sampel data Anda dan membandingkannya dengan kuantil distribusi teoretis. Dalam kebanyakan kasus, distribusi normal digunakan, namun plot QQ sebenarnya dapat dibuat untuk distribusi teoritis apa pun.
Jika titik-titik data terletak di sepanjang garis diagonal lurus pada plot QQ, maka kumpulan data tersebut kemungkinan besar mengikuti distribusi normal.
Cara membuat plot QQ di R
Kita dapat dengan mudah membuat plot QQ untuk memeriksa apakah kumpulan data mengikuti distribusi normal menggunakan fungsi qqnorm() bawaan.
Misalnya, kode berikut menghasilkan vektor 100 nilai acak yang mengikuti distribusi normal dan membuat plot QQ untuk kumpulan data tersebut untuk memverifikasi bahwa kumpulan data tersebut memang mengikuti distribusi normal:
#make this example reproducible set.seed(11) #generate vector of 100 values that follows a normal distribution data <- rnorm(100) #create QQ plot to compare this dataset to a theoretical normal distribution qqnorm(data)
Untuk mempermudah melihat apakah data mengikuti garis lurus, kita dapat menggunakan fungsi qqline() :
#create QQ plot qqnorm(data) #add straight diagonal line to plot qqline(data)
Kita dapat melihat bahwa titik-titik data di dekat ekor tidak persis mengikuti garis lurus, namun sebagian besar data sampel ini tampak terdistribusi normal (sebagaimana seharusnya karena kita meminta R untuk menghasilkan data dari distribusi normal ). ).
Sebagai gantinya, pertimbangkan kode berikut yang menghasilkan vektor 100 nilai acak yang mengikuti distribusi gamma dan membuat plot QQ untuk data ini guna memeriksa apakah mengikuti distribusi normal:
#make this example reproducible set.seed(11) #generate vector of 100 values that follows a gamma distribution data <- rgamma(100, 1) #create QQ plot to compare this dataset to a theoretical normal distribution qqnorm(data) qqline(data)
Kita dapat melihat penyimpangan yang jelas dari garis lurus pada plot QQ ini, yang menunjukkan bahwa kumpulan data ini kemungkinan besar tidak mengikuti distribusi normal.
Pertimbangkan potongan kode lain yang menghasilkan vektor 100 nilai acak yang mengikuti distribusi Chi-kuadrat dengan 5 derajat kebebasan dan membuat plot QQ untuk data ini guna memeriksa apakah mengikuti distribusi normal:
#make this example reproducible set.seed(11) #generate vector of 100 values that follows a Chi-Square distribution data <- rchisq(100, 5) #create QQ plot to compare this dataset to a theoretical normal distribution qqnorm(data) qqline(data)
Sekali lagi kita dapat melihat bahwa kumpulan data ini tampaknya tidak mengikuti distribusi normal, terutama di dekat bagian ekor.
Mengubah estetika plot QQ di R
Kita dapat mengubah beberapa estetika plot QQ di R, termasuk judul, label sumbu, warna titik data, warna garis, dan lebar garis.
Kode berikut mengubah judul, label sumbu, dan warna titik plot:
#make this example reproducible set.seed(11) #generate vector of 100 values that follows a normal distribution data <- rnorm(100) #create QQ plot qqnorm(data, main = 'QQ Plot for Normality', xlab = 'Theoretical Dist', ylab = 'Sample dist', col = 'steelblue')
Kemudian kode berikut menambahkan garis lurus diagonal pada plot dengan warna merah, lebar garis 2 (lwd = 2, default 1), dan garis putus-putus (lty = 2, default 1):
qqline(data, col = 'red', lwd = 2, lty = 2)
Catatan teknis
Ingatlah bahwa plot QQ hanyalah cara untuk memeriksa secara visual apakah kumpulan data mengikuti distribusi teoretis. Untuk menguji secara formal apakah suatu kumpulan data mengikuti distribusi tertentu atau tidak, pengujian berikut dapat dilakukan (dengan asumsi Anda membandingkan kumpulan data Anda dengan distribusi normal):
Tes Anderson – Sayang
Tes Shapiro – Wilk
Tes Kolmogorov-Smirnov