Python'da goldfeld-quandt testi nasıl yapılır?


Goldfeld-Quandt testi, bir regresyon modelinde heteroskedastisitenin mevcut olup olmadığını belirlemek için kullanılır.

Değişen varyans, bir regresyon modelinde bir yanıt değişkeninin farklı seviyelerindeki artıkların eşit olmayan dağılımını ifade eder.

Eğer heteroskedastisite mevcutsa, bu, doğrusal regresyonun, artıkların yanıt değişkeninin her seviyesinde eşit şekilde dağıldığı yönündeki temel varsayımlarından birini ihlal eder.

Bu eğitimde Python’da Goldfeld-Quandt testinin nasıl gerçekleştirileceğine ilişkin adım adım bir örnek sunulmaktadır.

1. Adım: Veri kümesini oluşturun

Bu örnek için bir sınıftaki 13 öğrencinin ders çalışma saatleri, girilen hazırlık sınavları ve final sınav sonuçlarına ilişkin bilgileri içeren aşağıdaki pandas DataFrame’i oluşturalım:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' hours ': [1, 2, 2, 4, 2, 1, 5, 4, 2, 4, 4, 3, 6],
                   ' exams ': [1, 3, 3, 5, 2, 2, 1, 1, 0, 3, 4, 3, 2],
                   ' score ': [76, 78, 85, 88, 72, 69, 94, 94, 88, 92, 90, 75, 96]})

#view DataFrame
print (df)

    hours exam score
0 1 1 76
1 2 3 78
2 2 3 85
3 4 5 88
4 2 2 72
5 1 2 69
6 5 1 94
7 4 1 94
8 2 0 88
9 4 3 92
10 4 4 90
11 3 3 75
12 6 2 96

Adım 2: Doğrusal regresyon modelini yerleştirin

Daha sonra, yordayıcı değişkenler olarak saatleri ve sınavları ve yanıt değişkeni olarak puanı kullanarak çoklu doğrusal regresyon modelini uygulayacağız:

 import statsmodels. api as sm

#define predictor and response variables
y = df[' score ']
x = df[[' hours ', ' exams ']]

#add constant to predictor variables
x = sm. add_constant (x)

#fit linear regression model
model = sm. OLS (y,x). fit ()

#view model summary
print ( model.summary ())

                            OLS Regression Results                            
==================================================== ============================
Dept. Variable: R-squared score: 0.718
Model: OLS Adj. R-squared: 0.661
Method: Least Squares F-statistic: 12.70
Date: Mon, 31 Oct 2022 Prob (F-statistic): 0.00180
Time: 09:22:56 Log-Likelihood: -38.618
No. Observations: 13 AIC: 83.24
Df Residuals: 10 BIC: 84.93
Model: 2                                         
Covariance Type: non-robust                                         
==================================================== ============================
                 coef std err t P>|t| [0.025 0.975]
-------------------------------------------------- ----------------------------
const 71.4048 4.001 17.847 0.000 62.490 80.319
hours 5.1275 1.018 5.038 0.001 2.860 7.395
exams -1.2121 1.147 -1.057 0.315 -3.768 1.344
==================================================== ============================
Omnibus: 1,103 Durbin-Watson: 1,248
Prob(Omnibus): 0.576 Jarque-Bera (JB): 0.803
Skew: -0.289 Prob(JB): 0.669
Kurtosis: 1.928 Cond. No. 11.7
==================================================== ============================

3. Adım: Goldfeld-Quandt testini gerçekleştirin

Daha sonra Goldfeld-Quandt testini gerçekleştirmek için statsmodels het_goldfeldquandt() fonksiyonunu kullanacağız.

Not : Goldfeld-Quandt testi, veri setinin merkezinde yer alan bir dizi gözlemi kaldırarak ve ardından artıkların dağılımının, merkezi gözlemlerin her iki tarafını bağlayan sonuçta ortaya çıkan iki veri setinden farklı olup olmadığını test ederek çalışır.

Genellikle toplam gözlemlerin yaklaşık %20’sini kaldırmayı seçeriz. Bu durumda, gözlemlerin %20’sini kaldırmak istediğimizi belirtmek için drop argümanını kullanabiliriz:

 #perform Goldfeld-Quandt test
sm. stats . diagnosis . het_goldfeldquandt (y, x, drop= 0.2 )

(1.7574505407790355, 0.38270288684680076, 'increasing')

Sonucun nasıl yorumlanacağı aşağıda açıklanmıştır:

  • Test istatistiği 1.757’dir .
  • Karşılık gelen p değeri 0,383’tür .

Goldfeld-Quandt testi aşağıdaki boş ve alternatif hipotezleri kullanır:

  • Boş (H 0 ) : Homoskedasticity mevcut.
  • Alternatif ( HA ): Değişken varyans mevcut.

P değeri 0,05’ten küçük olmadığından sıfır hipotezini reddedemiyoruz.

Regresyon modelinde heteroskedastisitenin bir sorun olduğunu iddia etmek için yeterli kanıtımız yok.

Sonra ne yapacağız

Goldfeld-Quandt testinin boş hipotezini reddetmeyi başaramazsanız, o zaman değişen varyans mevcut değildir ve orijinal regresyonun sonucunu yorumlamaya devam edebilirsiniz.

Ancak sıfır hipotezini reddederseniz bu, verilerde heteroskedastisitenin mevcut olduğu anlamına gelir. Bu durumda regresyon çıktı tablosunda görüntülenen standart hatalar güvenilir olmayabilir.

Bu sorunu çözmenin birkaç yaygın yolu vardır:

1. Yanıt değişkenini dönüştürün.

Yanıt değişkeni üzerinde bir dönüşüm gerçekleştirmeyi deneyebilirsiniz; örneğin yanıt değişkeninin günlüğünü, karekökünü veya küp kökünü alabilirsiniz. Genellikle bu, heteroskedastisitenin ortadan kalkmasına neden olabilir.

2. Ağırlıklı regresyon kullanın.

Ağırlıklı regresyon, her veri noktasına, uydurulan değerin varyansına dayalı olarak bir ağırlık atar. Temel olarak bu, daha yüksek varyansa sahip veri noktalarına düşük ağırlık vererek bunların kalan karelerini azaltır.

Uygun ağırlıklar kullanıldığında ağırlıklı regresyon, değişen varyans problemini ortadan kaldırabilir.

Ek kaynaklar

Aşağıdaki eğitimlerde Python’da diğer yaygın işlemlerin nasıl gerçekleştirileceği açıklanmaktadır:

Python’da OLS regresyonu nasıl gerçekleştirilir
Python’da Artık Arsa Nasıl Oluşturulur
Python’da White Testi Nasıl Gerçekleştirilir
Python’da Breusch-Pagan testi nasıl yapılır

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir