1. 引言
中国人口基数大,目前已经成为世界上患癌人数最多的国家,其中肺癌发病率、死亡率又在所有癌症中居于首位。根据医学领域对肺癌的定义,按肺癌类型进行划分,肺癌包括非小细胞癌(NSCLC)和小细胞癌(SCLC)的两种类型的癌症。中国抗癌协会最新统计结果显示,非小细胞肺癌约占85%。目前,手术治疗、化学治疗、放射治疗、靶向治疗、免疫治疗是治疗肺癌的主要手段[1],肺癌患者发病年龄多在40岁以上[2],发病群体年龄高峰在60~79岁之间。
中国居民肺癌患者发病率和死亡率形势都非常严峻。中国肿瘤登记中心数据显示,2015年我国新增肺癌患者约78万,占全部恶性肿瘤发病的20.0% [3];2019年我国新增肺癌患者约83万[4],约占全部恶性肿瘤发病的22.0%。由近年来肺癌的发病情况可知,肺癌发病率颇高,再加上在中国人口老龄化愈演愈烈以及人口增加的真实国情背景下,目前肺癌发病率难以减少,并且肺癌发病是男、女恶性肿瘤患者死亡的主要原因[5]。近30年来肺癌成为了我国死亡率增长速度最快的恶性肿瘤:20世纪70年代中期我国肺癌死亡率为5.47/10万,居第5位,占全部患癌死亡人数的7.43%;20世纪90年代,肺癌死亡率已居癌症死因第3位;到了21世纪,肺癌已居癌症死亡原因首位[3]。预计至2025年,我国每年新发的肺癌患者将达到100万[6],将成为威胁我国国民生命健康的重要因素之一,因此必须要从源头与诊断上对肺癌发病率、致死率进行防控,降低肺癌发病率和死亡率。
目前,我国还普遍存在绝大多数肺癌患者因肺癌扩散迅速、病情诊断过晚等问题而导致错过了最佳根治性手术治疗时机。根据癌症扩散程度,肺癌分期指分别将非小细胞肺癌分为0、I~IV期和小细胞肺癌分为“局限期”、“广泛期”(也称扩散期)。研究表明,绝大多数肺癌从开始发病发展成晚期的时间为3~6个月。I期患者术后5年生存率高达77%~92%,而IIIA~IVA期患者仅为10%~36%;若是早期诊断并完全切除的肺原位腺癌(AIS)及微浸润腺癌(MIA)术后5年疾病特异性生存率均为100% [7]。肺癌越晚被发现、诊断,癌细胞扩散程度越高,则治疗风险就越高,而我国约有75%的肺癌患者在诊断时就已经处于肺癌晚期[6] [7],这些都是导致肺癌死亡率高的直接原因[3]。
因为人口基数大,所以现在中国患肺癌风险高的人多,他们需要随时随地了解自己是否患肺癌。然而,当前仅有医疗诊断能让国民判断自己是否患肺癌,因为体检的成本、普及程度、国民的传统观念问题,造成大多数国民并非都有条件和意愿去定期体检。根据2011~2020年国家统计局的数据统计,仍有超过2/3的中国人没有定期体检的习惯,这部分群体中的肺癌患者无法及时知道自己已经患上了肺癌,因此将会错过最佳治疗时间。综合以上中国实际肺癌发病背景,现在急需解决肺癌发病率高、患者因诊断过晚而造成的死亡率高的问题。
本文旨在研究中国人诱发肺癌的主要因素,并建立一个肺癌预测模型。该模型可以结合个人具体情况,帮助中国人推测个人患肺癌的概率;最终的个人推测结果将提示肺癌发病风险高的个体去相关医疗机构进行身体检查,诊断自己真正是否患肺癌。首先,本文探究诱发肺癌的主要因素并收集各项指标以及肺癌发病的数据;再根据贝叶斯时空模型,探究影响肺癌发病的主要因素之间的相关性;然后利用R语言编程软件,构建基学习器和元学习器,即构建Logistic Regression (逻辑回归)模型、SVM模型和XGBoost模型,最后通过Stacking集成学习模型集合以上三个模型,建立一个基于诱发肺癌发病主要影响因素预测个人肺癌发病可能性的模型。
2. 数学模型的建立与求解
2.1. 数据来源和指标选取
本文收集的数据来自于南希·阿斯瓦德女士(Nancy Al Aswad,现于Udacity担任BA导师)在1991年发布的肺癌数据集。这个数据是以个人为单位进行调查统计,恰与本文要通过诱发肺癌主要因素建立预测个人肺癌发病模型吻合,因此对该数据集讨论诱发肺癌的相关因素与肺癌的发病情况对本文肺癌预测模型具有适用性。
空气污染、年龄、性别、家族史、肺部慢性病、吸烟、饮食、生活习惯、感染等都是诱发肺癌的因素。根据WHO以及相关文献对诱发肺癌的主要因素的研究,吸烟、肺部慢性疾病、饮酒都是影响肺癌发病的主要因素[3] [8],此外,经研究统计肺癌发病率还与不同年龄段、不同性别有关[9],本文选取空气污染、肺部慢性病、吸烟数量、性别、年龄、饮酒作为主要指标进行研究。
2.2. 贝叶斯时空模型的构建与评价
2.2.1. 贝叶斯时空模型构建思路
与普通疾病不同,肺癌发病量少且为罕见病,那么普遍认为肺癌的患病数服从泊松分布(Poisson):
(1)
(2)
其中
为肺癌发病数,
为在第i个省份第t年肺癌预期发病数,
是第i区域t年的总人口数,
是一定跨度的年份中某省肺癌平均粗死亡率,
为在第i个省份第t年肺癌标化发病比(standardized incidence ratio, SIR),其中SIR为
(3)
Observed:某省份肺癌发病数,Expected:某省份的预期发病数。预期发病数为全国平均发病率与某省份人口数的乘积。确认了数据分布后,接下来开始构建贝叶斯时空模型:
(4)
(5)
模型(4)表示时间结构效应,采用随机游(random walk of order 1, RW1)拟合时间变化趋势,表示时间非结构效应;模型(5)是在模型(4)的基础上引入时空交互作用项,以识别不同地区肺癌SIR时间趋势的差异[10]。模型超参数分布采用R-INLA默认设置。根据常用的模型拟合效果评价指标偏差信息量准则(deviance in formationcriterion, DIC),选择最优模型进行肺癌患病影响因素分析和模型敏感性分析,它的值越小,表示模型的拟合性越好[11]-[14]。
为了探究本文的各个指标之间以及指标与肺癌发病情况的关系,在Origin (2022版)分析本次研究收集到的数据,得到热力图如图1所示。
热力图中某两指标所在的格子是红色或者蓝色,说明这两个指标之间是正或者负相关的关系,其中颜色越深,说明指标相关性越大。根据上面的热力图,显而易见各个指标之间与肺癌发病之间都有较小的负相关性,其中,肺癌发病情况和酒精之间的相关性最强。
2.2.2. 贝叶斯时空模型分析结果
本文建立贝叶斯时空模型,旨在探讨个体所在地空气污染、肺部阻塞性慢性疾病和吸烟量对肺癌发病的影响,即肺癌的时空效应。现已有较多与本文探究不同地区肺癌SIR时间趋势的差异的主旨相似的项目,在研究目标地区收集了当地人的人均烟卷消费量、肺部阻塞性慢性疾病及与空气污染有关的指标(如PM2.5、就业环境、被动吸烟率等)的数据[15] [16],运用贝叶斯时空模型研究肺癌的时空效应,并且都有准确的数值结果,因此可以基于已有结论来探究肺癌发病的时空效应分布,从而判断地区发病率的高低。
Figure 1. Indicator heatmap
图1. 指标热力图
在《基于贝叶斯时空模型探究中国女性肺癌发病风险及其影响因素》中,可得到中国女性肺癌SIR存在显著的时空交互作用,时空交互效应拟合结果显示中国33个省级行政区女性肺癌发病空间结构效应随着时间不断变化[16],可以说明研究不同地区的肺癌发病空间结构效应对肺癌发病率预测具有参考价值。在《基于贝叶斯时空模型黑龙江省肺癌死亡风险及其影响因素分析》中,选择DIC最小的最佳效果模型进行分析,可得知黑龙江省2008~2017年132个区县肺死亡风险总体呈上升趋势,但不同时段上升速度存在一定的差异,其中人均烟卷消费量与空气污染对肺癌从暴露到发病分别有滞后20年、5~8年的影响,而肺部阻塞性慢性疾病与肺癌标化死亡SMR呈正相关[15]。以上两篇文章研究的指标除了与本文相关的上述三个重要指标外,还对农业人口比例、人均生产地区总值等进行探究,由于这些指标不符合本文提及的重要指标,所以在此不再介绍其结果。
由此可知,肺癌的发病因素以及发病率是受到时间与空间影响的,不同地方的生活习性,以及同一地方的时间演变,都是其影响因素不可或缺的一部分。因此,我们在后面构建预测模型的时候,排除了此贝叶斯时空模型研究的时空影响,选择较为理想的环境研究其数据。
2.3. Stacking模型的子模型的构建与评价
2.3.1. 基学习器的构建
1) Logisitic Regression (逻辑回归)模型的建模及过程
a) Logistic回归模型介绍
Logistic回归模型的目标是预测一个二元结果,它通过使用logit函数(或逻辑函数)来模拟特征(X)和二元结果(Y)之间的关系。模型的基本形式可以表达为:
(6)
其中p是给定观察结果为1的概率,
是事件发生与不发生的概率比(称为几率,odds),
是模型参数,
是特征变量,对于我们的数据进行分析,除了变量年龄(AGE)外,其余的变量都符合二分类,因此数据符合Logistic回归所要求。
b) Logistic回归模型的构建
真阳率(True Positive Rate, TPR)是检测出来的真阳性样本数除以所有真实阳性样本数。简称为正样本中猜对的比例。假阳率(False Positive Rate, FPR)是检测出来的假阳性样本数除以所有真实阴性样本数,简称为负样本中猜错的比例。本文通过R语言来构建一个Logistic回归模型,探究肺癌的模型系数,将我们收集到各个指标与肺癌的数据代入其中可得ROC图像如图2所示。
Figure 2. ROC curve graph
图2. ROC图像
由ROC曲线图可以看出曲线接近左上角,而ROC曲线距离基准线越远,则说明该模型的预测效果越好,这表明Logistic回归模型的预测效果较好。
由此可得最终模型系数:截距项(Intercept)表示当所有其他特征变量为0时的对数几率。在本例中,截距是负的,说明在没有任何其他风险因素的情况下,默认的肺癌发生概率是低的。各个指标系数都为正,说明了这些指标都会影响肺癌发病几率;而指标的数值不同,说明了不同指标对肺癌的影响程度不一。具体各个指标的Logistic回归模型系数见表1。
Table 1. Coefficients of Logistic regression models for each indicator
表1. 各个指标的Logistic回归模型系数
诱发肺癌的因素 |
s1 |
备注 |
Intercept |
−3.00491347 |
在没有其他风险因素的情况下,肺癌发病概率低 |
CHRONICDISEASE |
0.54501754 |
患肺部慢性病个体与不患肺部慢性病个体相比,其患肺癌的对数几率增加了约0.545 |
GENDER01 |
0.06262881 |
性别对肺癌的发生率有影响,但不是特别显著 |
SMOKING |
0.32178142 |
吸烟者与非吸烟者相比,肺癌发病对数几率增加约0.322 |
ALCOHOLCONSUMING |
1.73424289 |
饮酒者的患肺癌对数几率比非饮酒者增加约1.734 |
AGE |
0.01797730 |
每增加一岁,肺癌发生的对数几率增加约0.018 |
根据Logistic回归公式(b),可得
(7)
计算肺癌发生概率,其中:
是模型的系数,
是相应的特征值,分别对应于“AGE”,“SMOKING”,“CHRONICDISEASE”,“ALCOHOLCONSUMING”,“GENDER01”。接着将每一项的数据代入,计算此线性组合logit,接着计算出logit后,使用逻辑函数转换这个对数几率值为概率:
(8)
经过计算后将得出一个介于0和1之间的值,表示这位患者在当前模型下患肺癌的概率。如果p大于一个设定的阈值(通常是0.5,但可以根据具体情况调整),则可以预测患者将发展为肺癌。
2) SVM模型的构建及过程
SVM模型主要用于解决非线性指标建模的精准度问题。在第三章中,提及诱发肺癌的主要因素具有相关性,故采用SVM模型提高预测模型的准确性。
a) SVM模型建模思路
首先,输入新数据点,使用核函数将数据点映射到高维空间,然后计算分类决策函数,最后使用符号函数进行二分类。由此便可得到通过SVM模型建立的预测模型。
b) SVM模型建模的构建
假设研究一组非线性的分类规则,首先给出一组非线性带标签的输入样本
,及其对应的期望输出
,给定一组训练数据
,其中
是第j个样本的特征向量,
是对应的标签。
SVM使用核函数
将输入数据从原始特征空间映射到高维特征空间。核函数可以将非线性问题转化为高维空间中的线性问题,这一步是特征转换,常用的核函数包括:
线性核:
(9)
多项式核:
(10)
高斯核(RBF核):
(11)
使用训练得到的支持向量
和对应的拉格朗日乘子
以及分类标签
,计算新的数据点A的分类决策函数:
(12)
其中
是优化过程中得到的拉格朗日乘子,
是训练样本的标签(+1或−1),
是核函数,c是偏置项,由支持向量计算可得。
使用符号函数
对决策函数的输出进行二分类:
(13)
根据决策函数
的符号,确定数据点A的类别。若
,则数据点被分类为+1类;若
,则被分类为−1类。而符号函数的作用是将决策函数的连续输出值离散化为两类,使得每个数据点能够明确地归属于某一类别。
c) SVM模型效能分析
假设类别1代表着患肺癌,类别2代表着不患肺癌,在R语言中模拟的SVM模型显示混淆矩阵(Confusion Matrix)输出结果见表2。
Table 2. Confusion matrix of SVM model
表2. SVM模型混淆矩阵
Prediction Reference |
1 |
2 |
1 |
60 |
0 |
2 |
2 |
0 |
这表示该模型预测了60个为类别1 (正例),正确预测了60个,但是对于类别2 (反例),有2个实例都被错误地预测为类别1,没有正确预测出类别2的实例。
最后得到最终SVM模型的性能报告为:准确率(Accuracy)为97%。对于类别1,精确度(Precision)为0.97,召回率(Recall)为1.00,F1分数为0.98。对于类别2,由于没有正确预测任何实例,精确度、召回率和F1分数均为0.00。因此我们可以得出新数据点都被预测为类别1。这意味着如果模型预测一个病例为类别1,那么这个病例极有可能是真实无误的。
通过模型的表现可以看出,这个模型在类别1的预测上表现很好,几乎达到完美。然而,对于类别2的预测表现很差,没有正确预测任何实例。这可能是由于数据不平衡(类别2的样本数量远少于类别1),导致模型偏向于预测较多的类别。
2.3.2. 元学习器的构建
1) XGBoost模型
XGBoost模型是基于决策树的集成机器学习算法,它以梯度提升(Gradient Boost)为框架。XGBoost模型是由GBDT模型发展而来,同样是利用加法模型与前向分步算法实现学习的优化过程。
a) 目标函数
XGBoost模型通过逐步添加新模型,尝试纠正前一个模型的残差来提升整体性能。每一步都在尽量减少目标函数,该函数通常是一个损失函数与正则项的组合,以防过拟合。目标函数数学表示形式如下:
(14)
其中,
是损失函数,它衡量第i个观察的真实值
和预测值
之间的差异。
是第k棵树的复杂度,通常包括树的深度或叶子结点的数目和叶子结点权重的L2范数公式中的变量。
b) 损失函数
对于二分类问题(如肺癌预测),损失函数通常选择对数损失(logistic loss):
(15)
其中,
(在肺癌预测中可能是患者是否患有肺癌的标签)和模型的预测
(模型预测患者有肺癌的概率),故树的复杂度:
(16)
T是树中叶子的数量,
是叶子节点的权重,
和
是正则化参数。下面对其进行100轮交叉验证的数据迭代(train_logloss_mean train_logloss_std):这些列显示了训练集上的平均对数损失和对数损失的标准差。平均对数损失反映了模型在训练数据上的平均表现,而标准差提供了模型性能波动的信息。理想情况下希望看到的是训练损失随迭代次数的增加而减少,这表明模型正在从数据中学习。交叉验证的数据迭代结果见表3。
Table 3. Data iteration in the construction of the XGBoost model
表3. XGBoost模型构建的数据迭代
|
train-1og1oss: |
test-1og1oss: |
1 |
0.637369 + 0.003760 |
0.639964 + 0.003601 |
11 |
0.376770 + 0.007191 |
0.404497 + 0.020323 |
21 |
0.300284 + 0.005312 |
0.351606 + 0.024789 |
31 |
0.266832 + 0.006882 |
0.344381 + 0.028330 |
41 |
0.246329 + 0.007774 |
0.346081 + 0.025693 |
51 |
0.233765 + 0.008477 |
0.351801 + 0.026699 |
61 |
0.224411 + 0.010015 |
0.358768 + 0.029718 |
71 |
0.217104 + 0.011085 |
0.362533 + 0.034969 |
81 |
0.211613 + 0.011578 |
0.368154 + 0.037361 |
91 |
0.206235 + 0.010943 |
0.374003 + 0.039829 |
100 |
0.201661 + 0.010666 |
0.379322 + 0.039244 |
数据迭代的列显示了验证集上的平均对数损失和对数损失的标准差。验证损失提供了模型在未见过的数据上的性能指标,这是衡量模型泛化能力的重要指标。
总体来说模型正在有效地从训练数据中学习,并且能够泛化到新的数据集上,但是考虑到后期损失的稳定和轻微反弹,可能需要考虑提早停止训练或调整模型参数(如减小学习率,调整正则化参数等),以避免过拟合。
2.4. 基于Stacking模型构建肺癌预测模型
2.4.1. 肺癌预测模型的构建
对三种模型的集成学习建立Stacking模型,目的是进一步提升预测的准确性。该堆叠模型包括基学习器与元学习器两个部分,基学习器的选择是逻辑回归和支持向量机(SVM模型)。这两种模型在处理二分类问题时表现良好,可以从不同的角度捕捉数据的特征。其次,元学习器的选择是XGBoost模型,因为XGBoost模型是一个强大的梯度提升框架,可以有效地整合来自不同基学习器的预测结果,并优化最终的输出。
基于以上模型的原理及公式的介绍,直接通过R语言构建此集成学习模型。数据集中LUNG_CANCER01变量原本数字1代表患病,2代表不患病,但是为了确保目标是二分类,将1改为不患病,0改为患病,并代入下列代码中,得到混淆矩阵,见表4和图3。
Table 4. Confusion matrix results from the Stacking ensemble model
表4. Stacking集成模型中的混淆矩阵运行结果
Prediction Reference |
0 |
1 |
0 |
61 |
8 |
1 |
5 |
3 |
Figure 3. Confusion matrix of the Stacking ensemble model
图3. Stacking集成模型中的混淆矩阵
其中,混淆矩阵解释为:
True Negatives (TN):61——模型正确预测为类别O的实际类别O的个数;
False Positives (FP):8——模型错误地预测为类别1的实际类别O的个数;
False Negatives (FN):5——模型错误地预测为类别O的实际类别1的个数;
True Positives (TP):3——模型正确预测为类别1的实际类别1的个数。
2.4.2. 肺癌预测模型性能指标分析
由实验结果可知,本文构建肺癌预测模型的准确率(Accuracy)为0.8312,表明模型正确预测了83.12%的实例;模型的阳性预测值(Positive Predictive Value)为0.8841,即在模型预测为类别O的情况下,实际也为类别O的概率;其卡帕统计量(Kappa)为0.2222,显示模型的预测性能比随机预测好,但改进空间较大;并且模型的灵敏度(Sensitivity)或真正率(True Positive Rate)为0.9242,表明模型检出实际为类别O的能力很强。然而,该模型也还存在不足之处,模型的特异性(Specificity)为0.2727,表明模型检出实际为类别1的能力较弱;而模型的阴性预测值(Negative Predictive Value)为0.3750,即在模型预测为类别1的情况下,实际也为类别1的概率。
总之,综合分析此模型对类别O的预测较为准确(高灵敏度);相比之下对类别1的预测能力较弱(低特异性),主要原因在于数据集中类别1的样本较少,导致模型在学习时对类别1的特征学习不足。
3. 总结
3.1. 结论
通过人工智能的数据统计与分析,肺癌预测模型可以根据不同个体的具体情况,迅速算出每个测试者患肺癌的可能性。将这些患肺癌的可能性进一步统计、分析,可以精确地筛选出肺癌发病的高、中、低风险人群。
本文运用贝叶斯时空模型探究诱发肺癌的主要因素,研究结果证明各个因素指标间都有相关性,且可以不同地区推算出当地肺癌SIR,对推测在不同地区肺癌发病率具有较大的使用价值。在建模过程中,首先使用Logistic回归,XGBoost,SVM三个机器学习模型:基于我们的数据,运用较适合处理线性且数据不复杂的场景的Logistic回归模型,通过分析我们收集到的数据,其属于非线性,因此不能达到理想的预测效果。虽然XGBoost与SVM模型都对于处理非线性的数据表现出了极好的效果,且适用于相对复杂的场景,但是SVM模型需要精心选择核函数并且进行参数调整,而XGBoost模型对于过小的数据集或简单问题可能表现过剩。因此,我们选择了Stacking集成学习模型,其可以通过组合多个模型,获得比任何单个基模型更好的性能,减少模型间的偏差和方差,尤其是在数据复杂多变时,因此通过数据分析后,也达到了良好的预期效果。
本文不足之处是本次研究收集到的数据少、代表人群不具备广泛性,造成建立的预测模型必然会存在一定的误差,在一定程度上会影响最终的结果;此外,因为每个人对不同指标的符合程度不同,对部分指标仍然需要深入讨论,所以这会对诱发肺癌有不同程度上的影响。比如吸烟指标,长期吸烟的人往往比短期吸烟更有可能诱发肺癌,吸烟指数大的人往往比小的更容易诱发肺癌;又如肺部慢性疾病指标,不同的肺部慢性病对肺癌诱发风险不同。所以,还需要对各项指标进行更进一步的探讨,减小研究成果的误差。因此,在未来对肺癌发病的预测与防控研究中,可以充分利用数据、资源,解决上述问题。
3.2. 建议
基于本文的研究结果以及上述所提及的不足之处,以有效防控肺癌的发病率、死亡率为目标,本文在此提出以下几个方面的建议:
在数据收集方面,可以以收集完整指标系统的数据为目的,对广大人群进行问卷调查,或者向医疗机构申请数据支持。一组完整的数据应当包括某一个被调查者的年龄、性别、居住地、职业、吸烟年限、日均吸烟量、饮酒年限、日均饮酒量、肺部阻塞性慢性疾病史……诸如此类收集足够多组数据,可以使在Stacking集成模型的建立能涵盖到更多的重要指标,并细分本文要研究的重要指标(如吸烟、饮酒等),让推测结果更加精准。
在模型的运用层面,各地区可以根据当地现实情况,运用贝叶斯时空模型推测当地肺癌发病的时空效应以及肺癌主要诱发因素,确保肺癌发病率高的地区能及时制定相关政策、计划来合理地对肺癌发病进行防控。除此之外,还可以对本文模型进行上述优化后,采用改进后的高精度模型为肺癌发病率高的群体(老人、采矿工人等)提供能日常使用的肺癌预测工具,及时提醒肺癌发病可能性大的人进行相关体检,保证肺癌患者能早诊断、早干预、早痊愈,有效防控肺癌发病。
基金项目
广东省教育厅科研项目【服务“百千万工程”重点领域专项】(No. 2024ZDZX4067)、广州市哲学社科规划2024年度课题(No. 2024GZGJ77)。
NOTES
*通讯作者。