R'de qq grafiği nasıl oluşturulur ve yorumlanır
“Kantil-nicelik” kelimesinin kısaltması olan QQ grafiği , bir veri kümesinin potansiyel olarak teorik bir dağılımdan gelip gelmediğini belirlemek için kullanabileceğimiz bir grafik türüdür.
Birçok istatistiksel test, bir veri kümesinin normal bir dağılım izlediğini varsayar ve bu varsayımın karşılanıp karşılanmadığını değerlendirmek için sıklıkla bir QQ grafiği kullanılır.
QQ grafiği resmi bir istatistiksel test olmasa da, bir veri kümesinin normal bir dağılım izleyip izlemediğini, izlemiyorsa bu varsayımın nasıl ihlal edildiğini ve bu ihlalin kaynağında potansiyel olarak hangi veri noktalarının bulunduğunu görsel olarak kontrol etmenin basit bir yolunu sağlar.
İki grup niceliğin birbirine karşı grafiğini çizerek bir QQ grafiği oluşturabiliriz. Her iki yüzdelik dilim kümesi de aynı dağılımdan geliyorsa, çizimdeki noktalar kabaca düz bir çapraz çizgi oluşturmalıdır.
Nicelikler, bir veri kümesindeki, altında verinin belirli bir kısmının yer aldığı noktaları temsil eder. Örneğin, 0,9 kantil değeri, verilerin %90’ının altına düştüğü noktayı temsil eder. 0,5’lik dilim, verinin %50’sinin altında olduğu noktayı temsil eder ve bu böyle devam eder.
QQ grafikleri, veri örneklerinizin yüzdelik dilimlerini tanımlar ve bunları teorik bir dağılımın yüzdelik dilimleriyle karşılaştırır. Çoğu durumda normal dağılım kullanılır, ancak aslında herhangi bir teorik dağılım için bir QQ grafiği oluşturulabilir.
Veri noktaları bir QQ grafiğinde düz bir çapraz çizgi boyunca uzanıyorsa, o zaman veri seti muhtemelen normal bir dağılım izliyor demektir.
R’de QQ grafiği nasıl oluşturulur
Yerleşik qqnorm() işlevini kullanarak bir veri kümesinin normal dağılıma uyup uymadığını kontrol etmek için kolaylıkla bir QQ grafiği oluşturabiliriz.
Örneğin, aşağıdaki kod, normal bir dağılım izleyen 100 rastgele değerden oluşan bir vektör oluşturur ve bu veri kümesinin gerçekten normal bir dağılım izlediğini doğrulamak için bir QQ grafiği oluşturur:
#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)
Verilerin düz bir çizgiyi takip edip etmediğini görmeyi daha da kolaylaştırmak için qqline() işlevini kullanabiliriz:
#create QQ plot qqnorm(data) #add straight diagonal line to plot qqline(data)
Kuyrukların yakınındaki veri noktalarının tam olarak düz bir çizgiyi takip etmediğini görebiliriz, ancak çoğunlukla bu örnek veriler normal dağılmış gibi görünmektedir (R’den verileri normal bir dağılımdan üretmesini istediğimizden beri olması gerektiği gibi) ). ).
Bunun yerine, bir gama dağılımını takip eden 100 rastgele değerden oluşan bir vektör üreten ve bu verilerin normal bir dağılım takip edip etmediğini kontrol etmek için bir QQ grafiği oluşturan aşağıdaki kodu göz önünde bulundurun:
#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)
Bu QQ grafiğinde düz çizgiden net bir sapma görebiliyoruz, bu da bu veri setinin muhtemelen normal bir dağılım izlemediğini gösteriyor.
5 serbestlik derecesine sahip bir Ki-kare dağılımını takip eden 100 rastgele değerden oluşan bir vektör üreten ve bu verilerin normal bir dağılım takip edip etmediğini kontrol etmek için bir QQ grafiği oluşturan başka bir kod parçasını düşünün:
#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)
Bu veri setinin özellikle kuyruklara yakın yerlerde normal bir dağılım izlemediğini bir kez daha görebiliyoruz.
R’de QQ grafiğinin estetiğini değiştirme
Başlık, eksen etiketleri, veri noktası renkleri, çizgi rengi ve çizgi genişliği dahil olmak üzere R’deki QQ grafiğinin bazı estetiğini değiştirebiliriz.
Aşağıdaki kod, çizim noktalarının başlıklarını, eksen etiketlerini ve rengini değiştirir:
#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')
Daha sonra aşağıdaki kod, çizime kırmızı renkli, çizgi genişliği 2 (lwd = 2, varsayılan 1) ve kesikli çizgi (lty = 2, varsayılan 1) olan düz bir çapraz çizgi ekler:
qqline(data, col = 'red', lwd = 2, lty = 2)
Teknik notlar
QQ grafiğinin, bir veri kümesinin teorik bir dağılıma uyup uymadığını görsel olarak kontrol etmenin bir yolu olduğunu unutmayın. Bir veri kümesinin belirli bir dağılımı takip edip etmediğini resmi olarak test etmek için aşağıdaki testler yapılabilir (veri kümenizi normal bir dağılımla karşılaştırdığınızı varsayarak):
Anderson-Darling testi
Shapiro-Wilk testi
Kolmogorov-Smirnov testi