Python で標準化残差を計算する方法


残差は、回帰モデルにおける観測値と予測値の差です。

次のように計算されます。

残差 = 観測値 – 予測値

観測値をプロットし、近似された回帰直線を重ね合わせると、各観測値の残差は観測値と回帰直線の間の垂直距離になります。

統計における残差の例

回帰モデルで外れ値を特定するためによく使用される残差の 1 つのタイプは、標準化残差と呼ばれます。

次のように計算されます。

r i = e i / s(e i ) = e i / RSE√ 1-h ii

金:

  • e i : i 番目剰余
  • RSE:モデルの残差標準誤差
  • h ii : i 番目の観測の立ち上がり

実際には、絶対値が 3 より大きい標準化残差を外れ値と見なすことがよくあります。

このチュートリアルでは、Python で標準化残差を計算する方法のステップバイステップの例を提供します。

ステップ 1: データを入力する

まず、Python で操作するための小さなデータセットを作成します。

 import pandas as pd

#create dataset
df = pd. DataFrame ({' x ': [8, 12, 12, 13, 14, 16, 17, 22, 24, 26, 29, 30],
                   ' y ': [41, 42, 39, 37, 35, 39, 45, 46, 39, 49, 55, 57]})

ステップ 2: 回帰モデルを当てはめる

次に、 単純な線形回帰モデルを当てはめます。

 import statsmodels. api as sm

#define response variable
y = df[' y ']

#define explanatory variable
x = df[' x ']

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

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

ステップ 3: 標準化残差を計算する

次に、モデルの標準化残差を計算します。

 #create instance of influence
influence = model. get_influence ()

#obtain standardized residuals
standardized_residuals = influence. reside_studentized_internal

#display standardized residuals
print (standardized_residuals)

[ 1.40517322 0.81017562 0.07491009 -0.59323342 -1.2482053 -0.64248883
  0.59610905 -0.05876884 -2.11711982 -0.066556 0.91057211 1.26973888]

結果から、標準化された残差はいずれも絶対値 3 を超えていないことがわかります。したがって、どの観測値も外れ値であるように見えません。

ステップ 4: 標準化された残差を視覚化する

最後に、散布図を作成して、標準化残差に対する予測子変数の値を視覚化できます。

 import matplotlib. pyplot as plt

plt. scatter (df.x, standardized_residuals)
plt. xlabel (' x ')
plt. ylabel (' Standardized Residuals ')
plt. axhline (y=0, color=' black ', linestyle=' -- ', linewidth=1)
plt. show ()

追加リソース

残留物とは何ですか?
標準化残差とは何ですか?
R で標準化残差を計算する方法
Excel で標準化残差を計算する方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です