R(lme4)対Stata(xtmixed)のランダム効果の標準誤差


19

このデータを考慮してください:

dt.m <- structure(list(id = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12), occasion = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L), .Label = c("g1", "g2"), class = "factor"),     g = c(12, 8, 22, 10, 10, 6, 8, 4, 14, 6, 2, 22, 12, 7, 24, 14, 8, 4, 5, 6, 14, 5, 5, 16)), .Names = c("id", "occasion", "g"), row.names = c(NA, -24L), class = "data.frame")

単純な分散コンポーネントモデルを近似します。Rには次のものがあります。

require(lme4)
fit.vc <- lmer( g ~ (1|id), data=dt.m )

次に、キャタピラープロットを作成します。

rr1 <- ranef(fit.vc, postVar = TRUE)
dotplot(rr1, scales = list(x = list(relation = 'free')))[["id"]]

Rからのキャタピラープロット

次に、同じモデルをStataに適合させます。最初にRからStata形式に書き込みます。

require(foreign)
write.dta(dt.m, "dt.m.dta")

スタタで

use "dt.m.dta"
xtmixed g || id:, reml variance

出力はR出力と一致し(どちらも表示されていません)、同じキャタピラープロットを作成しようとします。

predict u_plus_e, residuals
predict u, reffects
gen e = u_plus_e – u
predict u_se, reses

egen tag = tag(id)
sort u
gen u_rank = sum(tag)

serrbar u u_se u_rank if tag==1, scale(1.96) yline(0)

ここに画像の説明を入力してください

Clearty StataはRとは異なる標準エラーを使用しています。実際、Stataは2.13を使用していますが、Rは1.32を使用しています。

私が言えることから、Rの1.32はから来ています

> sqrt(attr(ranef(fit.vc, postVar = TRUE)[[1]], "postVar")[1, , ])
 [1] 1.319977 1.319977 1.319977 1.319977 1.319977 1.319977 1.319977 1.319977 1.319977 1.319977 1.319977 1.319977

しかし、私はこれが何をしているのかを本当に理解しているとは言えません。誰か説明できますか?

また、推定方法を最尤法に変更した場合を除き、Stataの2.13がどこから来たのかわかりません。

xtmixed g || id:, ml variance

....その後、標準エラーとして1.32を使用し、Rと同じ結果を生成するようです...

ここに画像の説明を入力してください

....しかし、その後、ランダム効果分散の推定値はRと一致しなくなりました(35.04対31.97)。

ML対REMLに関係があるようです。両方のシステムでREMLを実行すると、モデルの出力は一致しますが、キャタピラープロットで使用される標準エラーは一致しません。 、毛虫のプロットは一致しますが、モデルの推定値は一致しません。

誰が何が起こっているのか説明できますか?


ロバート、あなたはスタタのメソッドとフォーミュラを調べました[XT] xtmixed[XT] xtmixed postestimation?彼らはPinheiro and Bates(2000)を参照しているので、少なくとも数学の一部は同じでなければなりません。
StasK

@StasK以前にピニェイロとベイツへの言及を見ましたが、何らかの理由で今は見つけられません!ランダム効果の予測に関するテクニカルノートを見てきました。「最大尤度の標準理論」と、reの漸近分散行列がヘッセ行列の負の逆行列であるという所定の結果を使用していること。しかし、正直なところ、これは本当に私を助けませんでした![多分私の理解不足のため]
ロバートロング

これは、StataとRで異なる方法で行われる自由度の修正のようなものでしょうか?声を出して考えているだけです。
StasK

@StasK私もそれについて考えましたが、その差-1.32 vc 2.13-は大きすぎると結論付けました。もちろん、これは小さなサンプルサイズです-クラスター数が少なく、クラスターあたりの観測数が少ないため、それが原因であるものがサンプルサイズによって増幅されていることを学んでも驚かないでしょう。
ロバートロング

回答:


6

[XT]Stata 11 のマニュアルによると:

ββ

β

あなたの質問から、StataとRの両方でREMLを、RのREMLでStataのMLを試しました。両方でMLを試しても、両方で同じ結果が得られるはずです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.