ใช้ lmer สำหรับการทำนาย


18

สวัสดีฉันมีสองปัญหาที่ฟังเหมือนผู้สมัครทั่วไปสำหรับรุ่นหลายระดับ / ผสมซึ่งฉันไม่เคยใช้ ง่ายขึ้นและสิ่งที่ฉันหวังว่าจะลองเป็นการแนะนำมีดังนี้: ข้อมูลดูเหมือนหลายแถวของแบบฟอร์ม

x y innergroup outergroup

โดยที่ x คือ covariate ที่เป็นตัวเลขซึ่งฉันต้องการถดถอย y (ตัวแปรตัวเลขอื่น), y แต่ละตัวเป็นของกลุ่มอินเนอร์กรุปและกลุ่มอินเทอร์เนชันแต่ละกลุ่มจะซ้อนกันในกลุ่มนอก (เช่นทั้งหมดในกลุ่มที่อยู่ในกลุ่มเดียวกัน) . น่าเสียดายที่ Innergroup มีหลายระดับ (หลายพันคน) และแต่ละระดับมีการสังเกตการณ์ค่อนข้างน้อยดังนั้นฉันคิดว่ารูปแบบนี้อาจเหมาะสม คำถามของฉันคือ

  1. ฉันจะเขียนสูตรหลายระดับได้อย่างไร

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

ฉันไม่ต้องการทำสิ่งที่สองในบางครั้ง แต่ฉันก็อาจเริ่มคิดเกี่ยวกับมันและเล่นกับมัน ผมมีข้อมูลที่คล้ายกันเหมือน แต่ก่อน แต่ไม่มี x, y และในขณะนี้คือตัวแปรทวินามของแบบฟอร์มNK) y ยังมีการทับซ้อนจำนวนมากแม้ในกลุ่มผู้ใช้ ส่วนใหญ่ของไม่เกิน 2 หรือ 3 (หรือน้อยกว่า) ดังนั้นเพื่อให้ได้ค่าประมาณอัตราความสำเร็จของแต่ละฉันใช้ตัวประมาณการหดตัวแบบเบต้า - ทวินามโดยที่และn Y ฉัน ( α + k ฉัน ) / ( α + β + n ฉัน ) α β(n,nk)nyi(α+ki)/(α+β+ni)αβประเมินโดย MLE สำหรับแต่ละกลุ่มอินเนอร์กรุ๊ป นี่ค่อนข้างเพียงพอแล้ว แต่ความกระจัดกระจายของข้อมูลยังคงเป็นปัญหากับฉันดังนั้นฉันต้องการใช้ข้อมูลทั้งหมดที่มีอยู่ จากมุมมองหนึ่งปัญหานี้ง่ายขึ้นเนื่องจากไม่มีความแปรปรวนร่วม แต่จากอีกมุมหนึ่งลักษณะทวินามทำให้ยากขึ้น ไม่มีใครมีคำแนะนำระดับสูง (หรือต่ำ!)?


โปรดตรวจสอบว่าวงเล็บที่ฉันใส่เข้าไปในสูตรการหดตัวเป็นตำแหน่งที่คุณต้องการให้เป็นหรือไม่
whuber

1
ส่วนที่ 2 ของคำถามของคุณ (ที่มีตัวแปรไบนารี) ไม่ควรเป็นคำถามแยกต่างหากใช่หรือไม่
chl

คำตอบ:


16

การแสดงความสัมพันธ์ของปัจจัยโดยใช้สูตร R ต่อจากสัญกรณ์ของ Wilkinson โดยที่ '*' หมายถึงการข้ามและ '/' การทำรัง แต่มีลักษณะเฉพาะบางอย่างในวิธีที่สูตรสำหรับรูปแบบผสมเอฟเฟ็กต์ ตัวอย่างเช่นเอฟเฟกต์แบบข้ามสองแบบอาจถูกแทน(1|x1)+(1|x2)ด้วย ฉันตีความคำอธิบายของคุณเป็นกรณีของการทำรังเหมือนเรียนซ้อนกันในโรงเรียน (ซ้อนในรัฐ ฯลฯ ) ดังนั้นสูตรพื้นฐานที่มีlmerลักษณะจะเป็น (เว้นแต่จะระบุไว้เป็นอย่างอื่นgaussianครอบครัวจะใช้ค่าเริ่มต้น):

y ~ x + (1|A:B) + (1|A)

โดยที่ A และ B สอดคล้องกับปัจจัยภายในและภายนอกของคุณตามลำดับ B ถูกซ้อนภายใน A และทั้งคู่จะถือว่าเป็นปัจจัยสุ่ม ในเก่าnlmelme(y ~ x, random=~ 1 | A/B)แพคเกจนี้จะสอดคล้องกับสิ่งที่ชอบ y ~ x + A + (1|A:B)ถ้าหากผู้ที่จะได้รับการพิจารณาเป็นปัจจัยการแก้ไขสูตรควรอ่าน

แต่มันก็คุ้มค่าที่จะตรวจสอบข้อมูลจำเพาะของ D. Bates อย่างแม่นยำยิ่งขึ้นสำหรับแพ็คเกจlme4เช่นในตำราเรียนที่กำลังจะมาถึงของเขาlme4: การสร้างแบบผสมเอฟเฟกต์ด้วย Rหรือเอกสารประกอบคำบรรยายมากมายบนหน้าเว็บเดียวกัน โดยเฉพาะอย่างยิ่งมีตัวอย่างสำหรับความสัมพันธ์ดังกล่าวทำรังในการติดตั้งเป็น Linear ผสมผลกระทบรุ่นแพคเกจ lme4 ใน R กวดวิชาจอห์น Maindonald ยังให้ภาพรวมที่ดี: กายวิภาคของผสมรูปแบบการวิเคราะห์ด้วย lme4 แพคเกจของ ในที่สุดส่วนที่ 3 ของบทความสั้น R ในการเติม lme4รวมถึงตัวอย่างของการวิเคราะห์โครงสร้างที่ซ้อนกัน

ไม่มีpredict()ฟังก์ชั่นในlme4(ฟังก์ชั่นนี้ในขณะนี้ที่มีอยู่ให้ดูที่ความคิดเห็นด้านล่าง) และคุณมีการคำนวณด้วยตัวคุณเองที่คาดการณ์แต่ละค่าใช้ประมาณคงที่ (ดู?fixef) และสุ่ม (ดู?ranef) ผลกระทบ แต่ดูหัวข้อนี้ในการขาดการทำนายฟังก์ชั่นใน lme4 นอกจากนี้คุณยังสามารถสร้างตัวอย่างจากการกระจายหลังโดยใช้mcmcsamp()ฟังก์ชั่น บางครั้งมันอาจปะทะกัน ดูรายชื่อผู้รับจดหมายsig-meสำหรับข้อมูลที่ปรับปรุงเพิ่มเติม


3
หากต้องการอัปเดต: lme4ตอนนี้มีฟังก์ชั่นการทำนายอยู่ภายใน-r.org/packages/cran/lme4/docs/predict.mermod
บาร์

เอกสารสำหรับคาดการณ์. merMod
DirtStats

10

EZแพคเกจประกอบด้วย ezPredict () ฟังก์ชั่นที่ได้รับการคาดการณ์จากรูปแบบ lmer ที่ทำนายจะขึ้นอยู่กับผลกระทบที่ได้รับการแก้ไขเท่านั้น มันจริงๆเพียงแค่ห่อหุ้มรอบวิธีการรายละเอียดในที่วิกิพีเดีย glmm


5

ฉันจะใช้ฟังก์ชัน "logit.mixed" ในZeligซึ่งเป็น wrapper สำหรับ lime4 และทำให้สะดวกในการทำนายและจำลอง


ดูเหมือนว่าจะไม่มี predcit () วิธีการสำหรับ logit.mixed ใน zelig ..
nassimhddd

3

เวอร์ชันการพัฒนาของ lme4 มีฟังก์ชั่นการทำนายในตัว (predict.merMod) มันสามารถพบได้บนhttps://github.com/lme4/lme4/

รหัสในการติดตั้ง "ไบนารีการพัฒนาล่าสุดจากที่เก็บ lme4 r-forge" สามารถพบได้ในหน้าข้างบนและคือ:

install.packages("lme4", repos=c("http://lme4.r-forge.r-project.org/repos", getOption("repos")["CRAN"]))

1
โปรดทราบว่านี่ไม่ได้เป็นรุ่นพัฒนาอีกต่อไปpredictมีให้บริการแล้วหลายปีแล้ว
Ben Bolker

1

Stephen Raudenbush มีบทหนังสือในคู่มือการวิเคราะห์หลายระดับใน " กลุ่มเล็ก ๆ หลายกลุ่ม " หากคุณสนใจเฉพาะเอฟเฟกต์ของ x ต่อ y และไม่มีความสนใจในเอฟเฟกต์ระดับสูงข้อเสนอแนะของเขาคือการประเมินโมเดลเอฟเฟกต์คงที่ (เช่นตัวแปรจำลองสำหรับการจัดกลุ่มระดับที่สูงขึ้นทั้งหมด)

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

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