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


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

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

残差 = 観測値 – 予測値

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

統計における残差の例

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

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

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

金:

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

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

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

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

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

 #create data
data <- data.frame(x=c(8, 12, 12, 13, 14, 16, 17, 22, 24, 26, 29, 30),
                   y=c(41, 42, 39, 37, 35, 39, 45, 46, 39, 49, 55, 57))

#viewdata
data

    xy
1 8 41
2 12 42
3 12 39
4 13 37
5 14 35
6 16 39
7 17 45
8 22 46
9 24 39
10 26 49
11 29 55
12 30 57

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

次に、 lm()関数を使用して、単純な線形回帰モデルを近似します。

 #fit model
model <- lm(y ~ x, data=data)

#view model summary
summary(model) 

Call:
lm(formula = y ~ x, data = data)

Residuals:
    Min 1Q Median 3Q Max 
-8.7578 -2.5161 0.0292 3.3457 5.3268 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) 29.6309 3.6189 8.188 9.6e-06 ***
x 0.7553 0.1821 4.148 0.00199 ** 
---
Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 4.442 on 10 degrees of freedom
Multiple R-squared: 0.6324, Adjusted R-squared: 0.5956 
F-statistic: 17.2 on 1 and 10 DF, p-value: 0.001988

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

次に、組み込み関数rstandard()を使用して、モデルの標準化残差を計算します。

 #calculate the standardized residuals
standard_res <- rstandard(model)

#view the standardized residuals
standard_res

          1 2 3 4 5 6 
 1.40517322 0.81017562 0.07491009 -0.59323342 -1.24820530 -0.64248883 
          7 8 9 10 11 12 
 0.59610905 -0.05876884 -2.11711982 -0.06655600 0.91057211 1.26973888

必要に応じて、標準化された残差を元のデータ フレームに追加できます。

 #column bind standardized residuals back to original data frame
final_data <- cbind(data, standard_res)

#view data frame
    xy standard_res
1 8 41 1.40517322
2 12 42 0.81017562
3 12 39 0.07491009
4 13 37 -0.59323342
5 14 35 -1.24820530
6 16 39 -0.64248883
7 17 45 0.59610905
8 22 46 -0.05876884
9 24 39 -2.11711982
10 26 49 -0.06655600
11 29 55 0.91057211
12 30 57 1.26973888

次に、標準化された残差に基づいて各観測値を最大から最小の順に並べ替えて、どの観測値が外れ値に最も近いかを把握できます。

 #sort standardized residuals descending
final_data[ order (-standard_res),]

    xy standard_res
1 8 41 1.40517322
12 30 57 1.26973888
11 29 55 0.91057211
2 12 42 0.81017562
7 17 45 0.59610905
3 12 39 0.07491009
8 22 46 -0.05876884
10 26 49 -0.06655600
4 13 37 -0.59323342
6 16 39 -0.64248883
5 14 35 -1.24820530
9 24 39 -2.11711982

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

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

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

 #plot predictor variable vs. standardized residuals
plot(final_data$x, standard_res, ylab=' Standardized Residuals ', xlab=' x ') 

#add horizontal line at 0
abline(0, 0)

追加リソース

残留物とは何ですか?
標準化残差とは何ですか?
重線形回帰の概要

コメントを追加する

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