在纵向研究中估计平均治疗效果的最佳方法是什么?


9

在一项纵向研究中,在时间点上重复测量了单位结果,总共有固定的测量时机(固定=单位测量同时进行)。ÿ一世Ť一世Ť

将单位随机分配给治疗或对照组。我想估计和测试平均治疗效果,即其中期望是跨时间和跨个人的。为此,我考虑使用固定时间的多层次(混合效果)模型:G = 0 A T E = E Y | G = 1 E Y | G = 0 G=1个G=0

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

Yit=α+βGi+u0i+eit

与截距,的,横跨单元的无规截距,和残留。β Ť é ù ëαβATEue

现在我正在考虑替代模型

Yit=β~Gi+j=1mκjdiĴ+Ĵ=1个γĴd一世ĴG一世+ü0一世+Ë一世Ť

它包含固定效应每个场合其中虚设,如果和别的。此外,该模型还包含参数在治疗和时间之间的交互作用。因此,该模型考虑了的影响可能随时间变化的情况。这本身是有用的,但我认为它也应该提高参数估计的精度,因为考虑了的异质性。d = 1 Ĵ = 0 γ ģ ÿκĴŤdŤ=1个Ĵ=Ť0γGÿ

但是,在此模型中,系数似乎不再等于。相反,它是第一次()表示ATE 。因此,的估计值可能比更有效,但不再代表。βATEt=1β~βATE

我的问题是

  • 在此纵向研究设计中评估治疗效果的最佳方法是什么?
  • 我必须使用模型1还是可以使用模型2(也许更有效)?
  • 有没有办法让解释和特定场合的偏差(例如使用效果编码)?Ťëγβ~ATEγ

在模式2,未在ATE等于加上平均的γ Ĵβ~γj
jujae

如果您的目的仅是估计ATE,那么模型1就足够了,因为它是无偏的。我相信,在模型中添加周期或交互将减少您的估计差异。而且我认为您可能想尝试将编码偏差编码(与平均值的偏差)?γ
jujae

@jujae模型2的主要原因是方差减少,是的。但是我不知道如何使ATE脱离模型2。您的第一个评论似乎是一个指针。您能显示一下还是详细说明?然后,这将接近我的问题的答案!
tomka '17

当拟合模型2, 具有在周期1中的交互项的系数ATE的解释,对于identifiablility考虑,将与周期1作为基准电平ATE编码。因此γ Ĵ实际上是在治疗期之间的差Ĵ在从软件输出周期1和治疗。因此,在每个周期Ĵ中,ATE是β + γ Ĵ和当周期特异性平均ATE,这将导致总平均值ATE,这是β模型中的1β~γjjjβ~+γjβ
jujae

Answers:


2

在评论中解决您的问题“我想知道如何使ATE脱离模型2”:

首先,在你的模型2,并非所有的是识别导致秩亏的设计矩阵的问题。有必要降一层,例如假设γ Ĵ = 0Ĵ = 1。也就是说,利用对比度编码并在周期1假设治疗效果是0。在R,将在周期1作为基准电平码的治疗效果的相互作用项,这也是为什么原因β具有解释在周期1,处理效果在SAS,它会在编码期间的治疗效果作为基准电平,然后βγjγj=0j=1β~mβ~解释了在期而不是1 期的治疗效果。m

假设对比度在R方式创建的话,估计每个交互项(我仍然会表示这个系数,虽然它不是你在你的模型中定义正是)具有治疗效果差的时间段之间的解释Ĵ和时间段1表示ATE在每个周期Ť é Ĵ,则γ Ĵ = Ť ë Ĵ - Ť ë 1Ĵ = 2 ... 。因此,A T E j的估计量γjjATEjγj=ATEjATE1j=2,,mATEĴ。(由于懒惰而忽略了真实参数和估计量本身之间的符号差异),自然地,您的A T E = β = 1β+γĴ一个ŤË=β=1个Ĵ=1个一个ŤËĴ=β+β+γ2++β+γ=β+1个γ2++γ

我在R中做了一个简单的模拟来验证这一点:

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)

结果验证了这一点:

  ATE.m1   ATE.m2 
3.549213 3.549213  

我不知道如何直接更改上面模型2中的对比编码,因此为了说明如何直接使用交互作用项的线性函数以及如何获得标准误差,我使用了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)

这是输出:

 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)

我认为标准误差是通过获得的瓦特为上述线性组合形式和V的系数的从模型3所估计的方差-协方差矩阵。wV^wŤwV

偏差编码

β~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)

输出:

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

β~beta_t

@tomka,可能的是,我不知道如何直接更改model2中交互项的对比度矩阵,稍后将进行一些研究并复出。
jujae

考虑到您的答案,我发现了这一点。我认为偏差编码符合我的要求。您可以对其进行测试并将其包含在您的答案中。ats.ucla.edu/stat/sas/webbooks/reg/chapter5/…–
tomka

@tomka:这正是我的想法,请参阅我对您提到的偏差编码的问题的原始评论:),我将尝试实现这一点并稍后更新答案。(在R中执行此操作会遇到一些麻烦,而无需为编码手动创建虚拟变量,但这似乎是唯一的方法)。
jujae

@tomka:抱歉,延迟,更新了偏差代码部分
jujae

0

对于第一个问题,我的理解是,仅当尚不能立即明确治疗是否独立于潜在结果时,才需要“幻想”方法。在这些情况下,您需要争辩说数据的某些方面允许对治疗的随机分配进行近似处理,这使我们可以使用工具变量,回归不连续性等。

在您的情况下,单位随机分配给治疗的,因此似乎治疗与潜在结果无关。然后,我们就可以使事情变得简单:用普通的最小二乘法估计模型1,并且您对ATE有一个一致的估计。由于单位是随机分配给治疗的,因此这是可以相信随机效应假设的少数情况之一。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.