Qual é a melhor maneira de estimar o efeito médio do tratamento em um estudo longitudinal?

9

Em um estudo longitudinal, os resultados de unidades são medidos repetidamente nos pontos de tempo com um total de ocasiões de medição fixas (fixo = medições nas unidades são feitas ao mesmo tempo). i t mYititm

As unidades são atribuídas aleatoriamente a um tratamento, , ou a um grupo controle, . Quero estimar e testar o efeito médio do tratamento, ou seja, onde as expectativas são tomadas ao longo do tempo e dos indivíduos. Considero usar um modelo multinível de ocasião fixa (efeitos mistos) para este propósito:G = 0 A T E = E ( Y | G = 1 ) - E ( Y | G = 0 ) ,G=1G=0

ATE=E(Y|G=1)E(Y|G=0),

Yit=α+βGi+u0i+eit

com o intercepto, o , um intercepto aleatório entre unidades e o residual.β A T E u eαβATEue

Agora estou considerando um modelo alternativo

Yit=β~Gi+j=1mκjdij+j=1mγjdijGi+u~0i+e~it

que contém os efeitos fixos para cada ocasião onde manequim se e outro. Além disso, este modelo contém uma interação entre tratamento e tempo com parâmetros . Portanto, este modelo leva em consideração que o efeito de pode diferir ao longo do tempo. Isso é informativo por si só, mas acredito que também deve aumentar a precisão da estimativa dos parâmetros, porque a heterogeneidade em é levada em consideração. t d t = 1 j = t 0 γ G Yκjtdt=1j=t0γGY

No entanto, neste modelo, o coeficiente não parece mais igual ao . Em vez disso, representa o ATE na primeira ocasião ( ). Portanto, a estimativa de pode ser mais eficiente que mas não representa mais o . UmtEt=1 ~ β βATEβ~ATEt=1β~βATE

Minhas perguntas são :

  • Qual é a melhor maneira de estimar o efeito do tratamento neste projeto de estudo longitudinal?
  • Preciso usar o modelo 1 ou existe uma maneira de usar (talvez mais eficiente) o modelo 2?
  • Existe uma maneira de ter a interpretação do e o desvio específico da ocasião (por exemplo, usando a codificação de efeitos)? ATEγβ~ATEγ
tomka
fonte
No modelo 2, o ATE não é igual a mais a média de ? γjβ~γj
21717
Se seu objetivo é estimar exclusivamente o ATE, o modelo 1 será suficiente, pois será imparcial. A adição de período ou interação no modelo reduzirá a variação de sua estimativa, acredito. E acho que você pode tentar codificar como codificação de desvio (desvio da média)? γ
21717
@jujae A principal razão para o modelo 2 é a redução de variância, sim. Mas eu me pergunto como tirar o ATE do modelo 2. Seu primeiro comentário parece ser um indicador. Você pode mostrar isso ou elaborar? Então isso seria quase uma resposta para minha pergunta!
Tomka
Quando você se encaixa no modelo 2, tem a interpretação de ATE no período 1. Os coeficientes do termo de interação, para consideração de identificabilidade, serão codificados com ATE no período 1 como o nível de referência. Portanto, é realmente a diferença entre o tratamento no período e o tratamento no período 1 da saída do software. Portanto, em cada período , o ATE é e, quando calcula a média do ATE específico do período, levará ao ATE médio geral, que é no seu modelo 1. γjjj ˜ β +γjββ~γjjjβ~+γjβ
jujae

Respostas:

2

Respondendo à sua pergunta "Gostaria de saber como tirar o ATE do modelo 2" nos comentários:

Primeiro, no seu modelo 2, nem todos são identificáveis, o que leva ao problema de deficiência de classificação na matriz de design. É necessário diminuir um nível, por exemplo, assumindo para . Ou seja, usando a codificação de contraste e assumindo que o efeito do tratamento no período 1 é 0. Em R, ele codificará o termo de interação com efeito de tratamento no período 1 como o nível de referência, e é também por isso que tem a interpretação do efeito do tratamento no período 1. No SAS, ele codifica o efeito do tratamento no período como o nível de referência, então tem a interpretação do efeito do tratamento no períodoγ j = 0 j = 1 ˜ β m ˜ β mγjγj=0j=1β~mβ~m, não período 1 mais.

Supondo que o contraste seja criado da maneira R, os coeficientes estimados para cada termo de interação (ainda o por , embora não seja exatamente o que você definiu em seu modelo) tenham a interpretação da diferença do efeito do tratamento entre o período de tempo e período 1. Indique ATE em cada período , então para . Portanto, um estimador para é . (ignorando a diferença de notação entre o parâmetro verdadeiro e o próprio estimador, porque a preguiça)γjjATEjγj=ATEjATE1j=2,,mATEjβ~+γjATE=β=1mj=1mATEj=β~+(β~+γ2)++(β~+γm)m=β~+1m(γ2++γm) .

Fiz uma simulação simples em R para verificar isso:

set.seed(1234)
time <- 4
n <-2000
trt.period <- c(2,3,4,5) #ATE=3.5
kj <- c(1,2,3,4)
intercept <- rep(rnorm(n, 1, 1), each=time)
eij <- rnorm(n*time, 0, 1.5)
trt <- rep(c(rep(0,n/2),rep(1,n/2)), each=time)
y <- intercept + trt*(rep(trt.period, n))+rep(kj,n)+eij
sim.data <- data.frame(id=rep(1:n, each=time), period=factor(rep(1:time, n)), y=y, trt=factor(trt))

library(lme4)
fit.model1 <- lmer(y~trt+(1|id), data=sim.data)
beta <- getME(fit.model1, "fixef")["trt1"]

fit.model2 <- lmer(y~trt*period + (1|id), data=sim.data)
beta_t <- getME(fit.model2, "fixef")["trt1"]
gamma_j <- getME(fit.model2, "fixef")[c("trt1:period2","trt1:period3","trt1:period4")]

results <-c(beta, beta_t+sum(gamma_j)/time)
names(results)<-c("ATE.m1", "ATE.m2")
print(results)

E os resultados confirmam isso:

  ATE.m1   ATE.m2 
3.549213 3.549213  

Não sei como alterar diretamente a codificação de contraste no modelo 2 acima, para ilustrar como é possível usar diretamente uma função linear dos termos de interação, bem como obter o erro padrão, usei o pacote multcomp:

sim.data$tp <- interaction(sim.data$trt, sim.data$period)
fit.model3 <- lmer(y~tp+ (1|id), data=sim.data)
library(multcomp)
# w= tp.1.1 + (tp.2.1-tp.2.0)+(tp.3.1-tp.3.0)+(tp.4.1-tp.4.0)
# tp.x.y=interaction effect of period x and treatment y
w <- matrix(c(0, 1,-1,1,-1,1,-1,1)/time,nrow=1)
names(w)<- names(getME(fit.model3,"fixef"))
xx <- glht(fit.model3, linfct=w)
summary(xx)

E aqui está a saída:

 Simultaneous Tests for General Linear Hypotheses
Fit: lmer(formula = y ~ tp + (1 | id), data = sim.data)
Linear Hypotheses:
       Estimate Std. Error z value Pr(>|z|)    
1 == 0  3.54921    0.05589   63.51   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Adjusted p values reported -- single-step method)

Penso que o erro padrão é obtido por com sendo a forma de combinação linear acima e a matriz estimada de variância-covariância dos coeficientes do modelo 3. WVwV^wTwV

Codificação de desvio

Outra maneira de fazer com que tenha a interpretação direta de é usar a codificação de desvio , para que as covariáveis ​​posteriores representem a comparação : ATEATEj-ATEβ~ATEATEjATE

sim.data$p2vsmean <- 0
sim.data$p3vsmean <- 0
sim.data$p4vsmean <- 0
sim.data$p2vsmean[sim.data$period==2 & sim.data$trt==1] <- 1
sim.data$p3vsmean[sim.data$period==3 & sim.data$trt==1] <- 1
sim.data$p4vsmean[sim.data$period==4 & sim.data$trt==1] <- 1
sim.data$p2vsmean[sim.data$period==1 & sim.data$trt==1] <- -1
sim.data$p3vsmean[sim.data$period==1 & sim.data$trt==1] <- -1
sim.data$p4vsmean[sim.data$period==1 & sim.data$trt==1] <- -1


fit.model4 <- lmer(y~trt+p2vsmean+p3vsmean+p4vsmean+ (1|id), data=sim.data)

Resultado:

Fixed effects:
            Estimate Std. Error t value
(Intercept)  3.48308    0.03952   88.14
trt1         3.54921    0.05589   63.51
p2vsmean    -1.14774    0.04720  -24.32
p3vsmean     1.11729    0.04720   23.67
p4vsmean     3.01025    0.04720   63.77
jujae
fonte
Bom - mas como obter uma estimativa de erro padrão? E não deveria ser possível usar a codificação dos efeitos das interações / período de uma maneira que (sua ) seja o ATE diretamente (depois com uma estimativa SE)? β~beta_t
21417 tommy
@ tomka, é possível, eu não sei como alterar diretamente a matriz de contraste do termo de interação no modelo2, faremos algumas pesquisas e voltaremos mais tarde.
jujae
Pensando na sua resposta, achei isso. Eu acho que a codificação de desvio faz o que eu quero. Você pode testá-lo e incluí-lo em sua resposta. ats.ucla.edu/stat/sas/webbooks/reg/chapter5/…
tomka
@ Tomka: É exatamente isso que está em minha mente, veja meu comentário original à sua pergunta, onde mencionei a codificação de desvio :), tentarei implementar isso e atualizar a resposta mais tarde. (Tendo algum problema em fazê-lo no R sem criar manualmente uma variável fictícia para a codificação, mas parece que é a única maneira de fazê-lo).
21717
@tomka: Desculpe pela demora, atualizou a parte código de desvio
jujae
0

Para a primeira pergunta, meu entendimento é que maneiras "sofisticadas" são necessárias apenas quando não é imediatamente óbvio que o tratamento é independente de possíveis resultados. Nesses casos, você precisa argumentar que algum aspecto dos dados permite uma aproximação da atribuição aleatória ao tratamento, o que nos leva a variáveis ​​instrumentais, descontinuidade da regressão e assim por diante.

No seu caso, as unidades são aleatoriamente designadas para o tratamento, portanto, parece crível que o tratamento seja independente dos possíveis resultados. Então, podemos simplificar as coisas: estimar o modelo 1 com mínimos quadrados comuns e você tem uma estimativa consistente do ATE. Como as unidades são aleatoriamente designadas para o tratamento, este é um dos poucos casos em que uma hipótese de efeitos aleatórios é crível.

Peter
fonte