ランダムな勾配を持つ混合効果回帰モデルでMCMC仮説検定を行うにはどうすればよいですか?


12

ライブラリlanguageRは、lmerを使用して混合効果回帰モデルの適合における固定効果のMCMC有意性テストを実行するメソッド(pvals.fnc)を提供します。ただし、lmerモデルにランダムな勾配が含まれている場合、pvals.fncはエラーを返します。

そのようなモデルのMCMC仮説検定を行う方法はありますか?
もしそうなら、どのように?(回答を受け入れるには、Rで有効な例を使用する必要があります)そうでない場合、方法がない理由は概念的/計算上の理由がありますか?

この質問はこれに関連している可能性があります、そこにある内容を確実に理解できませんでした。

編集1:pvals.fnc()はlme4モデルではまだ「何か」を行うが、ランダムな勾配モデルでは何もしないことを示す概念実証。

library(lme4)
library(languageR)
#the example from pvals.fnc
data(primingHeid) 
# remove extreme outliers
primingHeid = primingHeid[primingHeid$RT < 7.1,]
# fit mixed-effects model
primingHeid.lmer = lmer(RT ~ RTtoPrime * ResponseToPrime + Condition + (1|Subject) + (1|Word), data = primingHeid)
mcmc = pvals.fnc(primingHeid.lmer, nsim=10000, withMCMC=TRUE)
#Subjects are in both conditions...
table(primingHeid$Subject,primingHeid$Condition)
#So I can fit a model that has a random slope of condition by participant
primingHeid.lmer.rs = lmer(RT ~ RTtoPrime * ResponseToPrime + Condition + (1+Condition|Subject) + (1|Word), data = primingHeid)
#However pvals.fnc fails here...
mcmc.rs = pvals.fnc(primingHeid.lmer.rs)

pvals.fnc(primingHeid.lmer.rs)のエラー:ランダム相関パラメーターを持つモデルのlme4_0.999375でMCMCサンプリングはまだ実装されていません

追加の質問:pvals.fncは、ランダムインターセプトモデルで期待どおりに動作しますか?出力を信頼する必要がありますか?


3
(1)pvals.fncがまだ機能していることに驚いています。mcmcsamp(pvals.fncが依存している)はかなり長い間lme4で機能していなかったと思いました。どのバージョンのlme4を使用していますか?(2)ランダムスロープを使用すると、有意差検定を取得するために実行しているものを中断するという概念的な理由はありません。 (4)このQと他のQとの間の唯一の関係は「MCMC」です(つまり、実質的になし)
ベンボルカー

使用しているlme4のバージョンは、使用しているコンピューターによって異なります。このコンソールにはlme4_0.999375-32がありますが、分析に使用することはめったにありません。数か月前、pvals.fnc()が分析後にlme4の結果を引き裂いていることに気づきました-私はそのための回避策をその時に作成しましたが、もう問題ではないようです。近い将来、3番目の点について別の質問をする必要があります。
ラッセルピアス

回答:


4

エラーメッセージは傾斜の変化に関するものではなく、相関するランダム効果に関するもののようです。同様に、無相関を適合させることができます。つまり、独立したランダム効果を持つ混合効果モデル:

Linear mixed model fit by REML
Formula: Reaction ~ Days + (1 | Subject) + (0 + Days | Subject)
Data: sleepstudy

http://www.stat.wisc.edu/~bates/IMPS2008/lme4D.pdfから


8

ここに(少なくともほとんど)のソリューションがありMCMCglmmます。

最初に、以下を使用して等価な切片分散のみのモデルを近似しMCMCglmmます。

library(MCMCglmm)
primingHeid.MCMCglmm = MCMCglmm(fixed=RT ~ RTtoPrime * ResponseToPrime + Condition, 
                                random=~Subject+Word, data = primingHeid)

との適合を比較MCMCglmmlmer、最初にハッキングされたバージョンを取得しますarm::coefplot

source(url("http://www.math.mcmaster.ca/bolker/R/misc/coefplot_new.R"))
  ## combine estimates of fixed effects and variance components
pp  <- as.mcmc(with(primingHeid.MCMCglmm, cbind(Sol, VCV)))
  ## extract coefficient table
cc1 <- coeftab(primingHeid.MCMCglmm,ptype=c("fixef", "vcov"))
  ## strip fixed/vcov indicators to make names match with lmer output
rownames(cc1) <- gsub("(Sol|VCV).", "", rownames(cc1))
  ## fixed effects -- v. similar
coefplot(list(cc1[1:5,], primingHeid.lmer))
  ## variance components -- quite different.  Worth further exploration?
coefplot(list(cc1[6:8,], coeftab(primingHeid.lmer, ptype="vcov")),
         xlim=c(0,0.16), cex.pts=1.5)

ランダムな勾配で試してみましょう:

primingHeid.rs.MCMCglmm = MCMCglmm(fixed=RT ~ RTtoPrime * ResponseToPrime + Condition,
                                   random=~Subject+Subject:Condition+Word, 
                                   data = primingHeid)        
summary(primingHeid.rs.MCMCglmm)

これは、ある種の「MCMC p値」を与えます...あなた自身のために探求し、全体が理にかなっているかどうかを確認する必要があります...


どうもありがとう。これは私を正しい方向に向けるように見えます。MCMCglmmのヘルプと関連記事を読んで、何が起きているのか頭を包むことができるかどうかを確認するだけです。
ラッセルピアス

1
この場合のランダムな勾配モデルは、ランダムな勾配とランダムな切片との間に相関関係がありますか、またはこのフレームワークではそのような考えは無意味ですか?
russellpierce

ここでコードを微調整して読みやすくしました、@ Ben。気に入らない場合は、お/び申し上げます。
グン-モニカを復活
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.