Python'da çoklu doğrusallık nasıl test edilir


Regresyon analizinde, çoklu doğrusallık , iki veya daha fazla yordayıcı değişkenin regresyon modelinde benzersiz veya bağımsız bilgi sağlamayacak şekilde birbiriyle yüksek düzeyde korelasyona sahip olması durumunda ortaya çıkar.

Yordayıcı değişkenler arasındaki korelasyon derecesi yeterince yüksekse, bu durum regresyon modelinin yerleştirilmesinde ve yorumlanmasında sorunlara neden olabilir.

Bir regresyon modelinde çoklu doğrusallığı tespit etmenin en basit yolu, varyans enflasyon faktörü olarak bilinen ve genellikle VIF olarak kısaltılan bir ölçümü hesaplamaktır.

VIF, bir modeldeki yordayıcı değişkenler arasındaki ilişkinin gücünü ölçer. 1 ile pozitif sonsuz arasında bir değer alır.

VIF değerlerini yorumlamak için aşağıdaki temel kuralları kullanırız:

  • VIF = 1: Belirli bir yordayıcı değişken ile modeldeki diğer yordayıcı değişkenler arasında korelasyon yoktur.
  • VIF 1 ile 5 arasında: Belirli bir yordayıcı değişken ile modeldeki diğer yordayıcı değişkenler arasında orta düzeyde bir korelasyon vardır.
  • VIF > 5 : Belirli bir yordayıcı değişken ile modeldeki diğer yordayıcı değişkenler arasında güçlü bir korelasyon vardır.

Aşağıdaki örnek, modeldeki her tahmin değişkeni için VIF değerlerini hesaplayarak Python’daki bir regresyon modelinde çoklu doğrusallığın nasıl tespit edileceğini gösterir.

Örnek: Python’da çoklu bağlantı testi

Çeşitli basketbol oyuncuları hakkında bilgi içeren aşağıdaki pandalar DataFrame’e sahip olduğumuzu varsayalım:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' rating ': [90, 85, 82, 88, 94, 90, 76, 75, 87, 86],
                   ' points ': [25, 20, 14, 16, 27, 20, 12, 15, 14, 19],
                   ' assists ': [5, 7, 7, 8, 5, 7, 6, 9, 9, 5],
                   ' rebounds ': [11, 8, 10, 6, 6, 9, 6, 10, 10, 7]})

#view DataFrame
print (df)

	rating points assists rebounds
0 90 25 5 11
1 85 20 7 8
2 82 14 7 10
3 88 16 8 6
4 94 27 5 6
5 90 20 7 9
6 76 12 6 6
7 75 15 9 10
8 87 14 9 10
9 86 19 5 7

Yanıt değişkeni olarak puanlamayı ve tahmin değişkenleri olarak sayı , asist ve ribaundları kullanarak çoklu doğrusal regresyon modelini uydurmak istediğimizi varsayalım.

Modeldeki her tahmin değişkeninin VIF’sini hesaplamak için statsmodels kütüphanesindeki variance_inflation_factor() fonksiyonunu kullanabiliriz:

 from patsy import damatrices
from statsmodels. stats . outliers_influence import variance_inflation_factor

#find design matrix for regression model using 'rating' as response variable 
y ,

#create DataFrame to hold VIF values
vive_df = pd. DataFrame ()
vive_df[' variable '] = X.columns 

#calculate VIF for each predictor variable 
vive_df[' VIF '] = [variance_inflation_factor(X. values , i) for i in range(X. shape [1])]

#view VIF for each predictor variable 
print (viv_df)

	       Variable VIF
0 101.258171 Intercept
1 1.763977 points
2 1.959104 assists
3 1.175030 rebounds

Tahmin edici değişkenlerin her biri için VIF değerlerini görebiliriz:

  • puan: 1.76
  • asist: 1.96
  • ribaund: 1.18

Not: Bu değer alakalı olmadığından şablondaki “Kesişme” için VIF’yi göz ardı edin.

Modeldeki yordayıcı değişkenlerin VIF değerlerinin her biri 1’e yakın olduğundan çoklu doğrusallık modelde sorun teşkil etmemektedir.

Ek kaynaklar

Aşağıdaki eğitimlerde Python’da diğer genel görevlerin nasıl gerçekleştirileceği açıklanmaktadır:

Python’da basit doğrusal regresyon nasıl gerçekleştirilir
Python’da çoklu doğrusal regresyon nasıl gerçekleştirilir
Python’da Artık Arsa Nasıl Oluşturulur

Yorum ekle

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