問題1:回帰分析(この問題はRの行列演算を使わず,手計算を用いること)

ベクトル\(\mathbf{y}\)と行列\(\mathbf{X}\)が以下のように与えられているとする.

\[ \begin{equation} \mathbf{y}=\begin{bmatrix} 2 \\ 1 \\ 0 \\ 2 \\ \end{bmatrix}, \mathbf{X}=\begin{bmatrix} 1 & 1 & 1 \\ 1 & 1 & 0 \\ 1 & 0 & 1 \\ 1 & 0 & 1 \\ \end{bmatrix} \end{equation} \]

  1. \(\mathbf{X}'\mathbf{X}\)\(\mathbf{X}'\mathbf{y}\)を求めなさい.

【以下,解答欄】

【解答欄終わり】

  1. 以下の文言の正誤を述べ,理由を説明しなさい.

\(\mathbf{y}\)\(\mathbf{X}\)を回帰した時の係数ベクトルは\(\hat{\boldsymbol{\beta}}'=\left(0,1,1\right)\)である.

ヒント:正規方程式もしくは直交条件の成立を示せば良い.

【以下,解答欄】

【解答欄終わり】

問題2:確率ベクトル

確率ベクトル\(\mathbf{y}'=\left(Y_{1},Y_{2},Y_{3}\right)\)は3次元正規分布に従い,期待値と分散は以下のように与えられる.

\[ \begin{equation} E\left(\mathbf{y}\right)=\boldsymbol{\mu}=\begin{bmatrix} 0 \\ 0 \\ 1 \\ \end{bmatrix}, Var\left(\mathbf{y}\right)=\begin{bmatrix} 1 & 0 & 0\\ 0 & 1 & 0\\ 0 & 0 & 4\\ \end{bmatrix} \end{equation} \]

また,\(\mathbf{y}\)に関する線形結合のベクトル\(\mathbf{z}\)を以下のように与える.

\[ \begin{equation} \mathbf{z}=\begin{bmatrix} 1 \\ 1 \\ \end{bmatrix}+\begin{bmatrix} 1 & 0 & 1 \\ 1 & 1 & 1 \\ \end{bmatrix} \mathbf{y} \end{equation} \]

  1. \(\mathbf{z}\)の期待値と分散を求めなさい.

【以下,解答欄】

【解答欄終わり】

  1. \(\mathbf{y}'_{1}=\left(Y_{1},Y_{2}\right),W_{1}=\mathbf{y}'_{1}\mathbf{y}_{1}\)とする.\(W_{1}\)が従う分布を述べ,理由を説明しなさい.また,\(W_{1}\)の期待値及び分散の値も述べなさい.

ヒント:\(Y_{1},Y_{2}\)はそれぞれ独立な標準正規分布に従う変数である.

【以下,解答欄】

【解答欄終わり】

問題3:FWL定理

「RでOLS」(r_ols.Rmd)内で,bostonデータを用いて行ったものと同じ回帰モデル,すなわち,\(i\)を統計調査区に関する添字,\(\beta_{k}\)\(k\)番目の変数に対応する回帰係数として,

\[ \begin{equation} MEDV_{i}= \beta_{0} + \beta_{1} CRIM_{i} + \beta_{2} RM_{i} + \beta_{3} INDUS_{i} + \beta_{4} NOX_{i} + \beta_{5} AGE_{i} + \beta_{6} DIS_{i} + \\ \beta_{7} RAD_{i} + \beta_{8} PTRATIO_{i} + \beta_{9} B_{i} + \beta_{10} LSTAT_{i} + \beta_{11} TAX_{i} + \varepsilon_{i}, \\ i=1,...,506, \varepsilon_{i} \sim N(0,\sigma^2), \end{equation} \]

と定式化された回帰モデルを考える.FWL定理を用いて,変数\(INDUS_{i},AGE_{i}\)に対応する回帰係数ベクトルの部分ベクトル\(\boldsymbol{\beta}_p'=\left[\beta_3,\beta_5\right]\)の最小二乗推定量\(\hat{\boldsymbol{\beta}}_p'=\left[\hat{\beta_3},\hat{\beta_5}\right]\)を推定しなさい.

【分析のための準備】

#install.packages("spdep",repos="https://cran.ism.ac.jp/")
library(spdep)
data(boston)
dat <- boston.c

【分析のための準備終わり】

まず,データを被説明変数ベクトルy,変数\(INDUS_{i},AGE_{i}\)でなる説明変数行列X2,それ以外の変数でなる説明変数行列X1に分けて格納する.

y <- dat$MEDV
X2 <- cbind(dat$INDUS,dat$AGE)
X1 <- cbind(1,dat$CRIM,dat$RM,dat$NOX,dat$DIS,dat$RAD,dat$PTRATIO,dat$B,dat$LSTAT,dat$TAX)

FWL定理のステップ1を実行する.

# ey <- 

FWL定理のステップ2を実行する.

# E2 <- 

FWL定理のステップ3を実行し,実行結果を表示する.

# beta_p <- 
# beta_p

問題4:Whiteの修正

問題2と同じ定式化の回帰モデルに対して,「行列演算を用いて」標準誤差にWhiteの修正を行いなさい.

まず,通常の回帰分析を行い,回帰係数の推定値と残差を得る(「RでOLS」の内容と全く同じ).

datmat <- dat %>%
  #必要な変数を取り出し
  dplyr::select(MEDV,CRIM,RM,INDUS,NOX,AGE,DIS,RAD,PTRATIO,B,LSTAT,TAX) %>%
  #行列に変換
  as.matrix
#被説明変数ベクトル
y <- datmat[,1]
#説明変数行列
X <- datmat[,-1]
#定数項の説明変数を横結合
X <- cbind(1,X)
#Xの1番目の列名を変更
colnames(X)[1] <- "Intercept"
#OLS推定値
beta <- solve(t(X)%*%X)%*%t(X)%*%y
#残差ベクトル
e <- y-X%*%beta

残差二乗を対角成分に持つ対角行列sigma_white(講義スライド上では\(\Sigma_{White}\))を作成する.

#現状matrix型になっているeをvector型に変換(そうしないとdiag関数がうまく行かない)
e <- as.vector(e)
#eの二乗を対角要素に持つ対角行列を作成
sigma_white <- diag(x=e^2)

sigma_whiteを用いて,\(\hat{\boldsymbol{\beta}}\)の分散の推定値を計算する.

#分散の推定値を計算
# var_white <- 

var_whiteの対角成分の平方根を取ったものがWhite標準誤差.行列の対角成分をベクトルとして取り出すにはdiag関数,ベクトルの平方根を取るにはsqrtを用いる.

#標準誤差を計算
# sd_white <- 
#計算結果を表示
# sd_white

lm_robust関数を使った推定結果と一致するか確かめても良い.

#OLS推定
reg_robust <- estimatr::lm_robust(MEDV~CRIM+RM+INDUS+NOX+AGE+DIS+RAD+PTRATIO+B+LSTAT+TAX,
                                  data=dat,
                                  se_type="HC0")