Python'da qq grafiği nasıl oluşturulur
Bir veri kümesinin potansiyel olarak teorik bir dağılımdan gelip gelmediğini değerlendirmek için genellikle “kantil-nicelik” kelimesinin kısaltması olan bir QQ grafiği kullanılır.
Çoğu durumda bu tür çizim, bir veri kümesinin normal dağılıma uyup uymadığını belirlemek için kullanılır.
Bu eğitimde Python’da bir veri kümesi için QQ grafiğinin nasıl oluşturulacağı açıklanmaktadır.
Örnek: Python’da QQ grafiği
Aşağıdaki 100 değerden oluşan veri setine sahip olduğumuzu varsayalım:
import numpy as np #create dataset with 100 values that follows a normal distribution np.random.seed(0) data = np.random.normal(0,1, 1000) #view first 10 values data[:10] array([ 1.76405235, 0.40015721, 0.97873798, 2.2408932 , 1.86755799, -0.97727788, 0.95008842, -0.15135721, -0.10321885, 0.4105985 ])
Bu veri kümesi için bir QQ grafiği oluşturmak amacıyla statsmodels kütüphanesindeki qqplot() fonksiyonunu kullanabiliriz:
import statsmodels.api as sm import matplotlib.pyplot as plt #create QQ plot with 45-degree line added to plot fig = sm.qqplot(data, line='45') plt.show()
Bir QQ grafiğinde, x ekseni teorik yüzdelik dilimleri görüntüler. Bu, gerçek verilerinizi göstermediği, bunun yerine verilerinizin normal şekilde dağıtılması durumunda nerede olacağını temsil ettiği anlamına gelir.
Y ekseni mevcut verilerinizi görüntüler. Bu, veri değerlerinin 45 derecelik açıyla kabaca düz bir çizgi izlemesi durumunda verilerin normal şekilde dağıldığı anlamına gelir.
Yukarıdaki QQ grafiğimizde veri değerlerinin 45 dereceyi yakından takip etme eğiliminde olduğunu görebiliriz, bu da verilerin muhtemelen normal şekilde dağıldığı anlamına gelir. 100 veri değerini numpy.random.normal() fonksiyonunu kullanarak oluşturduğumuz için bu şaşırtıcı olmasa gerek.
Bunun yerine, eşit şekilde dağıtılmış 100 değerden oluşan bir veri kümesi oluşturup oluşturmadığımızı ve bu veri kümesi için bir QQ grafiği oluşturup oluşturmadığımızı düşünün:
#create dataset of 100 uniformly distributed values data = np.random.uniform(0,1, 1000) #generate QQ plot for the dataset fig = sm.qqplot(data, line='45') plt.show()
Veri değerlerinin 45 derecelik kırmızı çizgiyi açıkça takip etmemesi normal bir dağılım takip etmediğini gösteriyor.
QQ Grafikleri Hakkında Notlar
QQ grafikleriyle ilgili aşağıdaki notları aklınızda bulundurun:
- QQ grafiği resmi bir istatistiksel test olmasa da, bir veri kümesinin normal şekilde dağılıp dağılmadığını görsel olarak kontrol etmenin basit bir yolunu sağlar.
- QQ grafiklerini, daha az kullanılan ve dağılımın kuyruğuna düşen veri değerlerini analiz etmede daha az kullanışlı olan PP grafikleriyle karıştırmamaya dikkat edin.
Daha fazla Python eğitimini burada bulabilirsiniz.