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γ

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=ATEj−ATE1j=2,…,mATEjβ~+γjATE=β=1m∑j=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β~ATEATEj−ATE

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

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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.