R で残差のヒストグラムを作成する方法
線形回帰の主な仮定の1 つは、残差が正規分布するということです。
この仮定を視覚的に検証する 1 つの方法は、残差のヒストグラムを作成し、分布が正規分布を思わせる「釣鐘型」に従っているかどうかを観察することです。
このチュートリアルでは、R で回帰モデルの残差のヒストグラムを作成する方法を段階的に説明します。
ステップ 1: データを作成する
まず、操作する偽のデータを作成しましょう。
#make this example reproducible set.seed(0) #createdata x1 <- rnorm(n=100, 2, 1) x2 <- rnorm(100, 4, 3) y <- rnorm(100, 2, 3) data <- data.frame(x1, x2, y) #view first six rows of data head(data) x1 x2 y 1 3.262954 6.3455776 -1.1371530 2 1.673767 1.6696701 -0.6886338 3 3.329799 2.1520303 5.8081615 4 3.272429 4.1397409 3.7815228 5 2.414641 0.6088427 4.3269030 6 0.460050 5.7301563 6.6721111
ステップ 2: 回帰モデルを当てはめる
次に、重線形回帰モデルをデータに当てはめます。
#fit multiple linear regression model
model <- lm(y ~ x1 + x2, data=data)
ステップ 3: 残差のヒストグラムを作成する
最後に、 ggplot視覚化パッケージを使用して、モデル残差のヒストグラムを作成します。
#load ggplot2
library (ggplot2)
#create histogram of residuals
ggplot(data = data, aes (x = model$residuals)) +
geom_histogram(fill = ' steelblue ', color = ' black ') +
labs(title = ' Histogram of Residuals ', x = ' Residuals ', y = ' Frequency ')
bin引数を使用して、残差を配置するビンの数を指定することもできることに注意してください。
ボックスの数が少ないほど、ヒストグラム内のバーの幅が広くなります。たとえば、 20 個のビンを指定できます。
#create histogram of residuals
ggplot(data = data, aes (x = model$residuals)) +
geom_histogram(bins = 20 , fill = ' steelblue ', color = ' black ') +
labs(title = ' Histogram of Residuals ', x = ' Residuals ', y = ' Frequency ')
または、 10 個のビンを指定することもできます。
#create histogram of residuals
ggplot(data = data, aes (x = model$residuals)) +
geom_histogram(bins = 10 , fill = ' steelblue ', color = ' black ') +
labs(title = ' Histogram of Residuals ', x = ' Residuals ', y = ' Frequency ')
指定したボックスの数に関係なく、残差はほぼ正規分布していることがわかります。
正規性をテストするために、シャピロ-ウィルク、コルモゴロフ-スミルノフ、またはハルケ-ベラのような正式な統計検定を実行することもできます。
ただし、これらの検定はサンプル サイズが大きい場合に敏感であることに注意してください。つまり、サンプル サイズが大きい場合、残差は正規ではないと結論付けることがよくあります。
このため、多くの場合、残差のヒストグラムを作成することで正規性を評価する方が簡単です。