จับคู่ t-test เป็นกรณีพิเศษของการสร้างแบบจำลองผลกระทบเชิงเส้นแบบผสม


20

เรารู้ว่าแบบทดสอบt - paired เป็นเพียงกรณีพิเศษของการวัดทางเดียว (หรือในเรื่อง) ANOVA เช่นเดียวกับแบบจำลองผสมเอฟเฟกต์แบบเชิงเส้นซึ่งสามารถแสดงให้เห็นด้วยฟังก์ชัน lme () ในแพ็คเกจ nlme ใน R ดังแสดงด้านล่าง

#response data from 10 subjects under two conditions
x1<-rnorm(10)
x2<-1+rnorm(10)

# Now create a dataframe for lme
myDat <- data.frame(c(x1,x2), c(rep("x1", 10), rep("x2", 10)), rep(paste("S", seq(1,10), sep=""), 2))
names(myDat) <- c("y", "x", "subj")

เมื่อฉันรันการทดสอบ t จับคู่ต่อไปนี้:

t.test(x1, x2, paired = TRUE)

ฉันได้รับผลลัพธ์นี้ (คุณจะได้รับผลลัพธ์ที่แตกต่างเพราะเครื่องกำเนิดไฟฟ้าแบบสุ่ม):

t = -2.3056, df = 9, p-value = 0.04657

ด้วยวิธีการ ANOVA เราสามารถได้ผลลัพธ์เดียวกัน:

summary(aov(y ~ x + Error(subj/x), myDat))

# the F-value below is just the square of the t-value from paired t-test:
          Df  F value Pr(>F)
x          1  5.3158  0.04657

ตอนนี้ฉันสามารถได้ผลลัพธ์เดียวกันใน lme ด้วยโมเดลต่อไปนี้โดยสมมติว่าเมทริกซ์สหสัมพันธ์เชิงบวกแน่นอนที่แน่นอนสำหรับสองเงื่อนไขนี้:

summary(fm1 <- lme(y ~ x, random=list(subj=pdSymm(form=~x-1)), data=myDat))

# the 2nd row in the following agrees with the paired t-test
# (Intercept) -0.2488202 0.3142115  9 -0.7918878  0.4488
# xx2          1.3325786 0.5779727  9  2.3056084  0.0466

หรือโมเดลอื่นสมมติว่าสมมาตรผสมสำหรับเมทริกซ์สหสัมพันธ์ของสองเงื่อนไขนี้:

summary(fm2 <- lme(y ~ x, random=list(subj=pdCompSymm(form=~x-1)), data=myDat))

# the 2nd row in the following agrees with the paired t-test
# (Intercept) -0.2488202 0.4023431  9 -0.618428  0.5516
# xx2          1.3325786 0.5779727  9  2.305608  0.0466

ด้วยการทดสอบ t-test แบบจับคู่และการวัดความแปรปรวนแบบทางเดียวทำให้ฉันสามารถเขียนรูปแบบค่าเฉลี่ยเซลล์แบบดั้งเดิมเป็น

Yij = μ + αi + βj + εij, i = 1, 2; j = 1, ..., 10

โดยที่ i indexes condition, j indexes subject, Y ijคือตัวแปรตอบสนอง, μคงที่สำหรับเอฟเฟกต์คงที่, α iเป็นเอฟเฟกต์คงที่สำหรับเงื่อนไข, β jเป็นเอฟเฟ็กต์แบบสุ่มสำหรับเรื่องต่อไปนี้ N (0, σ p 2 ) (σ p 2คือความแปรปรวนของประชากร) และε ijเป็นค่าคงที่ดังต่อไปนี้ N (0, σ 2 ) (vari 2เป็นความแปรปรวนของเรื่องภายใน)

ฉันคิดว่าโมเดลค่าเฉลี่ยเซลล์ข้างต้นจะไม่เหมาะสมสำหรับโมเดล lme แต่ปัญหาคือฉันไม่สามารถหาโมเดลที่สมเหตุสมผลสำหรับสอง lme () เข้าใกล้ด้วยสมมติฐานโครงสร้างสหสัมพันธ์ เหตุผลก็คือตัวแบบ lme ดูเหมือนจะมีพารามิเตอร์มากกว่าสำหรับส่วนประกอบแบบสุ่มมากกว่าแบบค่าเฉลี่ยเซลล์ที่เสนอข้างต้น อย่างน้อยรุ่น lme ให้ค่า F-value, องศาอิสระและ p-value เท่ากันซึ่ง gls ไม่สามารถทำได้ โดยเฉพาะอย่างยิ่ง gls ให้ DF ที่ไม่ถูกต้องเนื่องจากข้อเท็จจริงที่ว่ามันไม่ได้คำนึงถึงความจริงที่ว่าแต่ละเรื่องมีสองข้อสังเกตซึ่งนำไปสู่ ​​DF ที่สูงเกินจริงมาก โมเดล lme น่าจะเป็นพารามิเตอร์มากเกินไปในการระบุเอฟเฟกต์แบบสุ่ม แต่ฉันไม่รู้ว่าตัวแบบคืออะไรและพารามิเตอร์คืออะไร ดังนั้นปัญหายังไม่ได้รับการแก้ไขสำหรับฉัน


2
ไม่แน่ใจว่าสิ่งที่คุณถาม แบบจำลองที่คุณจดไว้เป็นแบบจำลองสำหรับโมเดลเอฟเฟกต์สุ่ม โครงสร้างความสัมพันธ์ถูกชักนำโดยผลแบบสุ่ม
Aaron - Reinstate Monica

@Aaron: การสุ่มเอฟเฟกต์βjในโมเดลค่าเฉลี่ยเซลล์ควรจะเป็นไปตาม N (0, 2p2) ความสับสนของฉันคือระยะนี้ (มีเพียงพารามิเตอร์เดียวσp2) ที่เกี่ยวข้องกับโครงสร้างความสัมพันธ์ที่ระบุโดยสมมาตรผสมหรือเมทริกซ์สมมาตรอย่างง่ายในรูปแบบ lme อย่างไร
bluepole

เมื่อคุณคำนวณความสัมพันธ์ระหว่างการสังเกตสองรายการในเรื่องเดียวกันความสัมพันธ์คือ sigma_p ^ 2 / (sigma_p ^ 2 + sigma ^ 2) เพราะพวกเขาแบ่งปัน beta_j เดียวกัน ดู Pinheiro / Bates หน้า 8 นอกจากนี้โมเดลเอฟเฟกต์แบบสุ่มตามที่คุณเขียนไว้จะเทียบเท่ากับสมมาตรผสม โครงสร้างความสัมพันธ์อื่น ๆ มีความซับซ้อนมากขึ้น
Aaron - Reinstate Monica

@Aaron: ขอบคุณ! ฉันได้อ่านหนังสือ Pinheiro / Bates เกี่ยวกับเรื่องนี้แล้วและยังไม่สามารถระบุข้อมูลเฉพาะเกี่ยวกับเอฟเฟกต์แบบสุ่มได้ ดูเหมือนหน้าเว็บที่เกี่ยวข้องมากขึ้นจะเป็นตัวอย่างที่หน้า 160-161 ยิ่งไปกว่านั้นการสุ่มเอฟเฟ็กต์เอาต์พุตจาก lme () ที่มีข้อสมมติสมมาตรแบบผสมนั้นดูเหมือนจะไม่สอดคล้องกับความสัมพันธ์ของσp2 / (σp2 + σ2) ในโมเดลค่าเฉลี่ยของเซลล์ ยังคงงงงันเกี่ยวกับโครงสร้างของโมเดล
bluepole

เกือบเทียบเท่ากับสมมาตรผสม ใน CS ความสัมพันธ์อาจเป็นลบ แต่ไม่ใช่ด้วยเอฟเฟกต์แบบสุ่ม บางทีนั่นอาจเป็นสิ่งที่ทำให้เกิดความแตกต่าง ดูstats.stackexchange.com/a/14185/3601สำหรับรายละเอียด
Aaron - Reinstate Monica

คำตอบ:


16

ความเท่าเทียมกันของแบบจำลองสามารถสังเกตได้โดยการคำนวณความสัมพันธ์ระหว่างการสังเกตสองแบบจากบุคคลเดียวกันดังนี้:

YผมJ=μ+αผม+βJ+εผมJβJ~ยังไม่มีข้อความ(0,σพี2)εผมJ~ยังไม่มีข้อความ(0,σ2)โอโวลต์(Yผมk,YJk)=โอโวลต์(μ+αผม+βk+εผมk,μ+αJ+βk+εJk)=โอโวลต์(βk,βk)=σพี2VaR(Yผมk)=VaR(YJk)=σพี2+σ2σพี2/(σพี2+σ2)

โปรดทราบว่าแบบจำลองนั้นไม่เทียบเท่ากันเนื่องจากตัวแบบเอฟเฟกต์แบบสุ่มบังคับให้ค่าสหสัมพันธ์เป็นบวก โมเดล CS และโมเดล t-test / anova ทำไม่ได้

แก้ไข: มีความแตกต่างอื่น ๆ สองเช่นกัน ขั้นแรกให้ CS และโมเดลเอฟเฟกต์สุ่มถือว่าเป็นปกติสำหรับเอฟเฟกต์แบบสุ่ม แต่โมเดล t-test / anova ไม่ได้ทำ ประการที่สอง CS และโมเดลเอฟเฟกต์แบบสุ่มนั้นเหมาะกับการใช้โอกาสสูงสุดในขณะที่โนวานั้นเหมาะสมกับการใช้กำลังสองเฉลี่ย เมื่อทุกอย่างสมดุลพวกเขาจะเห็นด้วย แต่ไม่จำเป็นต้องอยู่ในสถานการณ์ที่ซับซ้อนมากขึ้น ในที่สุดฉันก็ระวังที่จะใช้ค่า F / df / p จากหลากหลายที่เหมาะสมกับการวัดว่าตัวแบบเห็นด้วยมากแค่ไหน ดูรายละเอียดที่น่าสนใจของดั๊กเบตส์เกี่ยวกับ df สำหรับรายละเอียดเพิ่มเติม (แก้ไขครั้งสุดท้าย)

ปัญหาเกี่ยวกับRรหัสของคุณคือคุณไม่ได้ระบุโครงสร้างความสัมพันธ์อย่างถูกต้อง คุณต้องใช้glsกับcorCompSymmโครงสร้างความสัมพันธ์

สร้างข้อมูลเพื่อให้มีเอฟเฟกต์ของวัตถุ:

set.seed(5)
x <- rnorm(10)
x1<-x+rnorm(10)
x2<-x+1 + rnorm(10)
myDat <- data.frame(c(x1,x2), c(rep("x1", 10), rep("x2", 10)), 
                    rep(paste("S", seq(1,10), sep=""), 2))
names(myDat) <- c("y", "x", "subj")

นี่คือวิธีที่คุณจะใส่เอฟเฟกต์แบบสุ่มและโมเดลสมมาตรแบบผสม

library(nlme)
fm1 <- lme(y ~ x, random=~1|subj, data=myDat)
fm2 <- gls(y ~ x, correlation=corCompSymm(form=~1|subj), data=myDat)

ข้อผิดพลาดมาตรฐานจากโมเดลเอฟเฟกต์แบบสุ่มคือ:

m1.varp <- 0.5453527^2
m1.vare <- 1.084408^2

และความสัมพันธ์และความแปรปรวนที่เหลือจากแบบจำลอง CS คือ:

m2.rho <- 0.2018595
m2.var <- 1.213816^2

และพวกเขาก็เท่ากับสิ่งที่คาดหวัง:

> m1.varp/(m1.varp+m1.vare)
[1] 0.2018594
> sqrt(m1.varp + m1.vare)
[1] 1.213816

โครงสร้างความสัมพันธ์อื่น ๆ มักจะไม่เหมาะสมกับผลแบบสุ่ม แต่เพียงโดยการระบุโครงสร้างที่ต้องการ; ข้อยกเว้นทั่วไปอย่างหนึ่งคือ AR (1) + โมเดลเอฟเฟกต์แบบสุ่มซึ่งมีเอฟเฟกต์แบบสุ่มและ AR (1) สหสัมพันธ์ระหว่างการสังเกตในเอฟเฟกต์แบบสุ่มเดียวกัน

แก้ไข 2: เมื่อฉันพอดีกับสามตัวเลือกฉันได้รับผลลัพธ์เดียวกันทั้งหมดยกเว้นว่า gls จะไม่พยายามเดา df สำหรับเทอมที่สนใจ

> summary(fm1)
...
Fixed effects: y ~ x 
                 Value Std.Error DF   t-value p-value
(Intercept) -0.5611156 0.3838423  9 -1.461839  0.1778
xx2          2.0772757 0.4849618  9  4.283380  0.0020

> summary(fm2)
...
                 Value Std.Error   t-value p-value
(Intercept) -0.5611156 0.3838423 -1.461839  0.1610
xx2          2.0772757 0.4849618  4.283380  0.0004

> m1 <- lm(y~ x + subj, data=myDat)
> summary(m1)
...
            Estimate Std. Error t value Pr(>|t|)   
(Intercept)  -0.3154     0.8042  -0.392  0.70403   
xx2           2.0773     0.4850   4.283  0.00204 **

(การสกัดกั้นนั้นแตกต่างกันตรงนี้เนื่องจากการเข้ารหัสเริ่มต้นไม่ใช่ค่าเฉลี่ยของทุกวิชา แต่เป็นค่าเฉลี่ยของหัวข้อแรก)

นอกจากนี้ยังเป็นที่สนใจที่จะทราบว่าlme4แพคเกจที่ใหม่กว่านั้นให้ผลลัพธ์เดียวกัน แต่ไม่ได้พยายามคำนวณค่า p

> mm1 <- lmer(y ~ x + (1|subj), data=myDat)
> summary(mm1)
...
            Estimate Std. Error t value
(Intercept)  -0.5611     0.3838  -1.462
xx2           2.0773     0.4850   4.283

ขอบคุณอีกครั้งสำหรับความช่วยเหลือ! ฉันรู้ส่วนนี้จากมุมมองของตัวแบบเฉลี่ยเซลล์ อย่างไรก็ตามด้วยผลลัพธ์ต่อไปนี้จาก lme () ที่มีความสมมาตรแบบผสม: ผลแบบสุ่ม: สูตร: ~ x - 1 | subj โครงสร้าง: Compound Symmetry StdDev xx1 1.1913363 xx2 1.1913363 Corr: -0.036 ที่เหลือ 0.4466733 ฉันยังไม่สามารถกระทบยอดตัวเลขเหล่านี้ได้ด้วยโมเดลค่าเฉลี่ยเซลล์ บางทีคุณสามารถช่วยฉันจัดเรียงตัวเลขเหล่านี้เพิ่มเติมได้?
bluepole

นอกจากนี้ยังมีความคิดเห็นเกี่ยวกับการกำหนดโมเดลด้วยโครงสร้างความสัมพันธ์อื่นเช่นเมทริกซ์สมมาตรอย่างง่ายหรือไม่
bluepole

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

หลังจากความคิดที่สองฉันรู้สึกว่าความสับสนดั้งเดิมของฉันยังคงไม่ได้รับการแก้ไข ใช่ gls สามารถนำมาใช้เพื่อแสดงให้เห็นถึงโครงสร้างความสัมพันธ์และค่าเฉลี่ยกำลังสอง rums แต่โมเดลที่อยู่ภายใต้มันไม่เหมือนกับการทดสอบ paired-t (หรือการวัดความแปรปรวนแบบทางเดียวแบบซ้ำ) และการประเมินดังกล่าวคือ สนับสนุนเพิ่มเติมโดย DF และ p-value ที่ไม่ถูกต้องจาก gls ในทางตรงกันข้ามคำสั่ง lme ของฉันพร้อมสมมาตรแบบผสมให้ค่า F, DFs และ p-value เหมือนกัน สิ่งเดียวที่ฉันสับสนเกี่ยวกับคือโมเดล lme ถูกกำหนดพารามิเตอร์ตามที่ระบุไว้ในโพสต์ดั้งเดิมของฉัน มีความช่วยเหลืออะไรบ้าง?
bluepole

ไม่แน่ใจว่าจะช่วยคุณได้อย่างไร คุณช่วยเขียนสิ่งที่คุณคิดว่าทั้งสองรุ่นแตกต่างกันอย่างไร มีบางอย่างผิดปกติในการคิดของคุณหนึ่งในนั้น
Aaron - Reinstate Monica

3

คุณอาจพิจารณาใช้ฟังก์ชันmixedในแพ็คเกจafexเพื่อส่งคืนค่า p ด้วยการประมาณ Kenward-Roger df ซึ่งส่งคืนค่า p ที่เหมือนกันเป็นแบบทดสอบ t ที่จับคู่:

library(afex)
mixed(y ~ x + (1|subj), type=3,method="KR",data=myDat) 

หรือ

library(lmerTest)
options(contrasts=c('contr.sum', 'contr.poly'))
anova(lmer(y ~ x + (1|subj),data=myDat),ddf="Kenward-Roger")
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.