Underdispersionなカウントデータの回帰

glmmTMBパッケージはunderdispersionなデータにも対応していることを最近知りました。特にこの論文では、generalized Poisson (GP) and Conway‐Maxwell‐Poisson (CMP)が有効であること示しています。CMPが特にお勧めのようです。AppendixにRコードまでついていますので、参考にして自分でもやってみました(以下)。要はfamilyを変えるだけなので、解析自体は難しくないと思います。収束するかどうかは、別として・・・。

# R ver. 3.6.2# 2021.1.15
# packageslibrary(glmmTMB)library(bbmle) #for AICtablibrary(dplyr) #for sample_n
# 以下からデータをダウンロードして作業ディレクトリへ(サンプル数がかなり大きい)# https://github.com/embruna/Brooks_etal_2019_HeliconiaData/blob/master/hdat.RDataload("hdat.Rdata")head(hdat)
# サンプル数が多すぎるのでランダムに300個抽出してみたhdat2 <- sample_n(tbl = hdat, size = 300)hdat2
# generalised poisson (GP)# infl = 花序の生産数, lsize = log(シュート数), habitat = 生息地タイプgp00=try(glmmTMB(infl ~(1|ID)+(1|year)+(1|plot), hdat2, family='genpois')); summary(gp00)gp0=try(glmmTMB(infl ~lsize+(1|ID)+(1|year)+(1|plot), hdat2, family='genpois')); summary(gp0)gp1=try(glmmTMB(infl ~lsize+habitat+(1|ID)+(1|year)+(1|plot), hdat2, family='genpois')); summary(gp1)gp2=try(glmmTMB(infl ~lsize*habitat+(1|ID)+(1|year)+(1|plot), hdat2, family='genpois')); summary(gp2)
# Conway‐Maxwell‐Poisson (CMP)cmp00=try(glmmTMB(infl ~(1|ID)+(1|year)+(1|plot), hdat2, family='compois'))cmp0=try(glmmTMB(infl ~lsize+(1|ID)+(1|year)+(1|plot), hdat2, family='compois'))cmp1=try(glmmTMB(infl ~lsize+habitat+(1|ID)+(1|year)+(1|plot), hdat2, family='compois'))cmp2=try(glmmTMB(infl ~lsize*habitat+(1|ID)+(1|year)+(1|plot), hdat2, family='compois'))
# AICc tableAICctab(gp00, gp0, gp1, gp2, cmp00, cmp0, cmp1, cmp2)

自分の記録用ですが、ご自由にお使いください (使用によって生じた如何なる損害も、当方では一切の責任を負いかねます)。もしお役に立った場合はご一報いただけると嬉しいですし、共同研究に発展することがあればさらに嬉しいです。。。

解析のご質問やご相談は katayama6 at affrc.go.jp までご連絡いただければ幸いです。