什么测试适用于具有重复测量和二元、有序和连续自变量的二元结果?

机器算法验证 重复测量 二进制数据
2022-04-14 14:13:56

我试图找出最适合与我的数据一起使用的统计测试,并希望得到一些建议。

原始数据由一个二元自变量(患者测试 - 阳性或阴性;目前排除一些缺失值)组成,我们希望确定它是否可以预测给定的临床结果。

结果是有序的(阴性或 1 - 4 级),但是我们对任何阳性结果感兴趣,因此可以将其简化为二元结果(阴性或阳性),尽管如果测试仅预测某些等级,这将是好的要知道。

在简化的情况下,我可以使用卡方检验。我不太确定如何处理序数结果。

此外,每位患者都有在不同时间测量的多项测试和结果,但所有患者的重复次数和时间并不相同。

还有一些与每位患者有关的其他数据,其中一些是二元的(例如性别、两个研究中心之一、某些其他测试结果)、有序的(不同的测试结果)和连续的(年龄,还有一些测试结果 - 在某些情况下,由于连续结果或 N/A 变得复杂)。

如果结果是连续的,我想我会考虑使用混合效应线性模型,这样我就可以确定是否存在与各种次要自变量的任何影响或相互作用。对于序数和/或二元结果,我可以做一些等效的事情吗?

谢谢你的建议!里克


Edit1(响应以下宏的回答):我确实阅读了您的链接答案以进行更多讨论:随机效应与 GEE。但是,老实说,我仍然不清楚您何时需要个人系数与基于人口的系数。

为了具体解决我的数据,我们想要确定假设的预测器可以预测结果的程度(如果有的话)。如果我们发现它是一个很好的预测指标,那么我们希望能够在未来测试新患者时说,鉴于他们对测试 X 呈阳性,他们对结果 Y 呈阳性的可能性是 Z 倍——这将影响治疗过程。

那么我想要一个随机效应或 GEE 模型来回答这个问题吗?我想要其他模型的类似情况是什么?

作为初步实验,我对 X 与 Y 进行了 Fisher 精确检验(忽略了许多观察结果是重复测量的事实),并发现了可能趋势的证据,但没有统计学意义的影响 (p ~ 0.1)。

在根据研究中心将数据分成两组后,我重复了这一点。中心 1:p = 1,优势比 ~ 1。中心 2:p = 0.02,优势比 ~ 3。其他独立因素可能会影响 X 是否预测 Y 或可能与中心相关。

逻辑回归仍然是探索这些对 X 的预测效果的影响的合适方法吗?如果它只是告诉我 X 不是预测性的,但其他一些因素虽然有趣,但它不会回答我们的主要问题。如果它告诉我们 X 具有预测性,但仅适用于中心 2,尤其是治疗后早期的老年患者,这就是我们正在寻找的东西。

谢谢!


Edit2(解释结果?):所以过去几天我一直在玩这个,但仍然无法理解它。我使用 glm() 找到了一些关于逻辑回归的有用文本,但在 lme4 上没有我能够完全理解的文本。也许如果你知道关于这个主题的一个很好的教程......

无论如何,为了填写数据集的一些细节,这里有一个总结变量结构的表格:

variable  type      levels   missing values
id        factor      76           0
inst      factor       2           0
d1        Date        NA           0
d2        integer     NA           0
d3        Date        NA           0
d4        integer     NA           0
a         integer     NA           2
b         integer     NA           6
c         factor       2           2
d         factor       2           6
e         factor       2           7
f         factor       2           2
g         logical     NA           6
h         integer     NA          12
i         numeric     NA          43
j         factor       2           0
x         factor       2           0
y         factor       2           0

主要假设是 x 可以预测 y。y 是响应变量。我最初删除了所有缺少 x 或 y 的观察结果。对 76 名患者进行了 192 次观察。然而,一些变量存在缺失值:尤其是 h 和 i,基于一些初步测试,它们看起来可能很重要。有 50 条记录其中某个变量有缺失值,剩下 142 条记录在任何变量中都没有缺失值。

据我了解, glmer() 无法处理缺失值,如果正在使用的变量中有任何缺失值,默认情况下将省略整个记录。我认为由于样本和效应量相对较小,这可能会有问题,所以我不确定处理这个问题的最佳方法是什么。

“id”是患者 id,我试图将其用作随机效应,而所有其他变量都是固定效应。我发现在公式中放入太多变量会导致 glmer 无法收敛。以下是我用于一些更简单的模型和结果的命令:

命令:

lr1   <- glmer(formula = y ~ x + 1|id, data = s.dat, family = binomial);

结果:

Generalized linear mixed model fit by the Laplace approximation 
Formula: y ~ x + 1 | id 
   Data: s.dat 
   AIC BIC logLik deviance
 238.9 252 -115.4    230.9
Random effects:
 Groups Name        Variance Std.Dev. Corr  
 id     (Intercept) 0.97379  0.98681        
        xpositive   0.01454  0.12058  1.000 
Number of obs: 197, groups: id, 76

Fixed effects:
            Estimate Std. Error z value Pr(>|z|)    
(Intercept)  -1.1343     0.2121  -5.349 8.85e-08 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

命令:

lr2   <- glmer(formula = y ~ x * inst + 1|id, data = s.dat, family = binomial);

结果:

Generalized linear mixed model fit by the Laplace approximation 
Formula: y ~ x * inst + 1 | id 
   Data: s.dat 
   AIC   BIC logLik deviance
 252.7 288.8 -115.4    230.7
Random effects:
 Groups Name             Variance Std.Dev. Corr                 
 id     (Intercept)      1.016604 1.00827                       
        xpositive        0.072397 0.26907   1.000               
        instI2           1.626269 1.27525  -0.683 -0.683        
        xpositive:instI2 0.135144 0.36762  -0.817 -0.817  0.137 
Number of obs: 197, groups: id, 76

Fixed effects:
            Estimate Std. Error z value Pr(>|z|)    
(Intercept)  -1.1224     0.2099  -5.347 8.96e-08 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

命令:

lr3   <- glmer(formula = y ~ x * inst + h + i + 1|id, data = s.dat, family = binomial);

结果:

Warning message:
In mer_finalize(ans) : iteration limit reached without convergence (9)

命令:

lr4   <- glmer(formula = y ~ x + h + i + 1|id, data = s.dat, family = binomial);

结果:

Generalized linear mixed model fit by the Laplace approximation 
Formula: y ~ x + h + i + 1 | id 
   Data: s.dat 
   AIC   BIC logLik deviance
 184.6 217.1 -81.31    162.6
Random effects:
 Groups Name        Variance   Std.Dev.   Corr                 
 id     (Intercept) 1.1663e+01 3.41508554                      
        xpositive   1.2627e+00 1.12369065 -0.284               
        h           7.9415e-02 0.28180626 -0.998  0.229        
        i           2.1064e-07 0.00045896  0.107  0.923 -0.164 
Number of obs: 142, groups: id, 57

Fixed effects:
            Estimate Std. Error z value Pr(>|z|)    
(Intercept)  -1.3359     0.2792  -4.785 1.71e-06 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

我真的不明白这告诉我什么,或者为什么我的所有变量都显示为随机效应而不是固定效应。

任何启示将不胜感激!

谢谢!

1个回答

Yi1如果有耐心i是积极的并且0否则让Xi1,...,Xip成为p患者的预测变量i. 用于确定变量是否与个人概率相关的标准工具Yi=1逻辑回归模型:

log(P(Yi=1|Xi)P(Yi=0|Xi))=β0+β1Xi1+...+βpXip

也就是说,我们将回归模型拟合到对赔率Yi=1,以预测变量为条件。系数表明预测变量的增加是增加还是减少Yi=1特别是,指数系数可以解释为优势比然后,您可以将您的研究问题构建为对回归系数假设的测试。这里的预测变量可以是连续的或分类的,但如果它们是具有两个以上类别的分类,您将需要设置虚拟变量来查看不同级别的影响。

您可以通过执行以下两件事之一来解释重复测量,每件事的解释略有不同:

  • 使用包括随机效应来模拟个体重复测量之间的相关性 - 在这种情况下,回归系数被解释为个体对数几率的变化Yi=1对于预测变量的一个单位变化。如果您对个人层面的相关性感兴趣,我会推荐这种方法。该模型可以lme4使用R.

  • 使用GEE,它为您的回归系数提供稳健的标准误差尽管数据中存在相关性,但这提供了公正的推断。这里的系数被解释为总体平均对数几率的变化Yi对于预测变量的一个单位变化。如果个人层面的相关性令人讨厌(即不感兴趣)并且您希望对人口进行推断,我会推荐这种方法。该模型可以gee使用R.

  • 有关随机效应模型和 GEE 之间差异的更多讨论,请参阅此答案

编辑以回应 OP 的编辑:好问题!当您第一次了解它时,这是一个微妙的问题。根据您的评论

“我们希望能够在未来测试新患者时说,鉴于他们对测试 X 呈阳性,他们对结果 Y 呈阳性的可能性是 Z 倍”

似乎您希望能够就个体阳性检测几率的变化做出陈述,而不是总体平均效应。因此,您似乎对个体水平的影响更感兴趣,而不是对总体的平均影响,所以我建议您拟合随机效应模型。

关于您的第二个问题,使用逻辑模型仍然可能是合适的,但是根据您所说,centre它是一个重要的分类预测器,应该可能与您的预测器交互。