วิธีการเลือกไลบรารี nlme หรือ lme4 R สำหรับโมเดลเอฟเฟกต์ผสม


85

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

อย่างไรก็ตามก่อนที่จะดำน้ำด้วยเท้าทั้งสองข้าง (และซื้อหนังสือ) ฉันต้องการให้แน่ใจว่าฉันกำลังเรียนรู้ห้องสมุดที่ถูกต้อง ฉันเคยชินlme4กับตอนนี้เพราะฉันเพิ่งพบว่าง่ายกว่าnlmeแต่ถ้าnlmeดีกว่าสำหรับวัตถุประสงค์ของฉันฉันก็รู้สึกว่าฉันควรจะใช้มัน

ฉันแน่ใจว่าไม่มี "ดีกว่า" ในวิธีที่ง่าย แต่ฉันจะให้คุณค่าความคิดเห็นหรือความคิดบางอย่าง เกณฑ์หลักของฉันคือ:

  1. ใช้งานง่าย (ฉันเป็นนักจิตวิทยาโดยการฝึกอบรมและไม่เฉพาะในสถิติหรือการเข้ารหัส แต่ฉันกำลังเรียนรู้)
  2. คุณสมบัติที่ดีสำหรับการติดตั้งข้อมูลตามยาว (ถ้ามีความแตกต่างตรงนี้ - แต่นี่คือสิ่งที่ฉันใช้เป็นหลัก)
  3. สรุปกราฟิกที่ดี (ง่ายต่อการตีความ) อีกครั้งไม่แน่ใจว่ามีความแตกต่างที่นี่หรือไม่ แต่ฉันมักจะสร้างกราฟสำหรับคนที่มีความเชี่ยวชาญด้านเทคนิคน้อยกว่าฉันดังนั้นพล็อตที่ชัดเจนดีจึงเป็นสิ่งที่ดีเสมอ () สำหรับเหตุผลนี้).

ตามปกติหวังว่าคำถามนี้จะไม่คลุมเครือเกินไปและขอบคุณล่วงหน้าสำหรับภูมิปัญญาใด ๆ !

คำตอบ:


68

ทั้งสองแพ็คเกจใช้Latticeเป็นแบ็กเอนด์ แต่nlmeมีคุณสมบัติที่ดีเช่นgroupedData()และlmList()ขาดlme4(IMO) จากมุมมองของการปฏิบัติเกณฑ์ที่สำคัญที่สุดทั้งสองดูเหมือนว่า

  1. lme4ขยายnlmeด้วยฟังก์ชั่นลิงค์อื่น ๆ : ในnlme, คุณไม่สามารถหาผลลัพธ์ที่มีการแจกแจงไม่ Gaussian, lme4สามารถนำมาใช้เพื่อให้พอดีกับการถดถอยโลจิสติกแบบผสมผลกระทบ
  2. ในnlmeมันเป็นไปได้ที่จะระบุเมทริกซ์ความแปรปรวนร่วม - ความแปรปรวนร่วมสำหรับผลแบบสุ่ม (เช่น AR (1)); lme4มันเป็นไปไม่ได้ใน

ตอนนี้lme4สามารถจัดการเอฟเฟกต์สุ่มจำนวนมากได้อย่างง่ายดาย (ด้วยเหตุนี้จำนวนบุคคลในการศึกษาที่กำหนด) ต้องขอบคุณส่วน C และการใช้เมทริกซ์กระจัดกระจาย nlmeแพคเกจได้รับการแทนที่โดยค่อนข้างlme4ดังนั้นฉันจะไม่คาดหวังว่าคนใช้เวลามากในการพัฒนา add-on nlmeที่ด้านบนของ โดยส่วนตัวเมื่อฉันได้รับการตอบกลับอย่างต่อเนื่องในแบบจำลองของฉันฉันมักจะใช้ทั้งสองแพ็คเกจ แต่ตอนนี้ฉันมีประสบการณ์กับlme4วิธีการที่เหมาะสมกับ GLMM

มากกว่าการซื้อหนังสือมาดูเป็นครั้งแรกที่หนังสือร่างดั๊กเบตส์ใน R-ปลอม: lme4: ผสมผลการสร้างแบบจำลองกับ R


5
@ 2) แม่นยำยิ่งขึ้นlme4คุณสามารถระบุโครงสร้างความแปรปรวนในแนวทแยงได้ (เช่นเอฟเฟกต์แบบสุ่ม) หรือเมทริกซ์ความแปรปรวนร่วมที่ไม่มีโครงสร้าง ฉันยังต้องการเพิ่มความแตกต่างที่สามในความสามารถที่อาจจะเกี่ยวข้องมากขึ้นสำหรับหลาย ๆ สถานการณ์ข้อมูลระยะยาว: nlmeขอให้คุณระบุโครงสร้างความแปรปรวนความแปรปรวนสำหรับเหลือ (คืออวกาศหรือชั่วหรืออัต heteroskedasticity) lme4ไม่ได้
fabians

@fabians (+1) อ้าขอบคุณ! ไม่ได้ตระหนักถึงการlme4อนุญาตให้เลือกโครงสร้าง VC ที่แตกต่างกัน มันจะเป็นการดีกว่าถ้าคุณเพิ่มเข้าไปในการตอบสนองของคุณเองพร้อมกับความคิดอื่น ๆ ที่คุณอาจมี ฉันจะโหวตขึ้น BTW ฉันก็ตระหนักว่าlmList()มีอยู่ในlme4นั้นด้วย ฉันดูเหมือนจะจำการสนทนาบางอย่างเกี่ยวกับเรื่องนั้นใน R-sig-ME
chl

ทางเลือกที่เร็วกว่านี้? ฉันต้องพอดีกับโมเดลที่มีชุดข้อมูลขนาดใหญ่และใช้เวลาครึ่งชั่วโมงในคอมพิวเตอร์ของฉัน มีแพ็คเกจการถดถอยที่รวดเร็วมากมาย แต่ดูเหมือนไม่มีใครสามารถจัดการกับเอฟเฟกต์แบบสุ่มได้
skan

52

ความแตกต่างที่สำคัญคือโครงสร้างความแปรปรวนร่วม - ความแปรปรวนร่วมที่คุณสามารถระบุสำหรับเอฟเฟกต์แบบสุ่ม ในlme4คุณสามารถระบุ:

  • โครงสร้างความแปรปรวนร่วมในแนวทแยง (กล่าวคือบังคับใช้เอฟเฟกต์สุ่มที่ไม่มีความสัมพันธ์ร่วมกันผ่านทางไวยากรณ์เช่น~ (1 | group)+ (0 + x1 | group) + (0 + x2 | group))
  • หรือเมทริกซ์ความแปรปรวนร่วมที่ไม่มีโครงสร้าง (เช่นความสัมพันธ์ทั้งหมดจะถูกประเมิน~ (1 + x1 + x2 | group))
  • หรือเส้นทแยงมุมบางส่วนความแปรปรวนร่วมที่ไม่มีโครงสร้างบางส่วน ( y ~ (1 + x1 | group) + (0 + x2 | group)ซึ่งคุณจะประมาณค่าสหสัมพันธ์ระหว่างการสกัดกั้นแบบสุ่มและความชันแบบสุ่มสำหรับx1แต่ไม่มีความสัมพันธ์ระหว่างความชันแบบสุ่มสำหรับx2และจุดตัดแบบสุ่มx2และความชันแบบสุ่มสำหรับความลาดชันแบบสุ่มx1)

nlmeมีโครงสร้างความแปรปรวนร่วมที่กว้างขึ้นสำหรับเอฟเฟกต์แบบสุ่ม ประสบการณ์ของฉันคือความยืดหยุ่นlme4เพียงพอสำหรับแอปพลิเคชันส่วนใหญ่

ฉันยังต้องการเพิ่มความแตกต่างที่สามในความสามารถที่อาจจะเกี่ยวข้องมากขึ้นสำหรับหลาย ๆ สถานการณ์ข้อมูลระยะยาว: nlme ขอให้คุณระบุโครงสร้างความแปรปรวนความแปรปรวนสำหรับเหลือ (เช่นอัตอวกาศหรือชั่วหรือ heteroskedasticity หรือความแปรปรวนของตัวแปรร่วมขึ้นอยู่กับ) ในweightsอาร์กิวเมนต์ (CF ?varFunc) ในขณะที่lme4อนุญาตเฉพาะน้ำหนักก่อนหน้าคงที่สำหรับการสังเกต

ความแตกต่างที่สี่ก็คือว่ามันอาจเป็นเรื่องยากที่จะได้รับnlmeเพื่อให้พอดีกับ (บางส่วน) lme4ข้ามผลกระทบแบบสุ่มในขณะที่ไม่ใช่ปัญหาใน

lme4คุณอาจจะดีถ้าคุณติดกับ


1
ด้วยข้อยกเว้นที่เป็นไปได้ (ตามที่คุณชี้ให้เห็น) ความสามารถในการรวม autocorrelation ชั่วคราวใน nlme แต่ไม่ใช่ lme4 ถ้าชุดข้อมูลมีขนาดใหญ่พอและถ้าข้อมูลมีโครงสร้างแบบนี้นั่นอาจเป็นข้อได้เปรียบที่ยิ่งใหญ่ของ nlme
Ben Bolker

22

คนอื่นได้สรุปความแตกต่างได้เป็นอย่างดี การแสดงผลของฉันคือที่lme4เหมาะสำหรับชุดข้อมูลคลัสเตอร์โดยเฉพาะเมื่อคุณต้องการใช้ผลสุ่มข้าม สำหรับการออกแบบมาตรการซ้ำ ๆ (รวมถึงการออกแบบตามยาว) อย่างไรก็ตามnlmeเป็นเครื่องมือเนื่องจากnlmeสนับสนุนเฉพาะการระบุโครงสร้างสหสัมพันธ์สำหรับส่วนที่เหลือ คุณทำมันโดยใช้correlationsหรือcorโต้แย้งกับcorStructวัตถุ นอกจากนี้ยังช่วยให้คุณสร้างแบบจำลองความvarFuncแตกต่างที่แข็งแกร่งโดยใช้วัตถุ


13

มีจริงจำนวนของแพคเกจใน R สำหรับรุ่นที่เหมาะสมผลกระทบผสมเกินและlme4 nlmeมีความสุขเป็นวิกิพีเดียที่ดำเนินการโดยกลุ่มที่น่าสนใจเป็นพิเศษ R สำหรับรุ่นที่ผสมซึ่งมีที่ดีมากคำถามที่พบบ่อยและหน้าเปรียบเทียบแพคเกจที่แตกต่างกัน

สำหรับความคิดเห็นของฉันเกี่ยวกับการใช้งานจริงlme4และnlme: ฉันพบว่าlme4โดยทั่วไปจะใช้งานง่ายกว่าเนื่องจากส่วนขยายค่อนข้างตรงไวยากรณ์ไวยากรณ์ R พื้นฐาน (ถ้าคุณต้องการทำงานกับโมเดลเสริมทั่วไปแล้วgamm4แพคเกจจะขยายไวยากรณ์นี้ไปอีกขั้นหนึ่งและเพื่อให้คุณมีเส้นโค้งการเรียนรู้ที่ราบรื่น) ตามที่คนอื่น ๆ พูดถึงlme4สามารถจัดการโมเดลทั่วไปได้ (ฟังก์ชั่นลิงค์อื่น ๆ และการแจกแจงข้อผิดพลาด) nlmeการมุ่งเน้นไปที่ฟังก์ชั่นลิงก์เกาส์เซียนช่วยให้สามารถทำบางสิ่งที่ยากมากในกรณีทั่วไป (การระบุโครงสร้างความแปรปรวนร่วมและบางสิ่งขึ้นอยู่กับองศาของการคำนวณอิสระเช่นค่า p, หลังซึ่งฉันขอแนะนำให้คุณย้าย ห่างจาก!).

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