Paired t-test sebagai kasus khusus pemodelan efek campuran linier


20

Kita tahu bahwa uji- t berpasangan hanyalah kasus khusus dari ANOVA langkah-langkah berulang satu arah (atau dalam subjek) serta model efek campuran linier, yang dapat ditunjukkan dengan fungsi lme () yang berfungsi sebagai paket nlme dalam R seperti yang ditunjukkan di bawah ini.

#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")

Ketika saya menjalankan uji-t berpasangan berikut:

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

Saya mendapat hasil ini (Anda akan mendapatkan hasil yang berbeda karena generator acak):

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

Dengan pendekatan ANOVA kita bisa mendapatkan hasil yang sama:

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

Sekarang saya dapat memperoleh hasil yang sama dalam lme dengan model berikut, dengan asumsi matriks korelasi simetris positif-pasti untuk dua kondisi:

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

Atau model lain, dengan asumsi simetri gabungan untuk matriks korelasi dua kondisi:

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

Dengan uji-t berpasangan dan ANOVA pengukuran berulang satu arah, saya dapat menuliskan model rata-rata sel tradisional sebagai

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

di mana i mengindeks kondisi, j indeks subjek, Y ij adalah variabel respon, μ konstan untuk efek tetap untuk rata-rata keseluruhan, α i adalah efek tetap untuk kondisi, β j adalah efek acak untuk subjek berikut N (0, σ hal 2 ) (σ hal 2 adalah varians populasi), dan ε ij adalah residual setelah N (0, σ 2 ) (σ 2 adalah varians dalam subjek).

Saya berpikir bahwa model sel rata-rata di atas tidak akan sesuai untuk model lme, tetapi masalahnya adalah bahwa saya tidak dapat datang dengan model yang masuk akal untuk pendekatan dua lme ​​() dengan asumsi struktur korelasi. Alasannya adalah bahwa model lme tampaknya memiliki lebih banyak parameter untuk komponen acak daripada model rata-rata sel yang ditawarkan di atas. Setidaknya model lme memberikan nilai-F yang persis sama, derajat kebebasan, dan nilai-p juga, yang tidak bisa. Lebih khusus, gls memberikan DF yang salah karena fakta bahwa itu tidak menjelaskan fakta bahwa setiap subjek memiliki dua pengamatan, yang mengarah ke banyak DF yang meningkat. Model lme kemungkinan besar overparameter dalam menentukan efek acak, tapi saya tidak tahu apa modelnya dan apa parameternya. Jadi masalah ini masih belum terselesaikan bagi saya.


2
Tidak yakin apa yang Anda tanyakan. Model yang Anda tulis adalah tepat untuk model efek acak; struktur korelasi diinduksi oleh efek acak.
Aaron - Pasang kembali Monica

@ Harun: efek acak βj dalam model rata-rata sel seharusnya mengikuti N (0, σp2). Kebingungan saya adalah, bagaimana istilah ini (dengan hanya satu parameter σp2) dikaitkan dengan struktur korelasi yang ditentukan oleh salah satu senyawa simetri atau matriks simetris sederhana dalam model lme?
bluepole

Saat Anda menghitung korelasi antara dua pengamatan pada subjek yang sama, korelasinya adalah sigma_p ^ 2 / (sigma_p ^ 2 + sigma ^ 2) karena keduanya memiliki beta_j yang sama. Lihat Pinheiro / Bates hal.8. Juga, model efek acak seperti yang Anda tulis itu setara dengan simetri gabungan; struktur korelasi lainnya lebih kompleks.
Aaron - Pasang kembali Monica

@ Harun: Terima kasih! Saya sudah membaca buku Pinheiro / Bates tentang ini, dan masih belum bisa mengetahui secara spesifik tentang efek acak. Halaman yang lebih relevan tampaknya menjadi contoh di P.160-161. Juga, efek acak keluaran dari lme () dengan asumsi simetri majemuk tampaknya tidak setuju dengan korelasi σp2 / (σp2 + σ2) dalam model rata-rata sel. Masih bingung tentang struktur model.
bluepole

Yah, hampir setara dengan simetri gabungan; dalam CS korelasinya bisa negatif tetapi tidak dengan efek acak. Mungkin di situlah perbedaan Anda muncul. Lihat stats.stackexchange.com/a/14185/3601 untuk detailnya.
Aaron - Pasang kembali Monica

Jawaban:


16

Kesetaraan model dapat diamati dengan menghitung korelasi antara dua pengamatan dari individu yang sama, sebagai berikut:

Ysayaj=μ+αsaya+βj+ϵsayajβjN(0,σhal2)ϵsayajN(0,σ2)CHaiv(ysayak,yjk)=CHaiv(μ+αsaya+βk+ϵsayak,μ+αj+βk+ϵjk)=CHaiv(βk,βk)=σhal2VSebuahr(ysayak)=VSebuahr(yjk)=σhal2+σ2σhal2/(σhal2+σ2)

Perhatikan bahwa model tersebut tidak cukup setara karena model efek acak memaksa korelasi menjadi positif. Model CS dan model t-test / anova tidak.

EDIT: Ada dua perbedaan lain juga. Pertama, CS dan model efek acak mengasumsikan normalitas untuk efek acak, tetapi model t-test / anova tidak. Kedua, CS dan model efek acak cocok menggunakan kemungkinan maksimum, sedangkan anova cocok menggunakan kotak rata-rata; ketika semuanya seimbang mereka akan setuju, tetapi tidak harus dalam situasi yang lebih kompleks. Akhirnya, saya akan berhati-hati dalam menggunakan nilai-nilai F / df / p dari berbagai kecocokan sebagai ukuran seberapa banyak model setuju; lihat screed terkenal Doug Bates di df untuk lebih jelasnya. (AKHIR EDIT)

Masalah dengan Rkode Anda adalah Anda tidak menentukan struktur korelasi dengan benar. Anda perlu menggunakan glsdengancorCompSymm struktur korelasi.

Hasilkan data sehingga ada efek subjek:

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")

Maka inilah bagaimana Anda akan cocok dengan efek acak dan model simetri gabungan.

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

Kesalahan standar dari model efek acak adalah:

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

Dan varians korelasi dan residual dari model CS adalah:

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

Dan mereka sama dengan apa yang diharapkan:

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

Struktur korelasi lainnya biasanya tidak cocok dengan efek acak tetapi hanya dengan menentukan struktur yang diinginkan; satu pengecualian umum adalah AR (1) + model efek acak, yang memiliki efek acak dan korelasi AR (1) antara pengamatan pada efek acak yang sama.

EDIT2: Ketika saya cocok dengan tiga opsi, saya mendapatkan hasil yang persis sama kecuali bahwa gls tidak mencoba menebak df untuk jangka waktu yang diinginkan.

> 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 **

(Intersepsi berbeda di sini karena dengan pengkodean default, ini bukan berarti semua subjek, tetapi rata-rata subjek pertama.)

Sangat menarik untuk dicatat bahwa lme4paket yang lebih baru memberikan hasil yang sama tetapi bahkan tidak mencoba untuk menghitung nilai 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

Sekali lagi terima kasih atas bantuannya! Saya tahu bagian ini dari perspektif model sel rata-rata. Namun, dengan hasil sebagai berikut dari lme () dengan simetri senyawa: Efek acak: Formula: ~ x - 1 | Struktur Subjek: Compound Symmetry StdDev xx1 1.1913363 xx2 1.1913363 Corr: -0.036 Sisa 0.4466733. Saya masih tidak bisa merekonsiliasi angka-angka ini dengan model rata-rata sel. Mungkin Anda bisa membantu saya memilah angka-angka ini?
bluepole

Juga, ada pemikiran tentang formulasi model dengan struktur korelasi lainnya seperti matriks simetris sederhana?
bluepole

Saya melihat! Seharusnya saya membaca respons Anda di utas lainnya dengan lebih hati-hati. Saya berpikir tentang menggunakan gls () sebelumnya, tetapi gagal mengetahui spesifikasi korelasinya. Sangat menarik bahwa lme ​​() dengan struktur simetri gabungan untuk efek acak masih membuat nilai-t yang sama, tetapi tampaknya varians untuk efek acak tidak langsung dapat ditafsirkan. Saya sangat menghargai bantuan Anda!
bluepole

Setelah berpikir 2 kali, saya merasa bahwa kebingungan asli saya masih belum terselesaikan. Ya, gls dapat digunakan untuk menunjukkan struktur korelasi dan rum kuadrat rata-rata, tetapi model di bawahnya tidak persis sama dengan uji berpasangan-t (atau ANOVA pengukuran berulang satu arah secara umum), dan penilaian semacam itu adalah selanjutnya didukung oleh DF yang salah dan nilai-p dari gls. Sebaliknya, perintah lme saya dengan simetri gabungan memberikan nilai F, DF, dan p yang sama. Satu-satunya hal yang membuat saya bingung adalah bagaimana model lme diparameterisasi seperti yang dinyatakan dalam posting asli saya. Ada bantuan di luar sana?
bluepole

Tidak yakin bagaimana membantu Anda. Bisakah Anda menuliskan dua model yang Anda pikirkan? Ada yang salah dalam cara Anda berpikir tentang salah satunya.
Aaron - Pasang kembali Monica

3

Anda mungkin juga mempertimbangkan menggunakan fungsi mixeddalam paket afexuntuk mengembalikan nilai p dengan pendekatan Kenward-Roger df, yang mengembalikan nilai p identik sebagai uji t berpasangan:

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

Atau

library(lmerTest)
options(contrasts=c('contr.sum', 'contr.poly'))
anova(lmer(y ~ x + (1|subj),data=myDat),ddf="Kenward-Roger")
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.