線形モデル

glm()

パッケージ:デフォルト
family指定:正規分布、ポアソン分布、二項分布
ランダム効果:可
モデル選択:dredge, stepAIC
備考:特になし

# sample
glm(y ~ x, data, family = poisson)

glmer()

パッケージ:lme4
family指定:ポアソン分布、二項分布(正規分布の場合はlmer();R ver 3.Xあたりから仕様が変更?)
ランダム効果:可
モデル選択:dredgestepAIC
備考:
ランダム効果が多くなると推定精度が低下することが指摘されている。Bolkerさんの論文によれば、ランダム効果が3つ以上の場合はMCMCなど別の手法を採用したほうがいいとしている。ただし、これまで実装されていたmcmcsamp()という関数に関しては、分散の推定値がゼロ付近のときに適切な推定を行ってくれない可能性があるらしく、2017年5月現在はパッケージから関数が除外されている模様。なお、推定が収束しなかった場合、control=glmerControl(optCtrl=list(maxfun=20000))などと付け加えることで、試行数の上限を増やすことができる。

# sample 1: varying intercept model
glmer(y ~ x + (1|group), data, family = poisson)

# sample 2: varying intercept and slope model
glmer(y ~ x1 + (1 + x1|group), data, family = poisson)

# sample 3: nested random effect model
glmer(y ~ x1 + (1|region/group), data, family = poisson)
# region is a larger set of groups

# sample 3: nested random effect model
lmer(y ~ x1 + (1|region), data, control=lmerControl(optCtrl=list(maxfun=20000)))
glmer(y ~ x1 + (1|region), data, family=poisson, control=glmerControl(optCtrl=list(maxfun=20000)))
# when did not reach convergence with default settings

glm.nb()

パッケージ:MASS
family:負の二項分布に固定
ランダム効果:不可
モデル選択:dredge, stepAIC
備考:特になし

# sample
glm.nb(y ~ x, data)

glmmadmb()

パッケージ:glmmADMB
family:ポアソン分布、負の二項分布、ベータ分布、ベータ二項分布
ランダム効果:可
モデル選択:不可(関数を自作すれば可)
備考:zeroInflation=TRUEとすることでゼロ過剰モデルも実装可

# sample 1: poisson model with a random effect
glmmadmb(y ~ x + (1|group), data, family = "poisson")

# sample 2: negative binomial model with a random effect
glmmadmb(y ~ x + (1|group), data, family = "nbinom")

# sample 3: beta model with a random effect
glmmadmb(y ~ x + (1|group), data, family = "beta")

# sample 4: zero inflated poisson model with a random effect
glmmadmb(y ~ x + (1|group), data, family = "poisson", zeroInflation=TRUE)

SPONSOR LINK

Spread the love

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です