zoukankan      html  css  js  c++  java
  • R语言利用基线协变量提高随机对照试验的效率

    原文链接:http://tecdat.cn/?p=6391

    在这篇文章中,我将介绍基于半参数理论的最近开发的改进边际治疗效果估计的方法之一。

    边际处理与条件处理效应

    未经调整和调整后的治疗效果不同的一个重要例子是使用逻辑回归来模拟二元结果。也就是说,治疗效果的边际或未调整比值比不同于以一个或多个基线协变量为条件的治疗效果。这意味着如果调整基线测量,真实治疗效果估计实际上与边际未调整治疗效果不同。事实证明,治疗的条件(调整后)比值比绝对值大于边际(未调整)效应。

    以提高的精度估计边际处理效果

    基本思想是我们可以通过添加增强函数来修改由边际(未调整)处理效果估计器求解的估计方程,该函数利用基线协变量。

    这是一个二进制变量,指示受试者被随机分配到哪个治疗组。我们将表示基线协变量的向量。

    由于我们假设这里是二元,我们将使用这两个模型的逻辑回归模型。

    R中的实现


    我们将使用单个基线协变量模拟一些简单试验的数据:

    set.seed(65456461)
    n < -  1000
    z < -  1 *(runif(n)<0.5)
    x < -  rnorm(n)
    xb < -  -2 + x + z
    prob < -  exp(xb)/(1 + exp(xb))
    y < -  1 *(runif(n)<prob)
    数据< -  data.frame(y,x,z)

    首先,让我们拟合简单的未调整模型来估计边际治疗效果,但不使用基线协变量:

    
    
    >未调整< -  glm(y~z,data,family = binomial)
    Call:
    glm(formula = y ~ z, family = binomial)
    
    Deviance Residuals: 
        Min       1Q   Median       3Q      Max  
    -0.8753  -0.8753  -0.6324   1.5132   1.8482  
    
    Coefficients:
                Estimate Std. Error z value Pr(>|z|)    
    (Intercept)  -1.5080     0.1199 -12.580  < 2e-16 ***
    z             0.7462     0.1518   4.915 8.86e-07 ***
    ---
    Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
    
    (Dispersion parameter for binomial family taken to be 1)
    
        Null deviance: 1133.4  on 999  degrees of freedom
    Residual deviance: 1108.3  on 998  degrees of freedom
    AIC: 1112.3
    
    Number of Fisher Scoring iterations: 4

    干预对照对照的估计对数比值比为0.746,标准误差为0.152,z统计值为4.915。现在让我们执行标准调整分析,包括逻辑回归的线性预测器:

    > adjusted <- glm(y~z+x, data, family=binomial)
    > summary(adjusted)
    
    Call:
    glm(formula = y ~ z + x, family = binomial)
    
    Deviance Residuals: 
        Min       1Q   Median       3Q      Max  
    -2.3303  -0.7392  -0.4792   0.6146   2.5612  
    
    Coefficients:
                Estimate Std. Error z value Pr(>|z|)    
    (Intercept) -1.88117    0.14173 -13.273  < 2e-16 ***
    z            0.94074    0.16850   5.583 2.36e-08 ***
    x            1.07543    0.09532  11.282  < 2e-16 ***
    ---
    Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
    
    (Dispersion parameter for binomial family taken to be 1)
    
        Null deviance: 1133.37  on 999  degrees of freedom
    Residual deviance:  941.29  on 997  degrees of freedom
    AIC: 947.29
    
    Number of Fisher Scoring iterations: 5
    

    调整后的条件处理效果估计值为0.941,标准误差为0.169,z统计量为5.583。正如我们预期的那样(平均而言),条件处理效应的幅度大于边际效应。 

    现在我们将估计边际治疗效果,但利用基线协变量来获得更精确的估计。 

    接下来,我们必须适应两个工作模型和。为此,我们在两个治疗组中拟合了单独的逻辑回归模型:
    q0mod < -  glm(y [z == 0] ~x [z == 0],data,family = binomial)
    q1mod < -  glm(y [z == 1] ~x [z == 1],data,family = binomial)

    现在我们需要计算并针对每个受试者 。为此,我们可以使用以下代码:

    expit < -  function(linpred){
    	EXP(linpred)/(1 + EXP(linpred))
    }
    q0hat < -  expit(cbind(rep(1,n),x)%*%q0mod $ coef)
    q1hat < -  expit(cbind(rep(1,n),x)%*%q1mod $ coef)

     最后,我们称之为speff函数:

    semiPara < -   (y~1,endpoint =“dichotomous”,data,trt.id =“z”,
     endCtrlPre = q0hat,endTreatPre = q1hat)

    我们首先指定结果变量y,并且不要在等式的右边放置任何变量(尽管稍后会看到变量选择)。 为了获得治疗效果估计,我们只是总结拟合对象:

    
    Treatment effect
            Log OR       SE       LB      UB           p
    Naive  0.74625  0.15182  0.44869  1.0438  8.8591e-07
    Speff  0.78412  0.13967  0.51036  1.0579  1.9771e-08

    接下来,我们得到了利用基线协变量的估计边际对数比值比。正如我们希望从理论上看,标准误差更小,p值更显着,置信区间更窄 - 我们通过使用基线协变量获得了精确度/统计效率。

    模型选择
     

    最后一点。这种方法依赖于渐近无偏性的渐近参数,也依赖于使用夹心方法的标准误差估计。因此,我会谨慎地在“小型”研究中使用它。小有多小?在张等人的论文中,使用n = 600进行了模拟,估计是无偏的,置信区间的标称覆盖率为95%。

    如果您有任何疑问,请在下面发表评论。   

  • 相关阅读:
    游戏开发制作流程详细介绍
    成为群体领袖
    别人的,值得借鉴的经验
    linux下iptabes配置详解
    Oracle tnsnames.ora
    同时展多个物料BOM List
    Oracle判断是否为数字或数字型字符串
    linux上的vnc配置
    Oracle 中的正则函数
    如何将 backordered 的SO# 重新发运?
  • 原文地址:https://www.cnblogs.com/tecdat/p/11474485.html
Copyright © 2011-2022 走看看