plmを使用して、グループ化変数、つまり非ネストモデルに基づいて、ネストされたエラーコンポーネントを含むいくつかの反復測定Fixed Effectsモデルを推定しました。今興味がある
- 完全なモデルが有意に異なる場合、テストは、すなわち満杯のためのモデルであるとの完全なモデルであり、そして β FのEのM A L E β M のL E
Females
Males
- 続いて、2つのグループ間で選択した回帰係数をテストします。つまり、ここで、はの回帰係数ですat 、およびはatの男性の回帰係数です。β M A L E = = Yは、電子R 1.5
year1.5
year1.5
以下の作業例を使用して状況を説明します。
まず、いくつかのパッケージが必要です、
# install.packages(c("plm","texreg","tidyverse","lmtest"), dependencies = TRUE)
library(plm); library(lmtest); require(tidyverse)
第二に、いくつかのデータ準備、
data(egsingle, package = "mlmRev")
dta <- egsingle %>% mutate(Female = recode(female,.default = 0L,`Female` = 1L))
3番目に、データの各性別のモデルのセットを推定します
MoSpc <- as.formula(math ~ Female + size + year)
dfMo = dta %>% group_by(female) %>%
do(fitMo = plm(update(MoSpc, . ~ . -Female),
data = ., index = c("childid", "year", "schoolid"), model="within") )
第4に、2つの推定モデルを見てみましょう。
texreg::screenreg(dfMo[[2]], custom.model.names = paste0('FE: ', dfMo[[1]]))
#> ===================================
#> FE: Female FE: Male
#> -----------------------------------
#> year-1.5 0.79 *** 0.88 ***
#> (0.07) (0.10)
#> year-0.5 1.80 *** 1.88 ***
#> (0.07) (0.10)
#> year0.5 2.51 *** 2.56 ***
#> (0.08) (0.10)
#> year1.5 3.04 *** 3.17 ***
#> (0.08) (0.10)
#> year2.5 3.84 *** 3.98 ***
#> (0.08) (0.10)
#> -----------------------------------
#> R^2 0.77 0.79
#> Adj. R^2 0.70 0.72
#> Num. obs. 3545 3685
#> ===================================
#> *** p < 0.001, ** p < 0.01, * p < 0.05 #>
ここで、これら2つの(線形OLS)モデルが大幅に異なるかどうかをテストしたいと思います。上記のポイント1。私はSOとインターネットを見回し、一部は私が使用する必要があることを示唆していますがplm::pFtest()
、ここでも提案されています。ネストされていないモデルのテスト、Coxテストの可能性などを想像していましたlmtest::coxtest
が、まったくわかりません。ここの誰かが私を助けてくれるなら。
私は試した、
plm::pFtest(dfMo[[1,2]], dfMo[[2,2]])
# >
# > F test for individual effects
# >
# >data: update(MoSpc, . ~ . - Female)
# >F = -0.30494, df1 = 113, df2 = 2693, p-value = 1
# >alternative hypothesis: significant effects
そして、
lmtest::coxtest(dfMo[[1,2]], dfMo[[2,2]])
# > Cox test
# >
# > Model 1: math ~ size + year
# > Model 2: math ~ size + year
# > Estimate Std. Error z value Pr(>|z|)
# > fitted(M1) ~ M2 0.32 1.66695 0.1898 0.8494
# > fitted(M2) ~ M1 -1222.87 0.13616 -8981.1963 <2e-16 ***
# > ---
# > Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
# > Warning messages:
# > 1: In lmtest::coxtest(dfMo[[1, 2]], dfMo[[2, 2]]) :
# > models fitted on different subsets
# > 2: In lmtest::coxtest(dfMo[[1, 2]], dfMo[[2, 2]]) :
# > different dependent variables specified
次に、2つのグループ間で回帰係数を比較することに興味があります。たとえば、year1.5
3.04 の推定値は3.17と大きく異なりますか?Cf. 上記のポイント2。
上記のいずれかが不明な場合は、お問い合わせください。詳しく説明させていただきます。どんな助けでも大歓迎です!
この質問は少しプログラミングに似ていると思いますが、最初はSOに投稿しました。ただし、DWinは、質問がCrossValidatedに属しており、ここに移行したことを指摘してくれました。
固定効果モデル r plm 入れ子データ 仮説検定 反復測定 パネルデータ 混合モデル 回帰 パネルデータ 非入れ子モデル 入れ子モデル
plm(math ~ Female * (x1 + x2))
。最初の帰無仮説をテストするには、あなただけに関連付けられているすべての係数のためのF検定を実行しFemale:x1
、Female:x2
。2番目のnullをテストするには、に関連付けられているパラメーターをテストするだけですFemale:year1.5
。
suest
2つのモデルが大幅に異なるかどうかを確認するために適用できるStataを使用しました。suest()
Rのパッケージには関数が含まれていますが、同じであるとは思えません。スタタでsuest
は「一見無関係な推定」に関連しています。これsureg
は多少異なります。Rソリューションにも興味があります。それが何らかの形で役立つことを願っています。
plm
パッケージに関する非常に良い回答を得るために、stackoverflow.com でSOに投稿しました。質問は適切な場所に投稿するよう、今後さらに注意を払います。ありがとう。