T-test associato come caso speciale di modellazione lineare ad effetti misti


20

Sappiamo che un test t accoppiato è solo un caso speciale di ANOVA a misure ripetute a senso unico (o all'interno del soggetto) e modello lineare a effetto misto, che può essere dimostrato con la funzione lme () il pacchetto nlme in R come mostrato di seguito.

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

Quando eseguo il seguente test t accoppiato:

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

Ho ottenuto questo risultato (otterrai un risultato diverso a causa del generatore casuale):

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

Con l'approccio ANOVA possiamo ottenere lo stesso risultato:

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

Ora posso ottenere lo stesso risultato in lme con il modello seguente, assumendo una matrice di correlazione simmetrica definita positiva per le due condizioni:

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

O un altro modello, ipotizzando una simmetria composta per la matrice di correlazione delle due condizioni:

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

Con il test t accoppiato e le misure ripetute a senso unico ANOVA, posso scrivere il modello di media cellulare tradizionale come

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

dove i indicizza la condizione, j indica il soggetto, Y ij è la variabile di risposta, μ è costante per l'effetto fisso per la media complessiva, α i è l'effetto fisso per la condizione, β j è l'effetto casuale per il soggetto che segue N (0, σ p 2 ) (σ p 2 è la varianza della popolazione) e ε ij è residuo dopo N (0, σ 2 ) (σ 2 è la varianza all'interno del soggetto).

Ho pensato che il modello di media cellulare sopra non sarebbe appropriato per i modelli di lme, ma il problema è che non riesco a trovare un modello ragionevole per i due approcci di lme () con l'ipotesi della struttura di correlazione. Il motivo è che il modello lme sembra avere più parametri per i componenti casuali rispetto al modello medio di cella sopra offerto. Almeno il modello lme fornisce esattamente lo stesso valore F, gradi di libertà e valore p, che gls non può. Più specificamente gls fornisce DF errati a causa del fatto che non tiene conto del fatto che ogni soggetto ha due osservazioni, portando a DF molto gonfiati. Molto probabilmente il modello lme è sovra parametrizzato nel specificare gli effetti casuali, ma non so quale sia il modello e quali siano i parametri. Quindi il problema è ancora irrisolto per me.


2
Non sono sicuro di quello che stai chiedendo. Il modello che hai scritto è precisamente il modello per il modello di effetti casuali; la struttura di correlazione è indotta dall'effetto casuale.
Aaron - Ripristina Monica il

@Aaron: si suppone che l'effetto beta βj nel modello della media cellulare segua N (0, σp2). La mia confusione è: in che modo questo termine (con un solo parametro σp2) è associato alla struttura di correlazione specificata dalla simmetria composta o da una semplice matrice simmetrica nel modello di lme?
bluepole,

Quando si calcola la correlazione tra le due osservazioni sullo stesso soggetto, la correlazione è sigma_p ^ 2 / (sigma_p ^ 2 + sigma ^ 2) perché condividono lo stesso beta_j. Vedi Pinheiro / Bates p.8. Inoltre, il modello di effetti casuali mentre lo scrivevi è equivalente alla simmetria composta; altre strutture di correlazione sono più complesse.
Aaron - Ripristina Monica il

@Aaron: grazie! Ho già letto il libro di Pinheiro / Bates su questo, e ancora non riuscivo a capire i dettagli sugli effetti casuali. Le pagine più rilevanti sembrano essere l'esempio di P.160-161. Inoltre, l'output di effetti casuali da lme ​​() con ipotesi di simmetria composta non sembra concordare con la correlazione di σp2 / (σp2 + σ2) nel modello della media cellulare. Ancora confuso sulla struttura del modello.
bluepole,

Bene, quasi equivalente alla simmetria composta; in CS la correlazione può essere negativa ma non con effetti casuali. Forse è qui che sorge la tua differenza. Vedere stats.stackexchange.com/a/14185/3601 per i dettagli.
Aaron - Ripristina Monica il

Risposte:


16

L'equivalenza dei modelli può essere osservata calcolando la correlazione tra due osservazioni dello stesso individuo, come segue:

Come nella tua notazione, lascia che , dove e . Quindi , perché tutti gli altri termini sono indipendenti o fissi e , quindi la correlazione è .Yioj=μ+αio+βj+εiojβj~N(0,σp2)εioj~N(0,σ2)Cov(yioK,yjK)=Cov(μ+αio+βK+εioK,μ+αj+βK+εjK)=Cov(βK,βK)=σp2Vun'r(yioK)=Vun'r(yjK)=σp2+σ2σp2/(σp2+σ2)

Si noti che i modelli tuttavia non sono del tutto equivalenti in quanto il modello a effetto casuale impone che la correlazione sia positiva. Il modello CS e il modello t-test / anova no.

EDIT: ci sono anche altre due differenze. Innanzitutto, i modelli CS e gli effetti casuali assumono la normalità per l'effetto casuale, ma il modello t-test / anova no. In secondo luogo, i modelli CS ed effetti casuali sono adattati usando la massima probabilità, mentre l'anova è adattata usando quadrati medi; quando tutto è bilanciato, saranno d'accordo, ma non necessariamente in situazioni più complesse. Infine, sarei diffidente nell'utilizzare i valori F / df / p dai vari accoppiamenti come misure di quanto i modelli concordano; vedere il famoso massetto di Doug Bates su df per maggiori dettagli. (MODIFICA FINE)

Il problema con il tuo Rcodice è che non stai specificando correttamente la struttura di correlazione. È necessario utilizzare glscon la corCompSymmstruttura di correlazione.

Genera dati in modo che ci sia un effetto soggetto:

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

Quindi ecco come si adatteranno gli effetti casuali e i modelli di simmetria composta.

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

Gli errori standard dal modello di effetti casuali sono:

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

E la correlazione e la varianza residua dal modello CS è:

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

E sono uguali a quanto previsto:

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

Altre strutture di correlazione di solito non si adattano agli effetti casuali ma semplicemente specificando la struttura desiderata; un'eccezione comune è il modello di effetti casuali AR (1) +, che ha un effetto casuale e una correlazione AR (1) tra osservazioni sullo stesso effetto casuale.

EDIT2: Quando inserisco le tre opzioni, ottengo esattamente gli stessi risultati, tranne che gls non cerca di indovinare il df per il periodo di interesse.

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

(L'intercettazione è diversa qui perché con la codifica predefinita, non è la media di tutte le materie ma invece la media della prima materia.)

È anche interessante notare che il lme4pacchetto più recente fornisce gli stessi risultati ma non prova nemmeno a calcolare un valore 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

Grazie ancora per l'aiuto! Conosco questa parte dal punto di vista del modello medio cellulare. Tuttavia, con il seguente risultato da lme ​​() con simmetria composta: Effetti casuali: Formula: ~ x - 1 | subj Struttura: Simmetria composta StdDev xx1 1.1913363 xx2 1.1913363 Corr: -0.036 Residuo 0.4466733. Non riesco ancora a conciliare questi numeri con il modello della media cellulare. Forse puoi aiutarmi ulteriormente a ordinare questi numeri?
bluepole,

Inoltre, qualche pensiero sulla formulazione del modello con altre strutture di correlazione come la semplice matrice simmetrica?
bluepole,

Vedo! Avrei dovuto leggere più attentamente la tua risposta nell'altra discussione. Ho pensato di usare gls () prima, ma non sono riuscito a capire le specifiche di correlazione. È interessante notare che lme () con struttura di simmetria composta per l'effetto casuale rende ancora lo stesso valore t, ma sembra che le varianze per gli effetti casuali non siano direttamente interpretabili. Apprezzo molto il vostro aiuto!
bluepole,

Dopo qualche secondo pensiero, sento che la mia confusione originale è ancora irrisolta. Sì, gls può essere usato per dimostrare la struttura di correlazione e la rum quadrata media, ma il modello sottostante non è esattamente lo stesso del test paired-t (o ANOVA a misure ripetute unidirezionali in generale), e tale valutazione è ulteriormente supportato da DF non corretti e dal valore p di gls. Al contrario, il mio comando lme con simmetria composta fornisce gli stessi valori F, DF e valore p. L'unica cosa di cui sono perplesso è come il modello lme è parametrizzato come indicato nel mio post originale. Qualche aiuto là fuori?
bluepole,

Non sono sicuro di come aiutarti. Potresti scrivere quello che pensi siano i due diversi modelli? Qualcosa non va nel modo in cui stai pensando a uno di essi.
Aaron - Ripristina Monica il

3

Si potrebbe anche considerare l'uso della funzione mixednel pacchetto afexper restituire valori p con approssimazione Kenf-Roger df, che restituisce valori p identici come un test t accoppiato:

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

O

library(lmerTest)
options(contrasts=c('contr.sum', 'contr.poly'))
anova(lmer(y ~ x + (1|subj),data=myDat),ddf="Kenward-Roger")
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.