종단 계수 데이터를 분석하는 방법 : GLMM에서 시간 자기 상관을 설명합니까?


16

통계 전문가와 R 프로그래밍 마법사 여러분, 안녕하세요.

환경 조건과 일의 함수로 동물 포획을 모델링하는 데 관심이 있습니다. 다른 연구의 일환으로, 3 년 동안 ~ 160 일 동안 포획 횟수가 많았습니다. 요즘에는 온도, 강우, 풍속, 상대 습도 등이 있습니다. 같은 5 플롯에서 데이터가 반복적으로 수집되었으므로 플롯을 임의의 효과로 사용합니다.

내 이해는 nlme가 잔차에서 시간적 자기 상관을 쉽게 설명 할 수 있지만 lme4와 같은 비 가우시안 링크 함수를 처리하지 못한다는 것입니다 (자동 상관을 처리 할 수 ​​없습니까?). 현재 log (count)의 R에서 nlme 패키지를 사용하는 것이 효과가 있다고 생각합니다. 그래서 내 솔루션은 지금 다음과 같은 것을 실행하는 것입니다.

m1 <- lme(lcount ~ AirT + I(AirT^2) + RainAmt24 + I(RainAmt24^2) + RHpct + windspeed + 
      sin(2*pi/360*DOY) + cos(2*pi/360*DOY), random = ~1|plot, correlation =
      corARMA(p = 1, q = 1, form = ~DOY|plot), data = Data)

여기서 DOY = 올해의 날. 최종 모델에는 더 많은 상호 작용이있을 수 있지만 이것이 일반적인 아이디어입니다. 잠재적으로 분산 구조를 다음과 같이 모델링 할 수도 있습니다.

weights = v1Pow

I'm not sure if there is a better way to do with with a Poisson mixed model regression or anything? I just found mathematical discussion in Chapter 4 of "Regression Models for Time Series Analysis" by Kedem and Fokianos. It was a bit beyond me at the moment, especially in application (coding it in R). I also saw a MCMC solution in Zuur et al. Mixed Effects Models book (Chp 23) in the BUGS language (using winBUGS or JAG). Is that my best option? Is there an easy MCMC package in R that would handle this? I'm not really familiar with GAMM or GEE techniques but would be willing to explore these possibilities if people thought they'd provide better insight. 저의 주요 목표는 환경 조건에서 동물의 포획을 예측하는 모델을 만드는 것입니다. 둘째, 동물의 활동에 대한 반응에 대해 설명하고 싶습니다.

진행하는 가장 좋은 방법 (철학적으로), 이것을 R 또는 BUGS로 코딩하는 방법에 대한 모든 의견을 주시면 감사하겠습니다. 저는 R과 BUGS (winBUGS)를 처음 접했지만 배우고 있습니다. 이것은 내가 시간 자기 상관을 다루기 위해 처음 시도한 것이기도합니다.

고마워, 댄


1
나는 일반적으로 GEE의 열렬한 팬이지만 5 클러스터 (플로트) 만 있기 때문에 여기서 사용하지 않는 것이 좋습니다. 무증상으로 잘 수행하려면 GEE에는 일반적으로 더 많은 (약 40 정도 정도) 클러스터가 필요합니다.
Stats 학생

저는 Mac 소유자로서 WINBUGS보다는 STAN을 사용하는 것이 더 쉬웠습니다.
eric_kernfeld

답변:


3

응답을 변환하는 로그는 옵션은 아니지만 이상적입니다. GLM 프레임 워크가 일반적으로 선호됩니다. GLM에 익숙하지 않은 경우 혼합 모델 확장을보기 전에 GLM을 검토하여 시작하십시오. 카운트 데이터의 경우 포아송 또는 음 이항 분포 가정이 적합 할 것입니다. 편차가과 분산을 나타내는 평균 ( https://en.wikipedia.org/wiki/Overdispersion ) 보다 높으면 음 이항이 표시됩니다 . 모수 추정값의 해석은 두 가지에 해당합니다.

내 경험상 가장 일반적으로 인용되는 lme4와 함께 여러 옵션이 R에 있습니다.

#glmer
library(lme4) 
glmer(count ~ AirT + I(AirT^2) + RainAmt24 + I(RainAmt24^2) + RHpct + windspeed + sin(2*pi/360*DOY) + cos(2*pi/360*DOY) + (1|plot), family=poisson, data = Data) 
# use glmer.nb with identical syntax but no family for negative binomial.

# glmmADMB with negative binomial
install.packages("glmmADMB", repos=c("http://glmmadmb.r-forge.r-project.org/repos", getOption("repos")),type="source") 
require(glmmADMB)
glmmadmb(count ~ AirT + I(AirT^2) + RainAmt24 + I(RainAmt24^2) + RHpct + windspeed + sin(2*pi/360*DOY) + cos(2*pi/360*DOY) + (1|plot), 
           family="nbinom", zeroInflation=FALSE, data=Data)

# glmmPQL, requires an estimate for theta which can be obtained from a 
# glm model in which the correlation structure is ignored.
library(MASS)
glmmPQL(count ~ AirT + I(AirT^2) + RainAmt24 + I(RainAmt24^2) + RHpct + windspeed + sin(2*pi/360*DOY) + cos(2*pi/360*DOY) , random = list(~1 | plot), data = Data,family = negative.binomial(theta = 4.22, link = log))

이 링크들도 도움이 될 수 있습니다.

https://udrive.oit.umass.edu/xythoswfs/webui/_xy-11096203_1-t_yOxYgf1s http://www.cell.com/trends/ecology-evolution/pdf/S0169-5347(09)00019-6.pdf

둘 다 lme4의 저자 인 Ben Bolker의 작품입니다.

예제를 테스트하지는 않았지만 어디서부터 시작해야하는지에 대한 아이디어를 제공해야합니다. 구현을 확인하려면 데이터를 제공하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.