単回帰モデルの場合¶
n個の観測値による単回帰モデルを想定する。
Yi=α+βXi+ui,i=1,2,…,n 推定量¶
{∑u^i=∑(Yi−α^−β^Xi)=0∑u^iXi=∑(Yi−α^−β^Xi)Xi=0⇒α^=Yˉ−β^Xˉ,β^=SXXSXY ここで、
SXX=∑(Xi−Xˉ)Xi,SXY=∑(Xi−Xˉ)Yi であるため、β^の式に代入すると
β^=SXXSXY=SXX∑(Xi−Xˉ)Yi=∑(SXXXi−Xˉ)Yi=∑wiYi,wi=SXXXi−Xˉ となり、OLS推定量β^はwiという重みによるYiの線形和の形になっている
推定量の誤差¶
β^=∑wiYi=∑wi(α+βXi+ui)=α=0∑wi+β=1∑wiXi+∑wiui=β+∑wiui と、β^は真値βの周りを誤差の加重和∑wiuiの分だけばらつく確率変数であり、一般にβ^=βであることがわかる。
誤差項uiの仮定により、推定誤差の期待値はゼロになる
E(i=1∑nwiui)=i=1∑nwi=0E(ui)=0 古典的線形回帰モデルの場合¶
古典的な線形回帰モデルの仮定のうち、
母分散が均一:Var(ui)=E(ui2)=σ2
というものが関わってくる
推定量の分散¶
Var(i=1∑nwiui)=i=1∑nwi2Var(ui)=σ2i=1∑nwi2=SXXσ2 最後の等式は∑i=1nwi2=SXX1を利用している
よって
E(β^)=β,Var(β^)=SXXσ2=∑(Xi−Xˉ)2σ2=(n−1)sX2σ2 sX2はXの標本分散。サンプル数nが大きいほどVar(β^)は減少する
条件付き分散¶
Var(β^∣X1,X2,…,Xn)=SXX21∑(Xi−Xˉ)2σ2=SXX2σ2=SXX∑(Xi−Xˉ)2=SXXσ2 不均一分散¶
Var(ui)=E(ui2)=σi2 条件付き分散¶
不均一分散のもとで、OLS推定量の条件付き分散は
Var(β^∣X1,X2,…,Xn)=SXX21∑(Xi−Xˉ)2σi2 と、均一分散の場合より複雑になる
漸近分散¶
OLSは漸近正規推定量になる
β^∼aN(β,Avar(β^)),Avar(β^)=nσX41E[(Xi−μX)2σi2] Avar(β^)は未知のσi2を含んでいるので、何らかの方法で推定する
Whiteの標準誤差¶
よく使われる推定量は、ホワイトの頑健な分散推定量
V=nsX41⋅n1∑(Xi−Xˉ)2u^i2=n2sX41∑(Xi−Xˉ)2u^i2 その平方根はホワイトの標準誤差として知られる
s.e. (β^)=V=nsX21∑(Xi−Xˉ)2u^i2 重回帰モデルの場合¶
n∈N個の観測値があるとし、目的変数Y∈Rn、説明変数X∈Rn×m、誤差項u∈Rnについて
Y=Xβ+u という線形モデルを考える
推定量の誤差¶
OLS推定量
β^=(XTX)−1XTY を真値+αの形式にすると、
β^=(XTX)−1XTY=(XTX)−1XT(Xβ+u)==I(XTX)−1XTXβ+(XTX)−1XTu=β+(XTX)−1XTu=β+(n1XTX)−1n1XTu と表すことができる。
推定量の一致性¶
線形回帰モデルの外生性の仮定E(Xiui)=0が満たされるなら、
n1XTu=n1i=1∑nXiui→pE(Xiui)=0 であるから、誤差の項(XTX)−1XTuは消失する
漸近正規性¶
OLS推定量
β^=β+(N1XTX)−1N1XTu を整理して以下の形にする
N(β^−β)=(N1XTX)−1N1XTu N1XTuはN1∑i=1NXiuiと書くことができる。OLSの仮定より
E(Xiui)Var(Xiui)=0=E(u2XiXiT) なので、中心極限定理により
N1XTu=N1i=1∑NXiui⟶dN(0,E(ui2XiXiT)) となる。
一致性のときに導出した
N1XTX⟶pE(XiXiT) を使うと、スルツキーの定理を用いて
N(β^−β)=(N1XTX)−1N1XTu⟶d(E(XiXiT))−1×N(0,E(ui2XiXiT))=N(0,(E(XiXiT))−1E(ui2XiXiT)(E(XiXiT))−1)=N(0,V) となる。
確率変数の行列YN,Y,XN,X∈RN×N、正則行列C∈RN×Nがあるとする。
N→∞のとき
XNdXYNdC とする。
このとき、以下の結果が成り立ち、これを スルツキーの定理 という
XN+YNdX+C
YNXNdCX
YN−1XNdC−1X
Vは以下のように一致推定できる
V^HC0=[N1i=1∑NXiXiT]−1N1i=1∑Nu^i2XiXiT[N1i=1∑NXiXiT]−1=(N1XTX)−1N1XTdiag[u^i2]X(N1XTX)−1 ただし、diag[u^i2]は対角要素にu^12,…,u^N2を並べた対角行列である。
これはHC0と呼ばれるタイプの誤差分散の推定量である
漸近分散の推定量¶
| {estimatr}パッケージでの呼び名 | 分散の推定量V[β] | notes |
|---|
"classical" | n−me⊤e(X⊤X)−1 | |
"HC0" | (X⊤X)−1X⊤diag[ei2]X(X⊤X)−1 | |
"HC1", "stata" | n−mn(X⊤X)−1X⊤diag[ei2]X(X⊤X)−1 | Eicker-Huber-Whiteの分散推定量などと呼ばれる |
"HC2" (default) | (X⊤X)−1X⊤diag[1−hiiei2]X(X⊤X)−1 | |
"HC3" | (X⊤X)−1X⊤diag[(1−hii)2ei2]X(X⊤X)−1 | |
出所:estimatrパッケージのドキュメント
import numpy as np
import matplotlib.pyplot as plt
n = 100
np.random.seed(0)
x1 = np.random.uniform(0, 5, size=(n, 1))
x0 = np.ones(shape=(n, 1))
X = np.append(x0, x1, axis=1)
beta = np.array([3, 5])
# 均一分散の場合
e = np.random.normal(loc=0, scale=1, size=n)
y = X @ beta + e
# plot
fig, ax = plt.subplots()
ax.scatter(x1, y)
beta_hat = np.linalg.inv(X.T @ X) @ X.T @ y
beta_hat
array([3.22215108, 4.987387 ])
array([[100. , 236.39691976],
[236.39691976, 766.62957534]])