รับองศาอิสระจาก lmer


11

ฉันเหมาะสมกับโมเดล lmer ด้วยสิ่งต่อไปนี้ (แม้ว่าจะเป็นเอาต์พุต):

Random effects:
 Groups        Name        Std.Dev.
 day:sample (Intercept)    0.09
 sample        (Intercept) 0.42
 Residual                  0.023 

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

(n-1)s2χα/2,n-12,(n-1)s2χ1-α/2,n-12

มีวิธีที่จะออกจากองศาอิสระอย่างสะดวกสบายไหม


1
ฉันคิดว่าคุณต้องการตรวจสอบlmerTest มีจำนวนประมาณที่จะประมาณค่า df ในโมเดลผสมเอฟเฟกต์สำหรับเอฟเฟกต์คงที่ (เช่นSatterthwaite , Kenward-Roger, ฯลฯ ) สำหรับกรณีของคุณดูเหมือนว่าฉันจะเข้าใจชีวิตของคุณมากเกินไป คุณถือว่าแต่ละเอฟเฟ็กต์เป็นเกาส์เซียน เพียงใช้ค่าเบี่ยงเบนมาตรฐานเพื่อรับช่วงความมั่นใจที่คุณเลือก
usεr11852

3
@ usεr11852ในรูปแบบเอฟเฟกต์แบบผสมคุณคิดว่าแต่ละเอฟเฟกต์เป็นแบบเกาส์น แต่พารามิเตอร์นั้นคือความแปรปรวนของการแจกแจงแบบเกาส์ไม่ใช่ค่าเฉลี่ย ดังนั้นการแจกแจงของตัวประมาณจะเบ้มากและช่วงความเชื่อมั่นเบี่ยงเบนมาตรฐาน± ~ 2 ปกติจะไม่เหมาะสม
Karl Ove Hufthammer

1
@KarlOveHufthammer: คุณมีสิทธิ์ที่จะชี้ประเด็นนี้ ฉันเห็นสิ่งที่คุณ (และอาจจะ OP) หมายถึง ฉันคิดว่าเขาเป็นกังวลเกี่ยวกับวิธีการและ / หรือการตระหนักถึงผลกระทบแบบสุ่มในขณะที่เขาพูดถึงองศาอิสระ
usεr11852

องศาอิสระคือ "ปัญหา" สำหรับโมเดลผสมดู: stat.ethz.ch/pipermail/r-help/2006-May/094765.htmlและstats.stackexchange.com/questions/84268/ …
ทิม

คำตอบ:


17

ฉันเพียง แต่จะสร้างช่วงเวลาความมั่นใจโอกาสของโปรไฟล์ มีความน่าเชื่อถือและสามารถคำนวณได้ง่ายโดยใช้แพ็คเกจ 'lme4' ตัวอย่าง:

> library(lme4)
> fm = lmer(Reaction ~ Days + (Days | Subject),
            data=sleepstudy)
> summary(fm)
[]
Random effects:
 Groups   Name        Variance Std.Dev. Corr
 Subject  (Intercept) 612.09   24.740       
          Days         35.07    5.922   0.07
 Residual             654.94   25.592       

ตอนนี้คุณสามารถคำนวณช่วงความเชื่อมั่นของโปรไฟล์ได้ด้วยconfint()ฟังก์ชัน:

> confint(fm, oldNames=FALSE)
Computing profile confidence intervals ...
                               2.5 %  97.5 %
sd_(Intercept)|Subject        14.381  37.716
cor_Days.(Intercept)|Subject  -0.482   0.685
sd_Days|Subject                3.801   8.753
sigma                         22.898  28.858
(Intercept)                  237.681 265.130
Days                           7.359  13.576

คุณยังสามารถใช้พารามิเตอร์บูตเพื่อคำนวณช่วงความมั่นใจ นี่คือไวยากรณ์ R (ใช้parmอาร์กิวเมนต์เพื่อ จำกัด พารามิเตอร์ที่เราต้องการช่วงความมั่นใจ):

> confint(fm, method="boot", nsim=1000, parm=1:3)
Computing bootstrap confidence intervals ...
                              2.5 % 97.5 %
sd_(Intercept)|Subject       11.886 35.390
cor_Days.(Intercept)|Subject -0.504  0.929
sd_Days|Subject               3.347  8.283

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


1
คำตอบที่ดี (+1) ฉันยังจะพูดถึงความจริงที่ว่าหนึ่งสามารถรับ CIs จากbootstrap พารามิเตอร์ในกรณีนี้ นี้ด้ายมีการอภิปรายที่น่าสนใจมากในเรื่องนี้
usεr11852

@ usεr11852ขอบคุณสำหรับคำแนะนำ ตอนนี้ฉันได้เพิ่มตัวอย่างโดยใช้พารามิเตอร์บูต
Karl Ove Hufthammer

6

องศาสำหรับอิสระสำหรับโมเดลผสมคือ "มีปัญหา" สำหรับการอ่านเพิ่มเติมเกี่ยวกับเรื่องนี้คุณสามารถตรวจสอบlmer ค่า p และโพสต์ทั้งหมดที่ดักลาสเบตส์ นอกจากนี้R-sig-ผสมรูปแบบคำถามที่พบบ่อยสรุปเหตุผลที่ว่าทำไมมันเป็นเรื่องน่ารำคาญ:

  • โดยทั่วไปยังไม่ชัดเจนว่าการแจกแจงโมฆะของอัตราส่วนที่คำนวณได้จากผลบวกของกำลังสองนั้นเป็นการกระจายแบบ F จริง ๆ สำหรับทางเลือกขององศาอิสระของตัวส่วนใด ๆ ในขณะที่สิ่งนี้เป็นจริงสำหรับกรณีพิเศษที่สอดคล้องกับการออกแบบการทดลองแบบคลาสสิก (แบบซ้อนแยกส่วนบล็อกแบบสุ่ม ฯลฯ ) ดูเหมือนว่าไม่เป็นความจริงสำหรับการออกแบบที่ซับซ้อนมากขึ้น (ไม่สมดุล GLMM ความสัมพันธ์ชั่วคราวหรือเชิงพื้นที่เป็นต้น)
  • สำหรับสูตรองศาอิสระอย่างง่าย ๆ ที่ได้รับการแนะนำ (ร่องรอยของเมทริกซ์ของหมวก ฯลฯ ) ดูเหมือนว่าจะมีตัวอย่างแบบง่าย ๆ อย่างน้อยหนึ่งตัวอย่างที่สูตรไม่ดี
  • รูปแบบการประมาณค่า df อื่น ๆ ที่ได้รับการแนะนำ (Satterthwaite, Kenward-Roger, ฯลฯ ) ดูเหมือนจะค่อนข้างยากที่จะนำมาใช้ใน lme4 / nlme,
    (... )
  • เนื่องจากผู้เขียนหลักของ lme4 ไม่มั่นใจในประโยชน์ของวิธีการทดสอบทั่วไปโดยอ้างอิงจากการแจกแจงโมฆะโดยประมาณและเนื่องจากค่าใช้จ่ายของผู้อื่นที่ขุดลงในรหัสเพื่อเปิดใช้งานฟังก์ชั่นที่เกี่ยวข้อง (เช่นแพทช์หรือเพิ่ม - บน) สถานการณ์นี้ไม่น่าจะเปลี่ยนแปลงได้ในอนาคต

คำถามที่พบบ่อยให้ทางเลือกบางอย่าง

  • ใช้ MASS :: glmmPQL (ใช้กฎ nlme แบบเก่าโดยประมาณเทียบเท่ากับกฎ 'Inner-outer' ของ SAS) สำหรับ GLMM หรือ (n) lme สำหรับ LMM
  • เดาตัวส่วน df จากกฎมาตรฐาน (สำหรับการออกแบบมาตรฐาน) และใช้กับการทดสอบ t หรือ F
  • รันโมเดลใน lme (ถ้าเป็นไปได้) และใช้ตัวหาร df ที่รายงาน (ซึ่งเป็นไปตามกฎ 'Inner-outer' แบบเรียบง่ายซึ่งควรสอดคล้องกับคำตอบที่ยอมรับได้สำหรับการออกแบบแบบ orthogonal) ใช้กับการทดสอบ t หรือ F สำหรับข้อกำหนดที่ชัดเจนของกฎที่ lme ใช้ดูที่หน้า 91 ของ Pinheiro และ Bates - หน้านี้มีอยู่ใน Google หนังสือ
  • ใช้ SAS, Genstat (AS-REML), Stata หรือไม่
  • สมมติว่าตัวส่วนอนันต์ df (เช่นการทดสอบ Z / chi-squared มากกว่า t / F) ถ้าจำนวนของกลุ่มมีขนาดใหญ่ (> 45? กฎต่าง ๆ ของหัวแม่มือสำหรับวิธีการที่มีขนาดใหญ่ "ประมาณอนันต์" ถูกวางรวมถึง [ใน Angrist และ Pischke '' เศรษฐมิติที่ไม่เป็นอันตรายมากที่สุด ''], 42 (เป็นการแสดงความเคารพต่อดักลาสอดัมส์)

แต่ถ้าคุณสนใจในช่วงความเชื่อมั่นมีวิธีที่ดีกว่าเช่นบนพื้นฐานของ bootstrap ตามคำแนะนำของKarl Ove Hufthammerในคำตอบของเขาหรือวิธีที่เสนอในคำถามที่พบบ่อย


"เดาตัวส่วน df จากกฎมาตรฐาน (สำหรับการออกแบบมาตรฐาน) และใช้กับการทดสอบ t หรือ F"; ฉันต้องการถ้ามีคนอธิบายรายละเอียดเกี่ยวกับเรื่องนี้ ตัวอย่างเช่นสำหรับการออกแบบที่ซ้อนกัน (f. เช่นผู้ป่วยกับการควบคุมหลายตัวอย่างต่อเรื่องโดยที่หัวเรื่องของ ID เป็นเอฟเฟกต์แบบสุ่ม) เราจะได้รับองศาความเป็นอิสระสำหรับการออกแบบดังกล่าวได้อย่างไร
Arnaud
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.