Photo by Jeremy Bezanger on Unsplash
の続きです。
前回は、回帰分析のモデル、level -level, log - lelvel, level - log, log -log の4つもモデルを比較してみました。
今回は、OLSで推計した回帰式の係数の標準誤差を確認します。
summary(回帰モデル)$coefficients
で係数の標準誤差を確認します。
(Intercept)がbeta_0で標準誤差は、1367です。
Edがbeta_1で標準誤差は、0.2961です。
この値がどこからきているのか、確認します。
こちらの書籍を参考にしてやってみます。
まずは、y = beta_0 + beta_1 * x + u の u の分散を推定することから始まります。
uの分散の推定値がσ_hatの2乗です。
sigma_hat^2 = 1/(n - 2)*sum(u_hat^2) = SSR/(n - 1)
SSRは Residual Sum of Squares です。
n はサンプルの数です。
resid()関数で回帰モデルからu_hatは求めることができて、nobs()でサンプルの数を求めることができます。
SSR = 1576532847
n = 47
です。
そうすると、sigma_hat^2 は
sigma_hat^2 = 35034063
です。
これの平方根がSER: Standard Error of the Regression というそうです。
SERとして値を保存しておきます。
それでは、beta_1の標準誤差から計算してみます。
beta_1の標準誤差 = se(beta_1) = SER/SQRT(SSTx) = SER/SQRT(sum*1
です。
SSTxというのがxとxの平均値の差を2乗して、それを合計して、それを平方根したものです。
SSTxを計算して値を保存しておきましょう。
今回はxがEdですね。
これで、se(beta_1)を求める材料がそろいました。
計算で求めたse(beta_1)とsummary()関数で出力される Std. Error の値がどちらも0.2961138 で一致しました! よかったです。
この調子で、se(beta_0)の計算しましょう。
var(beta_0) = (σ_hat^2/n*sum(x^2)) / sum*2/SSTx
です。
なので、
se(beta_0) = sqrt( (σ_hat^2/n*sum(x^2))/SSTx )
となります。計算してみます。
計算して求めたse(beta_0)は1367.017で、summary()関数で出力された Std. Error は1367.0168なので、一致しました。よかったです。
回帰式モデルの係数の標準誤差は、beta_0の標準誤差もbeta_1の標準誤差も分子にはSER(またはsigma_hat_square)が含まれ、分子にはSSTxが含まれますので、
SERが大きいほど標準誤差は大きくなり、SSTxが大きいほど標準誤差は小さくなります。
残差のバラツキが小さいほど、xのバラツキが大きいほど標準誤差は小さくなるということですね。
今回は以上です。
次回は、
です。
初めから読むには、
です。