คำถามเกี่ยวกับวิธีระบุเอฟเฟกต์แบบสุ่มใน lmer


55

เมื่อไม่นานมานี้ฉันได้วัดความหมายของคำศัพท์ใหม่ผ่านการสัมผัสซ้ำ ๆ (การปฏิบัติ: วันที่ 1 ถึงวันที่ 10) โดยการวัด ERP (EEG) เมื่อดูคำศัพท์ในบริบทที่แตกต่างกัน ฉันยังควบคุมคุณสมบัติของบริบทเช่นมีประโยชน์สำหรับการค้นหาความหมายคำใหม่ (สูงกับต่ำ) ฉันสนใจผลของการฝึกซ้อมเป็นพิเศษ (วัน) เนื่องจากการบันทึก ERP แต่ละครั้งมีเสียงดังค่าส่วนประกอบของ ERP จะได้รับโดยเฉลี่ยจากการทดลองตามเงื่อนไขเฉพาะ ด้วยlmerฟังก์ชั่นฉันใช้สูตรต่อไปนี้:

lmer(ERPindex ~ practice*context + (1|participants), data=base) 

และ

lmer(ERPindex ~ practice*context + (1+practice|participants), data=base) 

ฉันยังได้เห็นผลเทียบเท่าแบบสุ่มต่อไปนี้ในวรรณคดี:

lmer(ERPindex ~ practice*context + (practice|participants) + 
                (practice|participants:context), data=base) 

อะไรคือความสำเร็จโดยใช้ปัจจัยสุ่มของรูปแบบparticipants:context? มีแหล่งข้อมูลที่ดีที่จะอนุญาตให้ใครบางคนที่มีความรู้คร่าวๆของพีชคณิตเมทริกซ์เข้าใจอย่างแม่นยำว่าปัจจัยแบบสุ่มทำอะไรในโมเดลเชิงเส้นผสมและพวกเขาควรเลือกอย่างไร?

คำตอบ:


77

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

แต่ละสามรุ่นของคุณมีผลกระทบสำหรับการแก้ไขpractice, contextและการมีปฏิสัมพันธ์ระหว่างทั้งสอง เอฟเฟกต์แบบสุ่มแตกต่างกันระหว่างโมเดล

lmer(ERPindex ~ practice*context + (1|participants), data=base) 

participantsมีการตัดสุ่มใช้ร่วมกันโดยบุคคลที่มีค่าเหมือนกันสำหรับ นั่นคือแต่ละparticipantเส้นถดถอย 's จะเลื่อนขึ้น / ลงตามจำนวนเงินที่สุ่มที่มีค่าเฉลี่ย00

lmer(ERPindex ~ practice*context + (1+practice|participants), data=base) 

practiceรุ่นนี้นอกเหนือไปจากการสกัดแบบสุ่มนอกจากนี้ยังมีความลาดชันสุ่ม ซึ่งหมายความว่าอัตราที่บุคคลเรียนรู้จากการปฏิบัติแตกต่างจากบุคคลหนึ่งสู่อีกบุคคล หากบุคคลมีผลการสุ่มเป็นบวกพวกเขาก็จะเพิ่มขึ้นอย่างรวดเร็วด้วยการฝึกฝนมากกว่าค่าเฉลี่ยในขณะที่ผลการสุ่มเชิงลบบ่งชี้ว่าพวกเขาเรียนรู้ได้เร็วกว่าการฝึกฝนน้อยกว่าค่าเฉลี่ยหรืออาจแย่ลงกับการฝึกฝนขึ้นอยู่กับความแปรปรวนแบบสุ่ม effect (นี่คือการสมมติว่าผลกระทบคงที่ของการฝึกเป็นบวก)

lmer(ERPindex ~ practice*context + (practice|participants) + 
                (practice|participants:context), data=base) 

โมเดลนี้เหมาะกับความชันแบบสุ่มและจุดตัดในpractice(คุณต้องทำ(practice-1|...)เพื่อตัดจุดตัด) เช่นเดียวกับรุ่นก่อนหน้านี้ แต่ตอนนี้คุณได้เพิ่มความชันแบบสุ่มและจุดตัดในปัจจัยparticipants:contextซึ่งเป็นปัจจัยใหม่ที่มีระดับ มีการรวมกันของระดับทุกในปัจจุบันparticipantsและcontextและผลการสุ่มสอดคล้องร่วมกันโดยการสังเกตที่มีมูลค่าเท่ากันของทั้งสองและparticipants contextเพื่อให้พอดีกับโมเดลนี้คุณจะต้องมีการสังเกตหลายครั้งที่มีค่าเท่ากันสำหรับทั้งสองparticipantsและcontextมิฉะนั้นโมเดลจะไม่สามารถประเมินได้ ในหลาย ๆ สถานการณ์กลุ่มที่สร้างขึ้นโดยตัวแปรการโต้ตอบนี้จะกระจัดกระจายมากและทำให้เกิดเอฟเฟกต์แบบสุ่มที่มีเสียงดัง / ยากมากดังนั้นคุณจึงต้องระมัดระวังเมื่อใช้ปัจจัยการโต้ตอบเป็นตัวแปรการจัดกลุ่ม

โดยทั่วไป (อ่าน: โดยไม่ซับซ้อนเกินไป) ควรใช้เอฟเฟกต์แบบสุ่มเมื่อคุณคิดว่าตัวแปรการจัดกลุ่มจะกำหนด "ช่องว่าง" ของความไม่ลงรอยกันในชุดข้อมูลหรือบุคคลที่แบ่งปันระดับของปัจจัยการจัดกลุ่มควรสัมพันธ์กัน บุคคลที่ไม่ควรมีความสัมพันธ์) - เอฟเฟกต์แบบสุ่มบรรลุเป้าหมายนี้ หากคุณคิดว่าการสังเกตที่ระดับร่วมกันของทั้งสองparticipantsและcontextคล้ายกันมากกว่าผลรวมของทั้งสองส่วนจากนั้นรวมถึงผลกระทบแบบสุ่ม "ปฏิสัมพันธ์" อาจเหมาะสม

แก้ไข:เมื่อ @Henrik กล่าวถึงความคิดเห็นโมเดลที่คุณต้องการเช่น:

lmer(ERPindex ~ practice*context + (1+practice|participants), data=base)

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

lmer(ERPindex ~ practice*context + (1|participants) + (practice-1|participants), 
     data=base)

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


2
ฉันไม่อยากจู้จี้จุกจิก แต่รุ่นที่สองก็ไม่มีความสัมพันธ์ระหว่างการสกัดกั้นและความลาดชัน เพียงแค่เพิ่มความลาดชันควรจะ: lmer(ERPindex ~ practice*context + (1|participants) + (0 + practice|participants, data=base)หรือฉันผิด (ที่ไม่เกี่ยวข้อง: ขอโทษแก้ไขเล็ก ๆ ของฉันโพสต์ของคุณหากคุณไม่เห็นด้วยกับการชี้แจงเพียงแค่เปลี่ยนมันกลับ.)
เฮนริก

@Henrik ใช่คุณพูดถูกว่ามันประมาณความสัมพันธ์ระหว่างเอฟเฟกต์สุ่มสองแบบด้วย ในการเขียนคำตอบนี้ฉันพยายามที่จะให้ความคิด "ภาพใหญ่" ของสิ่งที่เกิดขึ้นกับโมเดลเหล่านี้ซึ่งไม่ได้รวมถึงการพูดถึงความสัมพันธ์ระหว่างเอฟเฟกต์แบบสุ่มซึ่งไม่มีคำอธิบายง่ายๆ "สองเซ็นต์" วิธีที่ความชันและการสกัดกั้นทำ :) ไม่ว่าในกรณีใดฉันไม่คิดว่าการละเลยนี้ทำให้การตีความที่ฉันทำไว้ไม่ถูกต้อง BTW ขอบคุณสำหรับการแก้ไข
Macro

1
@Henrik ฉันเพิ่มบันทึกเกี่ยวกับความแตกต่างระหว่างการสร้างเอฟเฟกต์แบบสุ่มที่มีความสัมพันธ์กับที่ไม่เกี่ยวข้องซึ่งฉันคิดว่าช่วยปรับปรุงคำตอบ - ขอบคุณที่ชี้ให้เห็น
Macro

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

1
@pom ขอบคุณสำหรับคำชม Re: ความคิดเห็นของคุณฉันได้ทดสอบสิ่งนี้กับข้อมูลจำลองแล้วและฉันคิดว่าคุณมีข้อมูลข้างหลัง รุ่นที่สองภายใต้การแก้ไขของฉันมีพารามิเตอร์น้อยกว่าหนึ่งรุ่น นี่เป็นเพราะรุ่นที่สองบังคับให้สหสัมพันธ์ระหว่างเอฟเฟกต์สุ่มทั้งสองเป็นศูนย์ นอกเหนือจากนั้นโมเดลก็เหมือนกัน ฉันไม่แน่ใจว่าสิ่งที่คุณกำลังเผชิญอยู่ แต่ตัวอย่างที่ทำซ้ำได้จะช่วยได้ นี่คือของฉัน:x <-rnorm(1000); id <- rep(1:100,each=10); y <- rnorm(1000); g <- lmer(y ~ (1+x|id)); g2 <- lmer(y ~ (1|id) + (x-1|id)); attr(logLik(g),"df"); attr(logLik(g2),"df");
มาโคร

13

@Macro ได้รับคำตอบที่ดีที่นี่ฉันแค่ต้องการเพิ่มจุดเล็ก ๆ หากบางคนในสถานการณ์ของคุณกำลังใช้:

lmer(ERPindex ~ practice*context + (practice|participants) + 
                (practice|participants:context), data=base) 

ฉันสงสัยว่าพวกเขากำลังทำผิดพลาด ลองพิจารณา: (practice|participants)หมายความว่ามีความชันแบบสุ่ม (และการสกัดกั้น) สำหรับผลกระทบของpracticeแต่ละparticipantส่วนในขณะที่(practice|participants:context)หมายความว่ามีความชันแบบสุ่ม (และการสกัดกั้น) สำหรับผลกระทบของpracticeการparticipant by context รวมกันแต่ละครั้ง นี้เป็นเรื่องปกติถ้านั่นคือสิ่งที่พวกเขาต้องการ แต่ผมสงสัยว่าพวกเขาต้องการ(practice:context|participants)ซึ่งหมายความว่ามีความลาดชันแบบสุ่ม (และตัด) สำหรับผลการปฏิสัมพันธ์ของแต่ละ practice by contextparticipant


4

ในรูปแบบเอฟเฟกต์แบบสุ่มหรือเอฟเฟ็กต์เอฟเฟกต์จะใช้เอฟเฟกต์แบบสุ่มเมื่อคุณต้องการรักษาเอฟเฟกต์ที่คุณสังเกตว่ามันถูกดึงมาจากการกระจายความน่าจะเป็นของเอฟเฟกต์ต่างๆ

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

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


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