การแตกความลาดเอียงสำหรับเคสจากโมเดลเอฟเฟกต์ผสม (lme4)


13

ฉันต้องการแยกความลาดชันสำหรับแต่ละคนในรูปแบบเอฟเฟกต์ผสมตามที่ระบุไว้ในวรรคต่อไปนี้

แบบจำลองเอฟเฟกต์แบบผสมถูกนำมาใช้เพื่ออธิบายลักษณะการเปลี่ยนแปลงของแต่ละบุคคลในมาตรการสรุปทางปัญญาซึ่งรวมถึงข้อกำหนดสำหรับอายุเพศและปีการศึกษาซึ่งเป็นผลกระทบคงที่ (Laird and Ware, 1982; Wilson et al., 2000, 2002c) ... ส่วนที่เหลือเงื่อนไขความลาดชันการลดลงของความรู้ความเข้าใจของแต่ละบุคคลถูกดึงออกมาจากแบบจำลองผสมหลังจากปรับผลกระทบของอายุเพศและการศึกษา จากนั้นนำมาใช้เป็นข้อมูลเชิงปริมาณสำหรับการวิเคราะห์ความสัมพันธ์ทางพันธุกรรม การประมาณการเหล่านี้เปรียบเสมือนความแตกต่างระหว่างความชันของแต่ละบุคคลกับความชันที่คาดการณ์ของบุคคลที่มีอายุเพศและระดับการศึกษาเดียวกัน

De Jager, PL, Shulman, JM, Chibnik, LB, Keenan, BT, Raj, T. , Wilson, RS, et al. (2012) จีโนมกว้างสแกนทั่วไปสายพันธุ์ที่มีผลต่ออัตราการที่เกี่ยวข้องกับอายุการลดลงของความรู้ความเข้าใจ ชีววิทยาของวัย, 33 (5), 1017.e1–1017.e15

ฉันดูที่การใช้coefฟังก์ชั่นเพื่อดึงค่าสัมประสิทธิ์สำหรับแต่ละบุคคล แต่ฉันไม่แน่ใจว่านี่เป็นวิธีการที่ถูกต้องที่จะใช้หรือไม่

ใครสามารถให้คำแนะนำเกี่ยวกับวิธีการทำเช่นนี้?

#example R code 
library(lme4)
attach(sleepstudy)  
fml <- lmer(Reaction ~ Days + (Days|Subject), sleepstudy)
beta <- coef(fml)$Subject
colnames(beta) <- c("Intercept", "Slope")
beta

summary(beta)
summary(fm1)

คำตอบ:


29

นางแบบ:

library(lme4)
data(sleepstudy)
fm1 <- lmer(Reaction ~ Days + (Days|Subject), sleepstudy)

ฟังก์ชั่นcoefเป็นวิธีการที่เหมาะสมสำหรับการแยกความแตกต่างระหว่างบุคคล

> coef(fm1)$Subject
    (Intercept)       Days
308    253.6637 19.6662581
309    211.0065  1.8475834
310    212.4449  5.0184067
330    275.0956  5.6529540
331    273.6653  7.3973908
332    260.4446 10.1951151
333    268.2455 10.2436611
334    244.1725 11.5418622
335    251.0714 -0.2848735
337    286.2955 19.0955694
349    226.1950 11.6407008
350    238.3351 17.0814915
351    255.9829  7.4520286
352    272.2687 14.0032989
369    254.6806 11.3395025
370    225.7922 15.2897513
371    252.2121  9.4791308
372    263.7196 11.7513155

ค่าเหล่านี้เป็นการรวมกันของเอฟเฟกต์คงที่และองค์ประกอบความแปรปรวน (เอฟเฟกต์แบบสุ่ม) คุณสามารถใช้summaryและcoefเพื่อรับค่าสัมประสิทธิ์ของผลคงที่

> coef(summary(fm1))[ , "Estimate"]
(Intercept)        Days 
  251.40510    10.46729 

จุดตัดคือ 251.4 และความชัน (สัมพันธ์กับDays) คือ 10.4 ค่าสัมประสิทธิ์เหล่านี้เป็นค่าเฉลี่ยของทุกวิชา ranefที่จะได้รับผลกระทบแบบสุ่มคุณสามารถใช้

> ranef(fm1)$Subject
    (Intercept)        Days
308   2.2585637   9.1989722
309 -40.3985802  -8.6197026
310 -38.9602496  -5.4488792
330  23.6905025  -4.8143320
331  22.2602062  -3.0698952
332   9.0395271  -0.2721709
333  16.8404333  -0.2236248
334  -7.2325803   1.0745763
335  -0.3336936 -10.7521594
337  34.8903534   8.6282835
349 -25.2101138   1.1734148
350 -13.0699598   6.6142055
351   4.5778364  -3.0152574
352  20.8635944   3.5360130
369   3.2754532   0.8722166
370 -25.6128737   4.8224653
371   0.8070401  -0.9881551
372  12.3145406   1.2840295

ค่าเหล่านี้เป็นองค์ประกอบความแปรปรวนของวัตถุ ทุกแถวสอดคล้องกับหนึ่งเรื่อง ค่าเฉลี่ยของแต่ละคอลัมน์เป็นศูนย์ตั้งแต่ค่าที่สอดคล้องกับความแตกต่างที่สัมพันธ์กับผลกระทบคงที่

> colMeans(ranef(fm1)$Subject)
  (Intercept)          Days 
 4.092529e-13 -2.000283e-13 

โปรดทราบว่าค่าเหล่านี้มีค่าเท่ากับศูนย์ส่วนเบี่ยงเบนเกิดจากความไม่ชัดเจนของการแสดงหมายเลขจุดลอยตัว

ผลลัพธ์ของcoef(fm1)$Subjectการเพิ่มเอฟเฟกต์คงที่ลงในเอฟเฟกต์แบบสุ่มคือสัมประสิทธิ์เอฟเฟกต์คงที่จะถูกเพิ่มเข้าไปในเอฟเฟกต์แบบสุ่ม ผลที่ได้คือการสกัดกั้นและความลาดชันของแต่ละบุคคล


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

คุณระบุว่า coef (summary (fm1)) [, "Estimate"] สร้างค่าเฉลี่ยของทุกวิชา ฉันใช้มันเพื่อบ่งบอกถึงการสกัดกั้นคือค่าเฉลี่ยของ "ปฏิกิริยา" แต่ 'เฉลี่ย (sleepstudy $ Reaction) = 298.5079' นี่คือการตีความของการสกัดกั้นในการถดถอยเชิงเส้นและฉันพยายามที่จะเข้าใจค่าสัมประสิทธิ์ในโมเดลเอฟเฟกต์ผสมและฉันพยายามดิ้นรนเพื่อให้ได้สิ่งต่าง ๆ (เช่นนี้เพื่อเพิ่ม) ทำไมการสกัดกั้นไม่ได้ 298.5?
svannoy

@svannoy โปรดทราบว่าการสกัดกั้นเป็นค่าประมาณของตัวแปรตามเมื่อ covariates ทั้งหมดเท่ากับศูนย์ ที่นี่ไม่ได้มีศูนย์กลางอยู่ที่ค่าเฉลี่ยและดังนั้นจึงตัดของรูปแบบที่ต่ำกว่าค่าเฉลี่ยของDays Reactionนอกจากนี้เส้นการถดถอยเป็นแบบเชิงเส้นที่ดีที่สุด ดังนั้นการสังเกตไม่จำเป็นต้องอยู่ในบรรทัดนี้
Sven Hohenstein

@SvenHohenstein ขอบคุณสำหรับการชี้แจงว่า มันถูกต้องหรือไม่ที่จะบอกว่าในการถดถอยของ OLS ด้วยตัวแปรตัวทำนายเชิงหมวดเดียวและการเข้ารหัสค่าเบี่ยงเบน (contr.sum ()) การสกัดกั้นนั้นเป็นค่าเฉลี่ยที่ยิ่งใหญ่ ในขณะที่ RC ถดถอยแบบจำลองการสกัดกั้นการสกัดกั้นคือค่าเฉลี่ยประมาณ?
svannoy

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