จะทำการทดสอบหลังการขายรุ่น lmer ได้อย่างไร?


18

นี่คือกรอบข้อมูลของฉัน:

Group   <- c("G1","G1","G1","G1","G1","G1","G1","G1","G1","G1","G1","G1","G1","G1","G1","G2","G2","G2","G2","G2","G2","G2","G2","G2","G2","G2","G2","G2","G2","G2","G3","G3","G3","G3","G3","G3","G3","G3","G3","G3","G3","G3","G3","G3","G3")
Subject <- c("S1","S2","S3","S4","S5","S6","S7","S8","S9","S10","S11","S12","S13","S14","S15","S1","S2","S3","S4","S5","S6","S7","S8","S9","S10","S11","S12","S13","S14","S15","S1","S2","S3","S4","S5","S6","S7","S8","S9","S10","S11","S12","S13","S14","S15")
Value   <- c(9.832217741,13.62390117,13.19671612,14.68552076,9.26683366,11.67886655,14.65083473,12.20969772,11.58494621,13.58474896,12.49053635,10.28208078,12.21945867,12.58276212,15.42648969,9.466436017,11.46582655,10.78725485,10.66159358,10.86701127,12.97863424,12.85276916,8.672953949,10.44587257,13.62135205,13.64038394,12.45778874,8.655142642,10.65925259,13.18336949,11.96595556,13.5552118,11.8337142,14.01763101,11.37502161,14.14801305,13.21640866,9.141392359,11.65848845,14.20350364,14.1829714,11.26202565,11.98431285,13.77216009,11.57303893)

data <- data.frame(Group, Subject, Value)

จากนั้นฉันเรียกใช้แบบจำลองเอฟเฟกต์แบบเชิงเส้นเพื่อเปรียบเทียบความแตกต่างของ 3 กลุ่มใน "ค่า" โดยที่ "หัวเรื่อง" เป็นปัจจัยแบบสุ่ม:

library(lme4)
library(lmerTest)
model <- lmer (Value~Group + (1|Subject), data = data)
summary(model)

ผลลัพธ์ที่ได้คือ:

Fixed effects:
            Estimate Std. Error       df t value Pr(>|t|)    
(Intercept) 12.48771    0.42892 31.54000  29.114   <2e-16 ***
GroupG2     -1.12666    0.46702 28.00000  -2.412   0.0226 *  
GroupG3      0.03828    0.46702 28.00000   0.082   0.9353    

อย่างไรก็ตามจะเปรียบเทียบ Group2 กับ Group3 ได้อย่างไร การประชุมในบทความวิชาการคืออะไร?

คำตอบ:


16

คุณสามารถใช้emmeans::emmeans()หรือหรือlmerTest::difflsmeans()multcomp::glht()

ฉันชอบemmeans(ก่อนหน้านี้lsmeans)

library(emmeans)
emmeans(model, list(pairwise ~ Group), adjust = "tukey")

หมายเหตุdifflsmeansไม่สามารถแก้ไขการเปรียบเทียบหลาย ๆ แบบได้และใช้วิธี Satterthwaite สำหรับการคำนวณองศาอิสระเป็นค่าเริ่มต้นแทนที่จะเป็นวิธี Kenward-Roger ที่ใช้โดย emmeans

library(lmerTest)
difflsmeans(model, test.effs = "Group")

multcomp::glht()วิธีการที่อธิบายไว้ในคำตอบอื่น ๆ คำถามนี้โดยสับ-R

นอกจากนี้คุณยังจะได้รับ ANOVA P-ค่าโดยการโหลดแล้วใช้lmerTestanova

library(lmerTest)
anova(model)

เพื่อให้ชัดเจนคุณตั้งใจให้ประเมินค่าสามครั้งสำหรับแต่ละวิชาใช่ไหม ดูเหมือนว่ากลุ่มจะเป็นแบบภายในไม่ใช่แบบระหว่างวิชา


1
ผมแค่อยากจะเพิ่มการตอบสนองของ Kayle เลื่อยว่าแพคเกจlsmeansจะถูกเลิกในความโปรดปรานของemmeans
Downhiller

หมายเหตุถ้าคุณระบุไลบรารีคุณต้องใช้ lmerTest :: lmer (), ไม่ใช่ lme4 :: lmer () สำหรับ anova () เพื่อแสดงค่า p
Kayle Sawyer

11

หลังจากที่คุณได้พอดีกับlmerแบบจำลองของคุณคุณสามารถทำ ANOVA, MANOVA และขั้นตอนการเปรียบเทียบหลายอย่างในวัตถุแบบจำลองเช่นนี้:

library(multcomp)
summary(glht(model, linfct = mcp(Group = "Tukey")), test = adjusted("holm"))
   Simultaneous Tests for General Linear Hypotheses

Multiple Comparisons of Means: Tukey Contrasts


Fit: lmer(formula = Value ~ Group + (1 | Subject), data = data)

Linear Hypotheses:
             Estimate Std. Error z value Pr(>|z|)  
G2 - G1 == 0 -1.12666    0.46702  -2.412   0.0378 *
G3 - G1 == 0  0.03828    0.46702   0.082   0.9347  
G3 - G2 == 0  1.16495    0.46702   2.494   0.0378 *
---
Signif. codes:  0***0.001**0.01*0.05 ‘.’ 0.1 ‘ ’ 1
(Adjusted p values reported -- holm method)

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


ขอขอบคุณ. แต่การปรับแบบไหนที่ใช้จริง ทูกี้หรือโฮล์ม? ทำไมทั้งคู่จึงปรากฏในการทดสอบหลังการสอบ?
Ping Tang Tang

@ PingTang ยินดีต้อนรับ เป็นการแก้ไขแบบ Bonferroni-Holm ของการเปรียบเทียบแบบหลายคู่ทุกคู่ นั่นเป็นเพียงตัวเลือกเดียวแน่นอน summary(glht(model, linfct = mcp(Group = "Tukey")))นอกจากนี้คุณยังสามารถทำ หากคุณต้องการดูคำอธิบายทางวิชาการ / สถิติแบบเต็มของการทดสอบต่างๆที่สามารถดำเนินการได้ให้ตรวจสอบข้อมูลอ้างอิงใน?glhtและmulticompโดยทั่วไป ฉันคิดว่า Hsu 1996 น่าจะเป็นคนหลัก
Hack-R

3
@ PingTang, mcpฟังก์ชั่น, Group = Tukeyเพียงแค่หมายถึงการเปรียบเทียบกลุ่มคู่ในกลุ่มตัวแปร "กลุ่ม" มันไม่ได้แปลว่าการปรับ Tukey
Sal Mangiafico
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.