Python'da öğrencileştirilmiş artıklar nasıl hesaplanır
Öğrenci kalıntısı, basitçe, tahmini standart sapmasına bölünen bir kalıntıdır.
Uygulamada genellikle, bir veri setindeki öğrenci kalıntısı mutlak değeri 3’ten büyük olan herhangi bir gözlemin aykırı değer olduğunu söyleriz.
Aşağıdaki sözdizimini kullanan statsmodels’in OLSResults.outlier_test() işlevini kullanarak Python’da bir regresyon modelinin öğrencileştirilmiş artıklarını hızlı bir şekilde elde edebiliriz:
OLSResults.outlier_test()
burada OLSResults, statsmodels ols() işlevi kullanılarak oluşturulan doğrusal modelin adıdır.
Örnek: Python’da öğrencileştirilmiş artıkların hesaplanması
Python’da aşağıdaki basit doğrusal regresyon modelini oluşturduğumuzu varsayalım:
#import necessary packages and functions import numpy as np import pandas as pd import statsmodels. api as sm from statsmodels. formula . api import ols #create dataset 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]}) #fit simple linear regression model model = ols('rating ~ points', data=df). fit ()
Veri kümesindeki her gözlem için öğrencileştirilmiş artıkları içeren bir DataFrame üretmek için outlier_test() işlevini kullanabiliriz:
#calculate studentized residuals stud_res = model. outlier_test () #display studentized residuals print(stud_res) student_resid unadj_p bonf(p) 0 -0.486471 0.641494 1.000000 1 -0.491937 0.637814 1.000000 2 0.172006 0.868300 1.000000 3 1.287711 0.238781 1.000000 4 0.106923 0.917850 1.000000 5 0.748842 0.478355 1.000000 6 -0.968124 0.365234 1.000000 7 -2.409911 0.046780 0.467801 8 1.688046 0.135258 1.000000 9 -0.014163 0.989095 1.000000
Bu DataFrame, veri kümesindeki her gözlem için aşağıdaki değerleri görüntüler:
- Öğrencileştirilmiş kalıntı
- Öğrencileştirilmiş kalıntının düzeltilmemiş p değeri
- Öğrenci kalıntısının Bonferroni düzeltmeli p değeri
Veri kümesindeki ilk gözlem için öğrencileştirilmiş kalıntının -0,486471 , ikinci gözlem için öğrencileştirilmiş kalıntının -0,491937 olduğunu vb. görebiliriz.
Ayrıca, öngörücü değişkenlerin değerlerinin karşılık gelen öğrencileştirilmiş artıklara karşı hızlı bir grafiğini de oluşturabiliriz:
import matplotlib. pyplot as plt #define predictor variable values and studentized residuals x = df[' points '] y = stud_res[' student_resid '] #create scatterplot of predictor variable vs. studentized residuals plt. scatter (x,y) plt. axhline (y=0, color=' black ', linestyle=' -- ') plt. xlabel (' Points ') plt. ylabel (' Studentized Residuals ')
Grafikten, hiçbir gözlemin mutlak değeri 3’ten büyük olan bir öğrenci kalıntısına sahip olmadığını görebiliriz, dolayısıyla veri setinde net aykırı değerler yoktur.
Ek kaynaklar
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