จะวิเคราะห์ข้อมูลการนับตามยาวได้อย่างไร: การบัญชีสำหรับการหาค่าสัมพันธ์อัตโนมัติใน GLMM?


16

สวัสดีปรมาจารย์ด้านสถิติและวิซาร์ดการเขียนโปรแกรม R

ฉันสนใจในการสร้างแบบจำลองสัตว์จับเป็นฟังก์ชั่นของสภาพแวดล้อมและวันของปี เป็นส่วนหนึ่งของการศึกษาอื่นฉันได้นับการจับกุมในเวลาประมาณ 160 วันในระยะเวลาสามปี ในแต่ละวันฉันมีอุณหภูมิ, ฝน, ความเร็วลม, ความชื้นสัมพัทธ์และอื่น ๆ เนื่องจากข้อมูลถูกรวบรวมซ้ำ ๆ กันจาก 5 แปลงเดียวกันฉันใช้พล็อตเป็นผลแบบสุ่ม

ความเข้าใจของฉันคือ nlme สามารถอธิบายความสัมพันธ์ระหว่างกาลชั่วคราวในส่วนที่เหลือได้อย่างง่ายดาย แต่ไม่ได้จัดการฟังก์ชั่นลิงค์ที่ไม่ใช่แบบเกาส์เช่น lme4 (ซึ่งไม่สามารถจัดการความสัมพันธ์แบบอัตโนมัติได้) ขณะนี้ฉันคิดว่ามันอาจใช้งานแพคเกจ nlme ใน R on log (นับ) ดังนั้นวิธีแก้ปัญหาของฉันตอนนี้คือการเรียกใช้สิ่งที่ชอบ:

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

ฉันไม่แน่ใจว่ามีวิธีที่ดีกว่าสำหรับการถดถอยแบบปัวซองหรืออะไร? ฉันเพิ่งพบการสนทนาทางคณิตศาสตร์ในบทที่ 4 ของ "ตัวแบบการถดถอยสำหรับการวิเคราะห์อนุกรมเวลา" โดย Kedem และ Fokianos ในตอนนี้มันเกินกว่าฉันเล็กน้อยโดยเฉพาะอย่างยิ่งในแอปพลิเคชัน (เข้ารหัสใน R) ฉันเห็นโซลูชัน MCMC ใน Zuur และคณะ หนังสือแบบผสมเอฟเฟกต์ (Chp 23) ในภาษา BUGS (โดยใช้ winBUGS หรือ JAG) นั่นคือตัวเลือกที่ดีที่สุดของฉันหรือไม่ มีแพ็คเกจ MCMC ง่าย ๆ ใน R ที่จะจัดการกับเรื่องนี้หรือไม่? ฉันไม่คุ้นเคยกับเทคนิคของ GAMM หรือ GEE แต่ยินดีที่จะสำรวจความเป็นไปได้เหล่านี้หากผู้คนคิดว่าพวกเขามีข้อมูลเชิงลึกที่ดีกว่าวัตถุประสงค์หลักของฉันคือการสร้างแบบจำลองเพื่อทำนายการจับสัตว์ตามสภาพแวดล้อม ประการที่สองฉันอยากจะอธิบายสิ่งที่สัตว์ตอบสนองในแง่ของกิจกรรมของพวกเขา

ความคิดใด ๆ เกี่ยวกับวิธีที่ดีที่สุดในการดำเนินการ (ปรัชญา) วิธีการเขียนโค้ดใน R หรือใน BUGS จะได้รับการชื่นชม ฉันค่อนข้างใหม่กับ R และ BUGS (winBUGS) แต่ฉันกำลังเรียนรู้ นี่เป็นครั้งแรกที่ฉันเคยพยายามแก้ปัญหาความสัมพันธ์เชิงกาลเวลา

ขอบคุณแดน


1
ฉันเป็นแฟนตัวยงของ GEE แต่ฉันจะหลีกเลี่ยงการใช้ที่นี่เพราะคุณมี 5 กลุ่ม (แปลง) ในการดำเนินการแบบไม่แสดงอาการ GEE มักจะต้องการกลุ่มที่ใหญ่กว่า (ประมาณ 40 หรือมากกว่านั้น)
StatsStudent

ในฐานะเจ้าของ Mac ฉันมีเวลาได้ง่ายขึ้นกับ STAN มากกว่า WINBUGS
eric_kernfeld

คำตอบ:


3

บันทึกการเปลี่ยนการตอบสนองของคุณเป็นตัวเลือก แต่ไม่เหมาะ โดยทั่วไปจะต้องการกรอบงาน GLM หากคุณไม่คุ้นเคยกับ GLM ให้เริ่มจากการตรวจสอบก่อนที่จะดูที่ส่วนขยายแบบผสม สำหรับข้อมูลนับ Poisson หรือสมมติฐานการกระจายแบบลบ Binomial จะเหมาะสม Binomial เชิงลบจะถูกระบุหากความแปรปรวนสูงกว่าค่าเฉลี่ยที่ระบุการกระจายตัวเกิน ( https://en.wikipedia.org/wiki/Overdispersion ) การตีความของการประมาณค่าพารามิเตอร์นั้นเทียบเท่ากับทั้งสอง

มีตัวเลือกหลายตัวใน R พร้อม lme4 ที่ถูกอ้างถึงมากที่สุดในประสบการณ์ของฉัน

#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

ทั้งคู่เป็นของ Ben Bolker ผู้แต่ง lme4

ฉันไม่ได้ทดสอบตัวอย่าง แต่พวกเขาควรให้ความคิดแก่คุณว่าจะเริ่มจากตรงไหน โปรดระบุข้อมูลหากคุณต้องการยืนยันการใช้งาน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.