Làm thế nào để phân tích dữ liệu đếm dọc: kế toán cho sự tự tương quan thời gian trong GLMM?


16

Xin chào các chuyên gia thống kê và trình hướng dẫn lập trình R,

Tôi quan tâm đến việc mô hình hóa việc bắt động vật như là một chức năng của điều kiện môi trường và ngày trong năm. Là một phần của một nghiên cứu khác, tôi có số lần bị bắt trong ~ 160 ngày trong ba năm. Vào mỗi ngày, tôi có nhiệt độ, lượng mưa, tốc độ gió, độ ẩm tương đối, v.v ... Vì dữ liệu được thu thập liên tục từ cùng 5 ô, tôi sử dụng âm mưu như một hiệu ứng ngẫu nhiên.

Hiểu biết của tôi là nlme có thể dễ dàng giải thích cho sự tự tương quan thời gian trong phần dư nhưng không xử lý các hàm liên kết không phải Gaussian như lme4 (không thể xử lý tự động tương quan?). Hiện tại, tôi nghĩ rằng nó có thể hoạt động để sử dụng gói nlme trong R trên log (tính). Vì vậy, giải pháp của tôi ngay bây giờ sẽ là chạy một cái gì đó như:

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)

trong đó DOY = Ngày trong năm. Có thể có nhiều tương tác hơn trong mô hình cuối cùng, nhưng đây là ý tưởng chung của tôi. Tôi cũng có khả năng cố gắng mô hình hóa cấu trúc phương sai hơn nữa với một cái gì đó như

weights = v1Pow

Tôi không chắc có cách nào tốt hơn để thực hiện với hồi quy mô hình hỗn hợp Poisson hay không? Tôi vừa tìm thấy thảo luận toán học trong Chương 4 của "Mô hình hồi quy cho phân tích chuỗi thời gian" của Kedem và Fokianos. Nó là một chút ngoài tôi vào lúc này, đặc biệt là trong ứng dụng (mã hóa bằng R). Tôi cũng thấy một giải pháp MCMC trong Zuur et al. Sách mô hình hiệu ứng hỗn hợp (Chp 23) bằng ngôn ngữ BUGS (sử dụng winBUGS hoặc JAG). Đó có phải là lựa chọn tốt nhất của tôi? Có một gói MCMC dễ dàng trong R sẽ xử lý việc này không? Tôi không thực sự quen thuộc với các kỹ thuật GAMM hoặc GEE nhưng sẽ sẵn sàng khám phá những khả năng này nếu mọi người nghĩ rằng họ sẽ cung cấp cái nhìn sâu sắc hơn.Mục tiêu chính của tôi là tạo ra một mô hình để dự đoán các động vật bị bắt trong điều kiện môi trường. Thứ hai, tôi muốn giải thích những gì động vật phản ứng về hoạt động của chúng.

Bất kỳ suy nghĩ nào về cách tốt nhất để tiến hành (về mặt triết học), cách viết mã này trong R hoặc trong BUGS sẽ được đánh giá cao. Tôi còn khá mới với R và BUGS (winBUGS) nhưng đang học. Đây cũng là lần đầu tiên tôi từng cố gắng giải quyết vấn đề tự kỷ theo thời gian.

Cảm ơn, Dan


1
Tôi là một fan hâm mộ lớn của GEE, nhưng tôi sẽ tránh sử dụng nó ở đây vì bạn chỉ có 5 cụm (lô). Để thực hiện tốt các triệu chứng, GEE thường yêu cầu số lượng cụm lớn hơn (khoảng 40 hoặc hơn).
StatsStudent 22/03/2016

Là chủ sở hữu máy Mac, tôi đã có một thời gian dễ dàng hơn với STAN hơn là CHIẾN THẮNG.
eric_kernfeld

Câu trả lời:


3

Nhật ký chuyển đổi phản ứng của bạn là một lựa chọn mặc dù không lý tưởng. Một khung GLM thường được ưa thích. Nếu bạn không quen thuộc với GLM thì hãy bắt đầu bằng cách xem xét chúng trước khi xem các phần mở rộng mô hình hỗn hợp. Đối với dữ liệu đếm, các giả định phân phối nhị thức âm hoặc nhị phân sẽ có khả năng phù hợp. Binomial âm được chỉ định nếu phương sai cao hơn giá trị trung bình biểu thị sự phân tán quá mức ( https://en.wikipedia.org/wiki/Overdispersion ). Việc giải thích các ước tính tham số là tương đương cho hai.

Một số tùy chọn tồn tại trong R với lme4 được trích dẫn phổ biến nhất theo kinh nghiệm của tôi.

#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))

Các liên kết này cũng có thể hỗ trợ:

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

Cả hai đều do Ben Bolker, tác giả của lme4.

Tôi đã không kiểm tra các ví dụ nhưng họ sẽ cho bạn biết bắt đầu từ đâu. Vui lòng cung cấp dữ liệu nếu bạn muốn xác minh việc thực hiện của họ.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.