探索性影响因素研究(传统单因素多因素分析)

探索性影响因素研究,即探索对某个临床结局(事件)有影响的关联因素,属于病因学的范畴,探索对结局有影响的可能原因。

所谓”探索性”,是指研究开始没有固定某些感兴趣的影响因素,而是在一堆可能的因素里,探索性挖掘可能有意义的独立影响因素。

主要特点:

准备数据

首先务必按照下面的格式准备数据(网站上可下载,下载后在此基础上修改):

下载csv样例数据(右击另存为)

影响因素分析

下一步就是影响因素分析啦:

选择风格

这里提供了两种分析风格,风格一,速度很快,且功能强大,一开始推荐先用风格一进行测试建模。最重要的是提供一键进行缺失数据的多重填补(MI)。研究表明,MI 是目前学术界最为推荐的影响因素分析的缺失值处理方法,比其他缺失数据处理方法要好,但是实现起来非常麻烦。所以这里我们实现了一键自动填补和合并功能。

选择结局变量

系统根据结局变量的类型来选择分析方法。二分类变量,系统会选择 Logistic 回归,如果是连续性变量,系统会选择一般线性回归。如果是生存变量 Time 和 Status 的组合,系统会采用 Cox 回归。如果是计次计数变量,系统会选择 Poisson 回归,当然如果是率或者百分比,也会采用 Poisson 回归,将分子设置为应变量,将分母设置为 offset。

选择影响因素变量

根据提示选择结局变量和影响因素变量,最后点击”生成/更新影响因素分析表”即可。这里要注意的是,如果上传的数据 Excel 文件里把连续性变量设置成了字符型,如年龄设置成了字符型,需要在前面”选择字段”功能里改回成 numeric, 如果按照分类变量 factor 放进影响因素分析,就会出现大量的分类,会出错。同理,如果把 ID 号也作为分类变量 factor 放进影响因素,服务器容易卡顿死机。

亚组合并

在分类变量里,有些亚组人数很少,或者有些亚组发生的事件数很少,会导致 OR/HR 值及其可信区间非常大或者为 0,inf 的情况,最好把它和其他相邻的亚组合并。

例如 字段 Stage 下面有四个亚组:I 期,II 期,III 期,IV 期,有时候 I 期的患者只有两三个人,导致回归分析的 OR/HR 值或可信区间为零或巨大,这时可以把 I 期和 II 期合并,改名为 ” I - II 期”,增加亚组样本量后再进行分析。修改的方法:回到”导入数据” 页面,选择 “数据标签批量替换” ,然后把 Stage 变量下面 I 期和 II 期 的文本标签都改为 ” I - II 期” 即可。

哪些变量入选多因素模型

单因素和多因素分析时同时自动完成的。事先可以规定哪些变量从单因素模型入选多因素模型,可以选择全部都进入,或者部分筛选进入。一般可以全部都纳入多因素。但如果因素太多,十几个几十个,那就要筛选一下变量了,放入模型的变量数不应该超过 样本量 N/20,或者发生的事件数(较少人数的取值为发生事件)/10。我们的经验是放 10 个以下就可以了。 如果只放部分单因素变量进入多因素,可以点”选项2”,自行选择哪些变量纳入多因素分析,这时候主要是参考历史研究以及研究者的临床经验。另外也可以选逐步回归,StepAIC,然后系统会自动用backward法筛选纳入多因素的变量组合,筛选的标准是让模型的 AIC 最小。需要注意的是,这里的逐步回归,不是根据 P 值纳入多因素模型,而是根据 AIC 值(有些论文中用 P值<0.1等方式筛选变量,属于10年前的统计学,已经淘汰,目前不被主流统计学界认可)

当然,最好的方法可能是 lasso 回归选择变量功能,这里我们郑重推荐另一个APP:“自动筛选单因素进入多因素模型变量” 的模块。大家可以在 www.mstata.com 网站进入 Mstata 医学统计机器人,在”影响因素研究” 菜单下可以找到,里面包括了逐步回归、最佳子集、lasso、岭回归、弹性网络等多种变量筛选方法,以及对多重共线性的判定。在另一个APP中完成变量筛选后,可以用筛选出来的变量,回到本APP这里,选择2,手工填入要进入多因素模型的变量,即可完成变量筛选。

缺失数据多重填补(Multiple imputation)

缺失数据的填补主要是基于基线数据进行填补,我们没有把结局变量纳入进来,因为结局变量的填补方法往往要结合具体的研究设计。

多重填补的原理是,基于其他未缺失的基线变量,对某些缺失的变量进行填补,并同时用同样的方法生成N套不同的数据,每套数据分别做回归分析,然后把回归分析的结果进行合并,得到一个结果。

所以这里需要设置生成多少套填补数据,以及随机种子数。每次只要输入相同的种子数,就能得到一样的结果,如果种子数不同,结果会有微小的差别。

多重插补之后的结局如下:

第一列是单因素分析的结果,第二列是多因素分析的结果,第三列是在多因素分析的基础上,进行缺失值多重填补之后的结果。

连续性变量拆成分类变量

连续性变量需要拆成分类变量的场景有:

  1. 本身就是一个分类变量,如 I 期,II 期,III 期,IV 期等,只不过用了数字1,2,3,4来表示,这可以在前面筛选变量的界面直接把它设置为分类变量即可。
前面如果忘记了,或者不方便,这里提供了一个功能,可以设置唯一取值数小于多少个水平的变量,全部转换成分类变量。例如只有5个取值 (比如只有数字1-5可取)以下的变量,全部批量转换成分类变量;
  1. 本身是连续性变量,例如年龄、血糖等等,但需要转换成 低、高的二分类变量,或低、中、高的三分类变量,或Q1,Q2,Q3,Q4的四分位数分类变量,这里也提供了一个自动化转换工具,可以根据患者数量,平均拆分成N个组。

    如上图,对于只能取值6以下的变量,统统变成分类变量。

如上图,将blood和occurrence两个连续性变量,切成三等分的分类变量

结果如下:

例如上图,blood 和 occurrence 被切成了 低、中、高三个亚组。

另外也可以勾选显示分组的界值点:

结果如下:

显示了切割分界点的界值。

多大支持切割成20组,因为更多分组没有太大医学价值。

如果需要更强大的分组功能呢,例如自定义切割点,如<10岁,>65岁等,或者用K-means 聚类分组等,可以去本站的 数据预处理模块,选择”数据离散化” 模块进行复杂的分组操作。

生成森林图

需要森林图的话,需要用风格二进行分析,分析完之后,到森林图页面即可生成:

生成生存曲线

另外,如果您选择的是生存结局,用的Cox回归,也可以顺便批量生成生存曲线,当影响因素分析完成后,点击”批量生成图形”,就把所有变量分组的生存曲线瞬间生成了。

下载word文件

最后进入”下载word文件”

生成文字版的报告。