単回帰分析と標準誤差

 単回帰分析における標準誤差について説明します。エクセルやRのlm関数で計算される標準誤差です。

要約

(1)問い

 「単回帰分析における標準誤差」を数式で表すと、どうなるでしょうか?

(2)結論

 単回帰分析の標本回帰係数の標準誤差(系列相関なし、均一分散)は

$$標準誤差SE=\sqrt {\frac{ \widehat{\sigma^2 } }{ \sum\limits_{i=1}^n (x_i-\overline{x})^2 } }$$

となります。

(3)着眼点「標準誤差」

 最小二乗推定量の標準誤差とは、「最小二乗推定量の母標準誤差」の推定値であることに注目します。

前提

(1)仮定する条件

 この記事では

  • 仮定1:データ(X,Y)は独立で同一の分布に従い、単回帰モデルに従う

$$単回帰モデル:Y_i=\beta_0 +\beta_1 X_i +誤差項U_i$$

$$i:データ番号(1〜n)、n:サンプル・サイズ$$

  • 仮定2:標本が無作為抽出
  • 仮定3:説明変数Xの分散が0でない

に加えて

$$仮定4:外生性:E(U_i|X_i)=0$$

$$仮定5:系列相関なし:誤差項同士の共分散=0$$

$$Cov(U_1U_2)=0$$

$$Cov(U_1U_3)=0$$

$$\cdots$$

$$Cov(U_{n-1}U_n)=0$$

を仮定します。

(2)重要な仮定する条件

 この記事では、誤差項の均一分散を仮定します

$$均一分散:Var(U_i^2)=\sigma^2$$

 したがって、分散はデータ番号iによって変わらないので、誤差項の分散は

$$Var(U_1)=\sigma^2$$

$$Var(U_2)=\sigma^2$$

$$\cdots$$

$$Var(U_n)=\sigma^2$$

のように表します。誤差項が均一分散している例には、下が挙げられます。

(3)事実

最小二乗推定量には分散がある

 標本抽出できたデータによって、様々な推定値が計算されます。したがって、推定量は確率変数で、分散(Variance、 Var)が存在します。

 例えば、下図はパラメーターは1で生成した標本2つです。それぞれの推定値は0.898や1.130と、ばらつきがあります。

 標本を1000個生成して、それぞれで推定値を計算すると、次のような分布になりました。最小二乗推定量には分散があるのです。

最小二乗推定量の母分散

 仮定1から仮定4が成り立っており、説明変数Xが確定しているとします。このとき、最小二乗推定量の母分散は

$$標本回帰係数の母分散Var(\widehat{\beta_1})$$

$$= \frac{ \sum\limits_{i=1}^n (x_i-\overline{x})^2 Var(U_i) }{ \left(\sum\limits_{i=1}^n (x_i-\overline{x})^2 \right) ^2} +2 \frac{ \sum\limits_{i=1}^n\sum\limits_{j=1}^n (x_i-\overline{x})(x_j-\overline{x})Cov(U_i,U_j) }{ \left(\sum\limits_{i=1}^n (x_i-\overline{x})^2 \right) ^2 }$$

$$ただし i≠j$$

です。詳しくは別記事「【発展】単回帰分析と標本回帰係数の母分散」をご覧ください。

誤差項は観測できない

 母回帰係数βに加えて、誤差項Uは観測できません。観測できるのは説明変数X、目的変数Yだけです。

 したがって

$$誤差項の母分散:Var(U_i)=\sigma^2$$

は観測できません。そこで、残差を用いて誤差項の母分散を推定します。

$$誤差項の標本分散:\widehat{Var(U_i)}=\widehat{\sigma^2}$$

 なお、残差から誤差項の母分散を推定する方法にはいくつかの種類があります。この記事では触れません。

(4)定義

 最小二乗推定量の標準誤差SEとは、最小二乗推定量の母標準偏差SDの推定値です。

$$標準誤差=推定量の母標準偏差の推定値\widehat{SD \left( \widehat{ \beta_1} \right)}$$

 未知の誤差項の分散を、残差を用いて推定して、計算します。

結果

(1)標本回帰係数の母分散

 標本回帰係数の母分散は

$$標本回帰係数の母分散Var(\widehat{\beta_1})$$

$$= \frac{ \sum\limits_{i=1}^n (x_i-\overline{x})^2 Var(U_i) }{ \left(\sum\limits_{i=1}^n (x_i-\overline{x})^2 \right) ^2} +2 \frac{ \sum\limits_{i=1}^n\sum\limits_{j=1}^n (x_i-\overline{x})(x_j-\overline{x})Cov(U_i,U_j) }{ \left(\sum\limits_{i=1}^n (x_i-\overline{x})^2 \right) ^2 }$$

です。「均一分散」「系列相関なし」を導入して、Σの内部を[ ]で囲むと

$$= \frac{ \sum\limits_{i=1}^n \left[(x_i-\overline{x})^2 \sigma^2 \right] }{ \left(\sum\limits_{i=1}^n (x_i-\overline{x})^2 \right) ^2}+2 \frac{ \sum\limits_{i=1}^n\sum\limits_{j=1}^n \left[(x_i-\overline{x})(x_j-\overline{x} )\times 0 \right]}{ \left(\sum\limits_{i=1}^n (x_i-\overline{x})^2 \right) ^2 }$$

になります。前半部分はσの2乗をΣ外に出せて、後半部分はゼロなので

$$= \frac{ \sigma^2 \left( \sum\limits_{i=1}^n (x_i-\overline{x})^2 \right) }{ \left(\sum\limits_{i=1}^n (x_i-\overline{x})^2 \right) ^2} $$

綺麗に約分できて

$$= \frac{ \sigma^2 }{ \sum\limits_{i=1}^n (x_i-\overline{x})^2 } $$

となります。

(2)標本回帰係数の母標準偏差

 標準偏差(Standard Deviation、SD)は分散をルート√したものなので

$$標準偏差SD \left(\widehat{\beta_1} \right)=\sqrt{Var \left(\widehat{\beta_1} \right)}$$

となります。したがって、

$$標本回帰係数の母標準偏差SD \left(\widehat{\beta_1} \right)= \sqrt {\frac{ \sigma^2 }{ \sum\limits_{i=1}^n (x_i-\overline{x})^2 } } $$

(3)均一分散の標準誤差

 しかし、誤差項Uは観測できず、誤差項の母分散は未知です。そこで、残差から誤差項uの標本分散を求めます。

$$誤差項u_iの標本分散=\widehat{\sigma^2}$$

 これを用いると、「標本回帰係数の母標準偏差」の推定値は

$$\widehat{SD \left( \widehat{ \beta_1} \right)} = \sqrt {\frac{ \widehat{\sigma^2 } }{ \sum\limits_{i=1}^n (x_i-\overline{x})^2 } } $$

です。これが均一分散の標準誤差です。

考察

(1)回帰係数の標準誤差

 今回の場合、標準回帰係数の標準誤差は

$$標準誤差SE_{均一分散}=\sqrt {\frac{ \widehat{\sigma^2 } }{ \sum\limits_{i=1}^n (x_i-\overline{x})^2 } }$$

です。

(2)均一分散の仮定

 しかし、均一分散は、厳しい仮定です。

$$均一分散:Var(U_i)=\sigma^2$$

 例えば、次のような不均一分散に対しても適用できるような標準誤差を使いたいです。

$$不均一分散:Var(U_i)=\sigma_i^2$$

 不均一分散の場合の標準誤差は「単回帰分析と「不均一分散に頑健な標準誤差」」を、両者の比較シミュレーションなら「回帰係数の標準誤差 / 均一分散vs不均一分散」をご覧ください。

(3)外的な意義

 エクセルやRのlm関数で計算できる通常の標準誤差とは、どんな概念で、何が仮定されており、どのように求めているのかがわかりました。

付録:Rコード

 シミュレーションは、R言語を用いて行いました。R言語については「しまうまのRでデータ分析入門」をご覧ください。

 標本を作成します。↓

trial_number <- 1000 #試行回数
sample_size <- 300 #サンプル・サイズ
beta_1 <- rep(NA, trial_number) #推定値

se_classical <-rep(NA, trial_number) #標準誤差
x <- rnorm(n=sample_size, mean =15, sd=3) #xの分布
u <- rep(NA, sample_size)

#{}を繰り返す。標本を試行回数作る。
for(j in 1:trial_number){ 
  
#{}を繰り返す。誤差項をサンプル・サイズ作る。冗長なコードだが、不均一分散に拡張できるようにしてある
  for(i in 1:sample_size){ 
    xx <- x[i]
    uu <- rnorm(n=1, mean =0, sd=2) #均一分散
    u[i] <- uu
  }
  
  y <- 2 + 1*x+ u
  answer <- lm(y~x)
  
  beta_1[j] <- summary(answer)$coef["x","Estimate"]
}

 回帰分析と推定量の標準偏差を計算します。なお、回帰分析は、最後に生成されたサンプルについて行います。↓

lm(y ~ x) #回帰分析
sd(beta_1) #推定量の標準偏差

 ggplot2用にデータフレームを作成します。↓

category <- 
  ifelse(x <= 10,"~10",
         ifelse(x <= 15 ,"10~15",
                ifelse(x <= 20, "15~20","20~")))

beta <- data.frame(beta_1)
data0 <- data.frame(x,y,u,category) 

 ggplot2で作図します。なお、散布図で作図されるのは、最後に生成されたサンプルです。↓

#パッケージの呼び出し。未インストールならインストール!
library(ggplot2) 

#散布図
ggplot(data0, aes(x = x,y=y)) + 
  geom_point(aes(colour=category) ) +
  scale_x_continuous(limits = c(0, 30),breaks = seq(0,30,5))+
  scale_y_continuous(limits = c(0, 30),breaks = seq(0,30,5))+
  stat_smooth(method = "lm", formula='y~x', se = FALSE)

#ヒストグラム
ggplot(beta, aes(x = beta_1)) +
  geom_histogram(colour="white", fill = "skyblue2",bins=50)+
  scale_x_continuous(limits = c(0.75, 1.25))

コメント欄 お気軽にコメントをお寄せください!

タイトルとURLをコピーしました