3

パネルデータのOLS回帰(R)に対する固定効果(個人固有のダミー変数)の共同有意性についてF検定を行おうとしていますが、これを達成する方法が多数ありません。固定効果。理想的には、plmパッケージ内の関数を使用しますが、このテストを具体的に行うものは見つかりませんでした。

xtreg, feこれは、コマンドを使用するときにStataが自動的に行うことです。Stataでは、結果は次のようになります。

------------------------------------------------------------------------------
F test that all u_i=0:  F(49, 498) =    12.00   Prob > F = 0.000

+ factor(us.state)繰り返しになりますが、私は、おそらくを使用lm()またはmodel = "fe"使用して指定された、多数のダミー変数のRでのStataの結果を再現しようとしていますplm()

再現可能な例を次に示します。

require(foreign)

voter <- read.dta("http://www.montana.edu/econ/cstoddard/562/panel_hw.dta")

reg1 <- lm(vaprate ~ gsp + midterm + regdead + WNCentral + South + Border
               + factor(state), data=voter)

plmこれは、パッケージを使用した次の「範囲内」回帰に相当します。

require(plm)

reg1.fe <- plm(vaprate ~ gsp + midterm + regdead + WNCentral + South + Border,
data=voter, index = c("state","year"), model = "within")

したがって、テストは、すべての状態ダミー変数が共同でゼロとは異なる(共同で有意)というテストになります。これは、制限のないモデル(上記のreg1およびreg1.fe)に対する線形制限です。このF検定については、次のドキュメントで詳しく説明されています(スライド5〜7を参照)。

http://jackman.stanford.edu/classes/350B/07/ftestforWeb.pdf

これは、帰無仮説を使用してF検定の「R」行列を作成するための私の微妙な試みの1つです。Rb= qここで、bは係数の行列(ベータハット)、qはゼロのベクトルです。

d1 = length(unique(voter$stcode))-1
d2 = length(reg1$coefficients)
R = cbind(matrix(0,d1,d2),diag(d1))

linearHypothesis(reg1,R,rhs=0)

これは機能しません!そして、すべての固定効果ダミー変数の共同有意性をテストするための合理化されたアプローチがあることを望んでいます。

4

2 に答える 2

1

まず、(1)再現可能な例を提供し、(2)「F検定」と言うときに参照する正確な検定を説明することで、質問を改善できることを提案したいと思います。Stataドキュメントへのリンクは多分?Fは分布であるため、「F検定」と呼ばれる膨大な数の検定が存在する可能性があります。

固定効果モデルが固定効果のないOLSよりもデータに大幅に適合しているかどうかを判断することに実質的な関心がある場合は、いつでも尤度比検定を使用できます。Rには多くの実装があると思いますが、lmtestパッケージによって提供されるものは非常に便利です。パッケージと一緒に配布されたデータセットを使用した例を次に示しplmます(インストールされているように見えるので、簡単に試すことができます)。

library(plm)
data(Produc)

library(lmtest)
mod <- lm(pcap ~ hwy + water, Produc)
mod.fe <- lm(pcap ~ hwy + water + factor(state), Produc)
lrtest(mod, mod.fe)  

および出力:

Likelihood ratio test

Model 1: pcap ~ hwy + water
Model 2: pcap ~ hwy + water + factor(state)
  #Df  LogLik Df  Chisq Pr(>Chisq)    
1   4 -8038.1                         
2  51 -6712.4 47 2651.4  < 2.2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

編集:オプション2

require(foreign)
voter <- read.dta("http://www.montana.edu/econ/cstoddard/562/panel_hw.dta")
reg1 <- lm(vaprate ~ gsp + midterm + regdead + WNCentral + South + Border
               + factor(state), data=voter)

library(plm)
reg1.fe <- plm(vaprate ~ gsp + midterm + regdead + WNCentral + South + Border,
data=voter, index = c("state","year"), model = "within")

reg1.pooling <- plm(vaprate ~ gsp + midterm + regdead + WNCentral + South + Border,
data=voter, index = c("state","year"), model = "pooling")

pFtest(reg1.fe, reg1.pooling)

出力:

    F test for individual effects

data:  vaprate ~ gsp + midterm + regdead + WNCentral + South + Border 
F = 13.0712, df1 = 45, df2 = 498, p-value < 2.2e-16
alternative hypothesis: significant effects 
于 2011-05-30T01:04:01.130 に答える
0

このテストはまったく役に立たないと思います。固定効果(私はそれを非プーリングモデルと呼びます)と呼ぶものを推定する代わりに、なぜ階層モデルではないのですか?階層モデル(または部分プーリングモデル)を使用すると、推定値を状態の一般的な平均に縮小できますが、それらが等しくなるように強制することはありません。さらに、州の変動量を評価する必要がある場合は、州と州内の間で推定された分散を使用する必要があります。状態間の分散が小さい(ゼロに近い)場合は、階層モデルを使用してもそれほど多くは得られず、切片はほぼ同じです。分散が非常に大きい場合(限界では、無限大になる場合)、階層モデルはほとんど追加せず、状態ごとに個別のモデルを実行できます。

パッケージlme4を使用して、Rの階層モデルを推定できます。データの使用:

require(lme4)
require(arm)
reg1 <- glmer(vaprate ~ gsp + midterm + regdead + WNCentral + South + Border
           + (1|state), data=voter)
display(reg1)

状態ごとの切片の推定標準偏差は4.39であり、個人ごとの標準偏差は4.19です。

于 2011-05-30T04:46:55.873 に答える