具有附加分组变量的差异分析中的差异

时间:2019-08-11 21:56:36

标签: r glm

我正在尝试进行差异分析中的差异,以使用gee模型查看政策影响。下面的示例数据将帮助说明我的问题。

library(geepack)
library(tidyverse)

data(seizure)

seizure.l= reshape(seizure %>% select(y1,y2,trt,age),
                   varying=list(c("y1", "y2")),
                   v.names="y", times=0:1, direction="long")
seizure.l <- seizure.l[order(seizure.l$id, seizure.l$time),]
seizure.l=seizure.l %>% mutate(age.group=case_when(age <= 25 ~ "A1",age >25 & age <=31 ~"A2", age >31 ~"A3"))
seizure.l$t <- ifelse(seizure.l$time == 0, 8, 2)
seizure.l = seizure.l %>% mutate_at(c("trt","age.group","time"),list(as.factor))
DiD.gee <- geeglm(y ~  time*trt*age.group , data=seizure.l, id=id,family=poisson,corstr="ar1",offset=log(t))
summary(DiD.gee)

 Coefficients:
                       Estimate Std.err  Wald Pr(>|W|)    
(Intercept)              -0.269   0.213  1.60    0.205    
time1                     1.538   0.215 51.07  8.9e-13 ***
trt1                      0.618   0.602  1.05    0.305    
age.groupA2               0.563   0.353  2.54    0.111    
age.groupA3               0.599   0.470  1.62    0.203    
time1:trt1               -0.263   0.301  0.77    0.382    
time1:age.groupA2        -0.240   0.266  0.81    0.367    
time1:age.groupA3        -0.546   0.281  3.77    0.052 .  
trt1:age.groupA2         -0.943   0.859  1.21    0.272    
trt1:age.groupA3         -1.337   0.782  2.93    0.087 .  
time1:trt1:age.groupA2    0.850   0.659  1.66    0.197    
time1:trt1:age.groupA3    0.544   0.409  1.77    0.183 

time1:trt1系数表示A1年龄组的“按时间分组”效果。 time1:trt1:age.groupA2time1:trt1:age.groupA3A2A3年龄组相对于A1年龄组的“按时间分组”效果,这不是我想要的。对于每个与A1相关的组,我需要按时间分组效果。我可以通过拆分数据集来实现这一点,例如

seizure.l.A2=seizure.l%>% filter(age.group=="A2")

DiD.gee.A2 <- geeglm(y ~  time*trt , data=seizure.l.A2, id=id,family=poisson,corstr="ar1",offset=log(t))
summary(DiD.gee.A2)

 Coefficients:
            Estimate Std.err  Wald Pr(>|W|)    
(Intercept)    0.293   0.282  1.09     0.30    
time1          1.298   0.157 68.39   <2e-16 ***
trt1          -0.325   0.613  0.28     0.60    
time1:trt1     0.586   0.586  1.00     0.32     

是否存在一种在不拆分数据集并运行3个单独回归的情况下获得相同结果的方法?

0 个答案:

没有答案
相关问题