回帰分析
重回帰(2)
仮説検定
• 単一の制約
– t検定
– メニューから行う方法
• 複数の制約
– F検定
– メニューから行う方法
– F統計量を実際に求める
• F検定の応用
– 構造変化,最適なモデルの決定
回帰分析の前提
rank
full
:
)
,
0
(
~
linearity
2
X
I
N
u
u
X
y
最小二乗推定量
)
1
(
)
1
(
'
0
'
ˆ
'
)
'
(
ˆ
'
)
'
(
'
)
'
(
2 1 1 1
k
n
RSS
k
n
e
e
s
e
X
My
y
P
I
y
y
e
Py
y
X
X
X
X
Xb
y
u
X
X
X
y
X
X
X
b
RSS: Residual Sum of Squares Sum of Squared Residuals
最小二乗推定量(2)
)
1
(
~
)
1
(
'
)
1
,
0
(
~
)
'
(
,
~
2 2 2 2 2 1 2
k
n
X
s
k
n
RSS
e
e
N
a
b
X
X
N
b
jj j j
実際の検定では
2(誤差項の分散)は未知なの
で,s
2=RSS/[n-(k+1)]で置き換えて検定
個々の係数に関する検定
jj j j j ja
s
b
e
s
k
n
t
b
e
s
b
)
.(
.
)
1
(
~
)
.(
.
0
0 0:
j jH
s: 回帰の標準誤差(standard error of regression)
s
2の平方根, s
2=RSS/[n-(k+1)] 誤差項の分散
2についての最小二乗推定量
-3 -2 -1 0 1 2 3
両側検定
臨界値の両側に落ちる
-3 -2 -1 0 1 2 3
片側検定
臨界値の片側に落ちる
H0: ある変数の係数が0 係数の標準誤差 t 値 = b / b(s.e.) 係数の真の値が0 だとして計算 p値 (両側確率) 通常は,0.05より小さ ければ0と有意に異な ると判断 EDUCの t 値は12.56 t分布に従う確率変数 が(絶対値で) 12.56 より大きな値をとる確 率
仮説検定 単一の制約
• t分布
• 特に,「係数が0に等しい」という仮説は,回帰分析
のoutputをみるだけでよい
• p値 output の Prob. 欄
• wage1.rawの回帰分析の結果では,educのp値は
0.0000。educの係数の真の値が0だとすると,
(絶対値で)0.09209以上の推定値を得る確率が
0.0000だということ(両側確率)
• 一般的には,p値が0.05未満なら,係数=0の仮説は
棄却される
• 注意: Eviews のp値は両側確率
educ の係数の信頼区間を求める
educの係数は自由度522の t 分布をする
df = オブザベーション数(526) – 説明変数の個数(4) = 522• 片側5%の臨界値t分布の95%点
• 両側5%の臨界値t分布の97.5%点
– 例えば,両側5%の場合,臨界値を t0.975 とすれば,bjの 信頼区間は次の通りになる)
.(
.
)
.(
.
0 0.975 975 . 0 0 j j j j j
t
s
e
b
b
t
s
e
b
(
1
)
~
)
.(
.
0
k
n
t
b
e
s
b
j j j
educの係数の信頼区間を求める(2)
Eviewsの関数を用いて行うには, @qtdist(p, df) 累積分布がpになるt値を返す(自由度df) @coefs(i) i番目の係数(定数項は1番目とカウント) @stderrs(i) i番目の係数の標準誤差 を用い,コマンド行で次のようにタイプする( j0 =b jとした場合)。 scalar tc = @qtdist(0.975, 522)scalar b_low=@coefs(i) –tc * @stderrs(i) scalar b_up= @coefs(i) + tc * @stderrs(i)
i : 実際の数字(2番目の変数の係数なら2を入れる) 計算すると,b_low = 0.077629, b_up= 0.106429
任意のj0 については,上の式の@coef(i)に想定した値を代入
回帰分析の結果のメニューから
ViewCoefficient Diagnostics Confidence Intervals
をたどっても信頼区間を求められる。 Excel を用いることもできる
問題
• Wage1.rawのデータを用いた先ほどのOLSで,次
の仮説をそれぞれ検定せよ。
• EDUCの係数が0.06に等しい
• EXPERの係数が0.005に等しい
• TENUREの係数が0.02に等しい
– それぞれの場合のt値を求める • @coefs, @stderrsを用いる • この場合のt分布の自由度は?– OLSを行った後,menuから View/Coefficient Diagnostics / Wald Test Coefficient Restrictions とたどる
複数の制約
(
1
)
~
(
,
(
1
))
k
n
r
F
k
n
URSS
r
URSS
RRSS
• RRSS (Restricted Residual Sum of
Squares: 制約付きの残差平方和)
• URSS (Unrestricted Residual Sum of
Squares: 制約無しの残差平方和)
• r : 制約の数
0 1 2 3 4 5
F Distribution: Numerator df = 5, Denominator df = 100
f
臨界値よりも大きな値をとる場合に 仮説H0を棄却
複数の
jに関する制約(単一の制約)
• 単一の制約の問題に帰着できる場合がある
• 例) Kane and Rouse(1995)
– 短大と4年生大学: 賃金差はあるか
– 回帰式
ln(wage)=+
1*jc +
2*univ+
3*exper + u
• jc 短大の教育年数• univ 4年生大学の教育年数
• exper 卒業後の年数(労働市場にでてからの年数)
複数の
jに関する制約(単一の制約) 続き
1. ln(wage) = +
1*jc +
2*univ +
3*exper + u
H
0:
1=
21.で2= 1+d とおくと
ln(wage) = +
1*jc + (
1+d)*univ +
3*exper + u
これより
2. ln(wage) = +
1*(jc + univ) + d*univ +
3*exper + u
H
0: d=0
説明変数の全て(educ, exper, tenure)の係数が0 かどうか
ここをクリックし,coefficient diagnostics Wald tests - coefficient restrictions .. をたどると,係数の制約の テストの画面が表れる。 複数の制約も可能。 個々の係数=0の検 定はここをみる この値からF検定を行うこともできる。 E-views で は直前の回帰の残差平方和は@ssrに保存される Eviews 係数の制約
EviewsでのF検定 View/ Coefficient diagnostics/ Wald test – Coefficient Restrictions を選択 c(3)=0, c(4)=0 で制約式を指定(複数の制約式 は , で区切る) c(3)は3番目の説明変数の係数(定数項を1番目 とカウント) H0: exper,tenureの係数がとも に0 検定のための統計量は,自由 度が (2,522) のF統計量 5%水準の臨界値は3.013 H0は棄却される 自由度 (2,252)のF 分布に従う 確率変数が 49.685よりも 大きな値をと る確率は 0.0000
F検定
(コマンドを打ち込む方法)
• 制約無しの回帰分析URSS を求める 制約なしの回帰後,コマンドウィンドウで scalar urss= @ssr • 制約付の回帰分析RRSS を求める 制 約つきの回帰後,コマンドウィンドウで scalar rrss= @ssr • F統計量を計算 分子は (rrss-urss)/(制約の数),分母はurrs/(制約なしの回帰の自由 度) で計算した変数を作る(以下では,ffとした) コマンドウィンドウで次のようにタイプ scalar f1= (rrss – urss)/制約の数 scalar f2 =urss/(@regobs – 定数項を含んだ説明変数の個数) scalar ff =f1/f2 ff の累積分布を求める(@cfdist(ff,df1,df2)を用いる Excelでも同様の計算ができるRでの係数制約の検定
回帰の結果をwage1.lmに保存した場合 • 単一の仮説 – H0: j=0 summary(wage1.lm)でt値,p値をみる • 係数の信頼区間 – confint(wage1.lm) • 回帰係数の値はcoef(wage1.lm)で取り出せるが,標準誤差, t値は次のようにするcoef(summary(wage1.lm) ) で係数,s.e. t-value, p-valueの行列が出 力される
coef(summary(wage1.lm) )[ ,n]
で係数,s.e. t値,p値が取り出せる([ , n] は行列のn列の成分を表す) n=1: 係数, n=2: s.e. , n=3: t値, n=4: p値
Rでの係数制約の検定(2)
残差平方和はdeviance(object)で取り出す
( 1)
~ ( , ( 1)) k n r F k n URSS r URSS RRSS> wage1.lm <- lm(lwage ~ educ + exper + tenure) # 制約なし回帰
> wage2.lm <- lm(lwage~ educ) # 制約付き回帰
> rss1 <- deviance(wage1.lm) # 制約なし残差平方和 urss > rss2 <- deviance(wage2.lm) # 制約つき残差平方和 rrss > ff <- rss2 - rss1 # rrss - urss > ff1 <- ff/2 # 制約は2つ(r=2) > ff2 <- rss1/(522) # 分母 fff <- ff1/ff2 # F統計量 この場合,fff=49.685です > 1 - pf(fff,2,522) [1] 0 # 自由度(2,522)のF分布に従う確率変数がfffより大きくな る確率 > qf(.95, 2, 522) [1] 3.012991 # 自由度(2,522)のF分布に従う確率変数の95%点
Rでの係数制約の検定(3)
• linearHypothesis( ) 関数を用いる
linearHypothesis(object, 制約式の行列,右辺)
• car というpackageを読み込む必要
– Rstudio の右下のwindowから読み込む
• lwage~educ + exper + tenure でexper,
tenureの係数がともにゼロ 行列で表現
0 0 1 0
0 0 0 1
𝛼
𝛽
1𝛽
2𝛽
3=
0
0
> lhs <- rbind(c(0,0,1,0),c(0,0,0,1)) > rhs <- c(0,0)
> linearHypothesis(wage1.lm, lhs, rhs )
Linear hypothesis test Hypothesis:
exper = 0 tenure = 0
Model 1: restricted model
Model 2: lwage ~ educ + exper + tenure
Res.Df RSS Df Sum of Sq F Pr(>F) 1 524 120.77 2 522 101.46 2 19.314 49.685 < 2.2e-16 *** ---Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ car packageを読み込んで上 のコマンドを実行 上の式のlhs は次の式の右 辺の行列を代入したもの 0 0 1 0 0 0 0 1 𝛼 𝛽1 𝛽2 𝛽3 = 0 0 制約なし,制約付き の残差平方和 F統計量 c( ) は連結関数(concatenate) でベクトルを作る rbind( ) は rowbind でベクトル を行方向に加える関数 cbind( ) clomnbindは列方向 に加える関数 rhs: 省略すれば0 のdefaultは0
example : linearHypothesis(model, lhs, rhs)
変数の名前を用いて書くこともできる(rhsのdefaultは0) 賃金方程式(wage1.lm) H0: exper=0,tenure=0の検定 • linearHypothesis(wage1.lm, c(“exper”,”tenure”) ) あるいは• lhs=c(“exper”, “tenure”) ; linearHypothesis(wage1.lm,lhs) H0: exper-tenure=0 の場合
• linearHypothesis(wage1.lm, "exper - tenure”) • linearHypothesis(wage1.lm,“exper - tenure=0”) 具体例はhelpを参照
Rでの係数制約の検定(4)
• waldtest( ) を使う(パッケージlmtestが必要) 制約なしモデル wage1.lm 制約付きモデル wage2.lm だとして(例えば,wage2.lmではexperとtenureの係数 が共に0という制約を課したモデル) waldtest(wage1.lm, wage2.lm) でF検定が行われる • 個々の係数が0の検定は coeftest( )でも出力される。 – パッケージlmtest必要 – summary( )と同じ情報問題1
• wage1.raw
被説明変数 ln(wage)
説明変数 educ, exper, tenure, female
• 次の仮説を検定せよ
1. H0 : 全ての説明変数の係数が0に等しい
2. H0 : 女性と男性の賃金格差は無い(定数項ダミー
だけでよい)
3. H0 : exper と tenure の係数が共に0である
2.と3.については,制約なしの残差平方和と制約付の
残差平方和の値を求める方法でも計算せよ。
問題2
• 問題1と同じデータで次の仮説を検討せよ。
– 説明変数にfemale ダミーと学歴(educ),勤続年数 (tenure)の交差項を加える。• 女性と男性の賃金格差(定数項)は無いし,学歴の
効果の違いも無いし,勤続年数の効果の違いも無
い。
問題 3
• MLB1.RAW
• 次の回帰式を推定
– 被説明変数:log(salary)
– 説明変数: years, gamesyr, bavg, hrunsyr, rbisyr,
runsyr, fldperc, allstar, firstbase, scndbase, thrdbase, shrtstop, catcher,(baseはoutfield)
– 次の仮説を検討せよ。
• 他の要因を一定にした場合,捕手と外野手の年俸は同じ
• 他の要因を一定にした場合,守備位置の違いは年俸に影響を与 えない
Chowテスト
• 構造変化の検定
– 例)消費関数,投資関数 の推計 – T個の時系列データ – 時点s以降で構造変が 起きたかどうかの検定• 全体を二つの期間に分
割
– 時点ダミーを導入して g=0の検定を行う T s t s t D u x D x y t t t t t t ,..., 1 1 ,.., 1 0g
) 2 , ( ~ 2 / / ) ( k T k F k T URRS k URRS RRSS kは説明変数の個数(定数項も 含めて)最適なモデルの決定
• F検定
– nested modelの場合
• adjusted R2を用いる方法
• AIC基準 (Akaike Information Criteria) AIC=-2ln(L)+2k ln(L): 対数尤度, k: パラメータの数(説明変数の数) AICを最小にするようなモデルを選ぶ たいていの統計パッケージでは自動的に出力される RではAIC(object名)で取り出せる • 変数増減法(stepwise regression)
• RESET (regression specification error test)
– 回帰式 非線形性のテスト
• J テスト
RESET
) 2 ( ˆ ˆ 3 2 2 1 1 1 0 x x y y u y
k k g
g
)
1
(
1 1 0x
x
u
y
k k
上のモデルを推計し,yの予測値を得る。 yの予測値の平方,3乗の項,...を説明変数に加えた次のモ デルを推計する H0: (1)の定式化が正しい g1=g2=0 EviewsでのRESET (1)式をOLSで推計View/ Stability Diagnostics/ Ramsey RESET Test
Number of Fitted Terms で(2)式にFitted valueをいくつ入れるかを設定 1 2次の項まで, 2 3次の項まで
RでのRESET
Non nested model
• MLB1.rawのMLB選手の年棒の回帰分析では, hrunsyr(ホームラン数)とrbisyr(打点)はともに,有意ではな かった(二つの変数の単相関は0.89と非常に高いため)。 • そこで,次の二つのモデルのどちらが適切かを選択する必 要に迫られたとする。u
rbisyr
bavg
gamesyr
years
salary
u
hrunsyr
bavg
gamesyr
years
salary
4 3 2 1 0 2 4 3 2 1 0 1)
log(
:
H
)
log(
:
H
J test
• どちらか一方のモデルが正しいモデルであれば,他方のモデ ルで得られた予測値は説明力を持たない • (例)H2で推定したモデルの予測値(y2hat)を説明変数として H1に代入して,5=0の検定を行うu
hat
y
hrunsyr
bavg
gamesyr
years
salary
2
)
log(
5 4 3 2 1 0
• 同様に,H1で推定したモデルの予測値(y1hat)を説明変数とし てH2に代入して,5=0の検定を行う • 両方のテストとも棄却される場合がある別のモデルEviewsでの統計関数
• @c--:cumulative distribution function(CDF) • @d--:density function
• @q--:quantile( inverse CDF) • @r--:random number generator ---• @cfdist(x,df1,df2),@qfdist(x,df1,df2) F分布 • @cnorm(x), @qnorm(p) 正規分布 • @ctdist(x,df), @qtdist(p,df) t分布 • Eviewsで,自由度(2,522)のF分布に従う変数の95%点を求 めるためには scalar ff= @qfdist(0.95, 2, 522) をコマンド行に打ち込む
Eviewsでの回帰分析
• @coefs(i) : i番目の係数
• @stderrs(i): 標準誤差
• @tstats(i): t値
• @coefcov(I,j): i番目のj番目の係数の共分散
• @f : F統計量
• @se: standard error of the regression
• @ssr: 残差平方和
Rでの回帰分析の統計量
回帰分析の結果がobjectに保存されている場合 summary(object) 回帰分析の結果 coef(object) 係数の推定値 resid(object) 残差 fitted(object) 回帰モデルの推定値 deviance(object) 残差平方和 plot(object) 残差のチェックのためのグラフ confint(object) 係数の信頼区間 ---coef(summary(object)) 係数,s.e. t値,p値の行列 coef(summary(object))[,n] n=1:係数,n=2:標準誤差,n=3:t値,n=4:p値 回帰の標準誤差,F値,自由度修正済み決定係数,自由度 summary(object)$sigma summary(object)$fstatistic summary(object)$adj.r.squared summary(object)$dfRの統計関数
Distribution R name additional arguments beta beta shape1, shape2, ncp binomial binom size, prob
chi-squared chisq df, ncp exponential exp rate
F f df1, df2, ncp
log-normal lnorm meanlog, sdlog logistic logis location, scale normal norm mean, sd
Student’s t t df, ncp uniform unif min, max