我对如何解决我遇到的问题有些迷茫,希望有人能提出最合适的方法。
问题:
我有一个由 8 个分子的浓度值组成的数据集。这些是大约测量的。大约 230 个样本。70名患者。对于许多患者,在不同日期采集了多个样本。然而,这不是一个受控的时间过程,而是每个患者的独立(可能,但可能不完全)事件。因此,每个患者的样本数量和时间显着不同,因此该数据不适合良好的平衡重复测量模型。
对于每个样本,我们可以分配 2 个临床表型,我们称它们为 A 和 B,它们可能是独立的(尽管可能不完全)。所以我们可以根据 A 或 B 分配 4 个类别,但我们也可以根据严重性对 A 和 B 进行细分。目前,我认为二元类别就足够了。其他人对数据进行的一些初步分析表明,这些分子将无法区分 A,但可能能够独立于 A 区分 B。另一个复杂情况是患者来自 2 个不同的机构(每个机构大约一半) . 此外,即使在对数转换之后,数据似乎也明显偏离正态性。大多数方差(比较 B+ 与 B-)在对数转换后是相似的。
目标是确定这 8 种分子中的任何一种或它们的某种组合是否可以预测临床表型 B。理想情况下,预测 A 和 B,但 B 是本研究中更重要的一个。
我最初的想法是做某种混合模型分析,在 A 和 B 之间进行双向分析,将机构和患者作为随机效应。这将有助于确定 A 和 B 是否真正独立,以及研究所是否存在任何显着的混杂效应。这可能应该使用非参数测试。
那么这是否有意义(我的困惑表明并非如此),如果是这样,我应该使用的测试到底是什么(我的大部分分析都使用 R)?如果不是,那么查看这些数据的更好方法是什么?
回应Chi的问题:
当我绘制分子浓度图时,它们非常偏斜(即使在 log2 转换之后),并且每个分子(B- 与 B+ 样本)的 Shapiro-Wilk 正态性检验无法支持正态分布。因此,由于偏离假设的正态分布,我认为参数测试是不合理的。
另一方面,我读到样本量 > 30,由于中心极限理论(我将不得不刷新自己......)即使基础分布是非正态的,参数测试仍然适用。就我而言,总共有大约 170 个 B- 和 60 个 B+ 样本(尽管它们不是来自个别患者),所以参数测试可能是最好的选择?这是我仍然感到困惑的事情。
作为初步测试,我确实对每个分子进行了 B-和 B+ 之间的 t 检验和 Mann-Whitney 检验,然后进行了 Benjamini & Hochberg FDR 调整(这引发了另一个问题:B & H 是否适合如此小的测试次数?)。在 q < 0.05 的截止值下,我从 Mann-Whitney 检验中得到了 3 个分子的显着差异,而其中只有 2 个来自 log2 转换数据的 t 检验。不确定这意味着什么。谢谢!
一些更新:
我注意到一些分子的几个样品中也有一些相同的浓度。我不完全了解这个工件的来源,但被告知与数据验证有关。您可能会在读数低于检测灵敏度时看到这一点,但我看到的相同值并非都是最低值。在 QQ 图上,这些显示为水平线,我不确定这将如何影响分析。
我试图在 R 中建立一个线性混合效果模型,但无法让它工作。似乎 2 个最常用的软件包是 nlme 或 lme4。我无法弄清楚公式的语法,到目前为止,尽管进行了大量搜索,但还没有找到我理解的彻底解释。
让我们调用我的变量phen.a
,phen.b
对于上面的自变量 A 和 B,将机构和患者称为机构和患者 ID。instit 和 patient 是因数,phen.a
dnphen.b
是合乎逻辑的,但可以更改为因数,尤其是我们决定添加严重程度等级。
我认为我应该做的是一个混合效果模型,看看:
fixed effects: phen.a, phen.b, interaction:phen.a x phen.b
random effects: instit, patient
如果有人可以提供我需要的公式,那将非常有帮助。
与此同时,我尝试过的,因为我可以让它工作,是一个 ANOVA,查看 2 个自变量、它们的相互作用以及与 phen.b 的额外相互作用,这是特别感兴趣的。我在线性模型中使用的公式是:
concentration ~ phen.a*phen.b + phen.b:instit + phen.b:patient
其中浓度是浓度的 log2——对 8 个分子中的每一个重复。然后,我p.adjust(..., method="FDR")
对 5 个结果 p 值中的每一个进行了一次校正,以纠正 8 次比较。
这导致 1 个分子对 非常重要phen.b
(没有 sigphen.a
和没有相互作用),而第二个分子 sig 对phen.a
具有相互作用phen.b:instit
。不确定如何解释对非显着自变量的这种交互作用。
所以现在另一个问题是这个模型是否有效,以及我选择的交互是否有意义。我也想知道,因为如果线性模型合适,或者是否有某种更好的 chi2 类型测试(尽管因变量是连续的),我们本质上是在查看 2 x 2 类别。
另一个更新:所以我设法学习了如何使用 lme 功能并尝试了模型:
fixed = concentration ~ phen.a * phen.b * instit
random = ~1 | patient
找出来自 phen.a 或 phen.b 的任何影响,并确定这些影响是否被 instit 混淆,使用随机患者效应来解释患者内与患者间变异的差异。
然而,当我使用数据时,我注意到虽然浓度是一个连续变量,但许多样本中出现了 1 或 2 个特定值,有时占所有样本的一半或更多,并且完全扭曲了分布。事实证明,这些值实际上代表了化验的最小可检测浓度(在某些情况下,使用了 2 个化验,解释了重复出现的 2 个不同值)。根据数据编码的方式,最小可检测浓度用于无法检测到该分子的任何样品。所以这个值真正代表:<= x。
我该如何处理这种类型的最小截止?让它们保持原样是否公平,为此我发现了一些重要的结果?
我尝试仅排除这些值,但随后我失去了所有重要结果。不过,我不认为这是有效的,因为这些值没有丢失,它们确实代表了一个分子,该分子要么不存在,要么以非常低的浓度存在。如果存在与表型相关的非常低浓度的优势,这是一个非常重要的观察结果。