« トビムシの飼育 | トップページ | ホクロの違い »

lmer研究(6)lme4 Version: 0.999375-17

lme4パッケージが更新されました。

今回は、大幅に仕様がかわったようです。

・計算アルゴリズムを改善して、より頑健になり、計算が早くなった。
・PQLが使えなくなった。
・引数のmethodがなくなった。
・glmer()という関数ができた。
・mcmcsamp()のサンプリング方法が変わった。

今回の更新で我々エンドユーザーが特に注意しなければいけないのは、methodでしょう。

尤度を求めるmethodは、正規分布の場合"REML"と"ML"、それ以外の分布では、"Laplace"と"PQL"でした。
しかしながらPQL法は、問題があり、あまり正確な推定をしないことが指摘されています。方法がそれしか使えなかった時代ならいざしらず、現在はglmmMLやlmerのようにLhaplaceやghq(glmmMLのみ)のようにPQLより正確で尤度を求める方法が実装されているので、あえてPQLを使う必要はないと思います。そのため、今回のバージョンでPQLが使えなくなったのだと思います。

で、正規分布のときREMLとMLはどうしていするかというと、
REML=TRUE
で指定するようです。デフォルトは、TRUE。FALSEにするとMLになります。

現状では、まだ引数methodは使えますが、warning messageがでます。

fm1 <- lmer(Reaction ~ Days + (Days|Subject), sleepstudy,method="ML")
Warning message:
In lmer(Reaction ~ Days + (Days | Subject), sleepstudy, method = "ML") :
  Argument ‘methood’ is deprecated.  Use ‘REML’ instead

おそらく、次に出るバージョンでは引数methodは使えなくなるので、もう使わない方向で行きましょう。

で、もうひとつglmer()について

結論からいうと現状では、あまり気にする必要はないと思います。

lmer()はLinear Mixed Model、つまり、正規分布のGLMM、
glmer()はGeneralized Mixed Model、正規分布以外のGLMMで、両者の関数を使い分けるようです。

しかしながら、lmer(,family=poisson)とglmer(,family=poisson)は全く同じ結果になります。

test1 <- lmer(round(Reaction) ~ Days + (Days|Subject),family=poisson, sleepstudy)
test2 <- glmer(round(Reaction) ~ Days + (Days|Subject),family=poisson, sleepstudy)
summary(test1)
summary(test2)
(出力結果略)

では、なんでglmer()がでてくるかというと、引数nAGQの存在です。

これは、よくわかりませんが、Gauss-Hermite approximationにおいて設定する値のようです。整数値を入力、デフォルトは1。

Gauss-Hermite approximationは、glmmML(そういえば、最近更新したようですね。なにがどうなったかわかりませんが)のmethod="ghq"でやる方法ですね。glmmMLのヘルプには、"Both methods are now fully adaptive."だそうです。以前のバージョンではちょっと書いてあることが違ったのですが。

で、もともと以前のlmerのバージョンでは、「Lhaplaceよりも正確な、method="AGQ"が選べるようになりますよ。まだ実装してないけど」と書いてあった気がするけど、現バージョンで、引数nAGQという形で実装されたのでしょう。

ということでnAGQをいじってみる。

test3<- glmer(round(Reaction) ~ Days + (Days|Subject),family=poisson,nAGQ=2, sleepstudy)
以下にエラー mer_finalize(ans, verbose) : Code not yet written

まだ実装されていないようです。

結論

現バージョンでは、lmer()を使って引数methodについて気にすれば(多分)問題なく使える。

過去のlmer研究
(1)自動akaike weightプログラム
(2)自動akaike weightプログラム2
(3)gaussian modelのp値
(4)AICについて
(5)lmerで多重比較

|

« トビムシの飼育 | トップページ | ホクロの違い »

統計/R」カテゴリの記事

コメント

生態学を専攻している学生です。
ここの記述のおかげでlme4パッケージをなんとか使えそうです。
ありがとうございます。

投稿: | 2015年4月22日 (水) 17時58分

lmer()はLinear Mixed Model、つまり、正規分布のGLMM、
glmer()はGeneralized Mixed Model、正規分布以外のGLMMで、両者の関数を使い分けるようです。

上にはこのような内容が書かれているが、下にまたfamily=possionというコマンドが合って、lmer関数は正規分布かポアソン分布それともに二項分布もありえるかちょっと混乱しています。

もっと詳しく教えて頂ければと思います。
どうもありがとうございます。

投稿: ひめ | 2019年9月23日 (月) 16時45分

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: lmer研究(6)lme4 Version: 0.999375-17:

» 新しいlmerにはまる [Taglibro de H]
足軽日記: lmer研究(6)lme4 Version: 0.999375-17に解説があるが、最近のlmer()は いろいろかわっている。それはいいのだが、以前は動作していたコードが動かないという現象が発生している。なんだか関数内での変数のスコープがおかしいようだ。 例 library(lme4) x <- runif(100, 0, 10) b <- rep(seq(1, 5), 20) r <- rnorm(5, 0, 1) y <- 2 * x + 3 + r[b] f.lmer ... [続きを読む]

受信: 2008年7月 5日 (土) 11時23分

« トビムシの飼育 | トップページ | ホクロの違い »