Python에서 스튜던트화 잔차를 계산하는 방법


학생 잔차는 단순히 잔차를 추정된 표준 편차로 나눈 것입니다.

실제로, 우리는 일반적으로 학생 잔차가 절대값 3보다 큰 데이터 세트의 모든 관측치를 이상치라고 말합니다.

다음 구문을 사용하는 statsmodels의 OLSResults.outlier_test() 함수를 사용하여 Python에서 회귀 모델의 스튜던트화 잔차를 빠르게 얻을 수 있습니다.

OLSResults.outlier_test()

여기서 OLSResults는 statsmodels ols() 함수를 사용하여 피팅한 선형 모델의 이름입니다.

예: Python에서 스튜던트화 잔차 계산

Python에서 다음과 같은 간단한 선형 회귀 모델을 구축한다고 가정합니다.

 #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 ()

outlier_test() 함수를 사용하여 데이터세트의 각 관측값에 대한 스튜던트화 잔차를 포함하는 DataFrame을 생성할 수 있습니다.

 #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

이 DataFrame은 데이터 세트의 각 관찰에 대해 다음 값을 표시합니다.

  • 학생 잔여물
  • 스튜던트화 잔차의 조정되지 않은 p-값
  • 학생 잔차의 Bonferroni 수정 p-값

데이터세트의 첫 번째 관측값에 대한 스튜던트화 잔차는 -0.486471 이고 두 번째 관측값에 대한 스튜던트화 잔차는 -0.491937 등임을 알 수 있습니다.

또한 해당 스튜던트화 잔차에 대한 예측 변수 값의 빠른 플롯을 만들 수 있습니다.

 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 ') 

Python의 학생화 잔여물

그래프에서 우리는 어떤 관측치에도 절대값이 3보다 큰 학생 잔차가 없다는 것을 알 수 있습니다. 따라서 데이터 세트에 명확한 이상값이 없습니다.

추가 리소스

Python에서 단순 선형 회귀를 수행하는 방법
Python에서 다중 선형 회귀를 수행하는 방법
Python에서 잔차 플롯을 만드는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다