[Gambar oleh penulis]
Ilmuwan data biasanya perlu memeriksa statistik kumpulan data mereka, terutama terhadap distribusi yang diketahui atau membandingkannya dengan kumpulan data lainnya. Ada beberapa tes hipotesis yang dapat kita jalankan untuk tujuan ini, tetapi saya sering lebih suka menggunakan representasi grafis yang sederhana. Aku sedang berbicara tentang plot QQ.
Apa itu plot QQ?
Plot QQ sering disebut plot kuantil. Ini adalah plot 2D di mana kami membandingkan kuantil teoretis dari suatu distribusi dengan kuantil sampel dari kumpulan data. Jika kumpulan data telah dihasilkan dari distribusi itu, kami berharap bagan ini mendekati garis 45 derajat, karena kuantil sampel akan serupa dengan kuantil teoretis. Jika sampel telah dihasilkan dari distribusi yang berbeda, kami tidak akan mendapatkan garis 45.
Dengan cara ini, kita dapat dengan mudah memvisualisasikan jika kumpulan data mirip dengan distribusi teoretis. Kita dapat menggunakan plot QQ bahkan untuk membandingkan dua set data, selama mereka memiliki jumlah poin yang sama.
Contoh dalam Python
Sekarang mari kita lihat bagaimana plot QQ bekerja dengan Python. Anda dapat menemukan seluruh kode di repo GitHub saya .
Pertama, mari impor beberapa perpustakaan dan mari kita atur seed nomor acak untuk membuat simulasi kita dapat direproduksi.
from statsmodels.graphics.gofplots import qqplot
from matplotlib import pyplot as plt
plt.rcParams['figure.figsize'] = [10, 7]
plt.rc('font', size=14)
from scipy.stats import norm, uniform
import numpy as np
np.random.seed(0)
x = np.random.uniform(1,2,1000)
qqplot(x,norm,fit=True,line="45")
plt.show()
Sekarang mari kita coba dengan dataset terdistribusi normal.
x = np.random.normal(1,2,1000)
qqplot(x,norm,fit=True,line="45")
plt.show()
Tentu saja, dengan mengubah argumen kedua dari fungsi qqplot, kita dapat membandingkan kumpulan data sampel kita dengan distribusi lain. Misalnya, kita dapat membandingkan dataset yang terdistribusi normal dengan distribusi yang seragam.
qqplot(x,uniform,fit=True,line="45")
plt.show()
Plot QQ dengan 2 set data
Plot QQ dapat digunakan bahkan dengan 2 set data, selama mereka memiliki jumlah poin yang sama. Untuk mendapatkan kuantil sampel dari kedua kumpulan data, kita hanya perlu mengurutkannya secara menaik dan memplotnya.
Mari kita buat dua dataset terdistribusi normal dari 2 distribusi normal dengan mean yang sama dan varians yang sama.
x1 = np.random.normal(1,2,1000)
x2 = np.random.normal(1,2,1000)
x1.sort()
x2.sort()
plt.scatter(x1,x2)
plt.plot([min(x1),max(x1)],[min(x1),max(x1)],color="red")
plt.xlabel("1st dataset's quantiles")
plt.ylabel("2nd dataset's quantiles")
plt.show()
Kesimpulan
Dalam artikel ini, saya menunjukkan bagaimana menggunakan plot QQ untuk memeriksa kesamaan antara distribusi sampel dan distribusi teoritis atau antara dua sampel. Meskipun ada beberapa uji hipotesis yang dapat dilakukan untuk mencapai tujuan ini (misalnya uji Kolmogorov-Smirnov), saya lebih suka menggunakan visualisasi data untuk memiliki representasi visual dari fenomena di dalam kumpulan data kami. Dengan cara ini, interpretasi kami tidak bias oleh uji hipotesis apa pun dan lebih jelas untuk disajikan bahkan kepada orang-orang non-teknis.
Awalnya diterbitkan di https://www.yourdatateacher.com pada 21 Juni 2021.