最近看了一篇论文《LPCAT1重编程胆固醇代谢促进食管鳞状细胞癌的进展》,文章中的两个表格激发了我的学习兴趣。看完此文后,如果有医生想做类似的数据分析,可以给我留言,免费!医道是大爱,我们这些工科人士愿意提供技能上的帮助。
表1的结果来源于对154名食管鳞状细胞癌(ESCC)患者的临床数据分析,涉及性别、年龄、肿瘤T分期、N分期、分化程度、肿瘤位置、LPCAT1基因表达(qPCR和IHC)的相关性分析。统计分析采用Cox比例风险回归分析,调整了性别、年龄、TNM分期、肿瘤分化程度及肿瘤位置。
表2的结果则探讨了LPCAT1的mRNA和蛋白表达水平与患者临床病理特征之间的关系,采用χ²检验或Fisher精确检验进行统计分析,以确定LPCAT1的表达是否与患者的性别、年龄、T分期等因素显著相关。对癌症数据进行分析,早期可以集中在数据探索性分析(EDA) 和生存分析上。
描述性统计:对数据进行描述性统计分析,计算均值、中位数、标准差等。
可视化:使用图表(如柱状图、箱线图、生存曲线等)来探索数据的分布和关系。例如,绘制不同分期的胃癌患者的生存曲线。
Kaplan-Meier生存曲线:类似于论文中的方法,使用Kaplan-Meier方法绘制生存曲线,比较不同组别(如不同分期、不同治疗方式)的生存率。
Log-rank检验:使用Log-rank检验比较不同组别之间的生存率差异,判断其统计学显著性。
Cox比例风险模型:构建Cox比例风险模型,分析影响胃癌患者生存时间的独立危险因素。例如,分析年龄、性别、肿瘤分期、治疗方式等对生存时间的影响。
原理分析!
Cox比例风险模型(Cox Proportional Hazards Model) 是一种用于生存分析的半参数回归模型,由David Cox在1972年提出。它用于分析生存数据,估计不同因素对生存时间的影响。Cox模型的核心思想是假设风险函数(hazard function)可以分解为两个部分:
基准风险函数(Baseline Hazard Function):表示在没有协变量影响的情况下,个体在时间
t 时的风险。它是时间的函数,但模型不对其具体形式做任何假设。
协变量效应(Covariate Effect):表示协变量对风险的影响。Cox模型假设协变量的影响是乘性的,即协变量的影响是通过一个指数函数来调整基准风险。
模型仿真分析!
% 生成基准风险函数(指数分布)
lambda = 0.1; % 指数分布的参数
baseline_hazard = @(t) lambda * exp(-lambda * t);
% 生成生存时间
risk_score = exp(beta_age * age + beta_stage * stage);
% 风险评分
survival_time = exprnd(1 ./ (lambda * risk_score));
% 生存时间
% 生成删失数据(假设20%的数据是删失的)
censoring = rand(n, 1) < 0.2; % 20%的数据是删失的
observed_time = survival_time;
observed_time(censoring) = observed_time(censoring) .* rand(sum(censoring), 1); % 删失时间
% 构建生存数据表
data = table(age, stage, observed_time, ~censoring, 'VariableNames', ...
{'Age', 'Stage', 'Time', 'Status'});
% 拟合Cox比例风险模型
cox_model = fitcox(data, 'Time ~ Age + Stage');
% 显示模型结果
disp(cox_model);
% 绘制生存曲线
figure
plot(cox_model.Hazard);
xlabel('Time');
ylabel('Survival Probability');
title('Cox Proportional Hazards Model - Survival Curve');
legend('Baseline Survival');
Cox 回归分析是一种常用于生存分析的统计方法,其主要用途如下:
Cox 回归分析能够帮助我们 评估多个变量对生存时间的影响,如:
患者的年龄、性别、肿瘤分期(T/N 分期)、治疗方法等因素如何影响生存时间。
是否有某种 生物标志物(如基因表达) 会显著影响患者的生存。
示例应用:
研究 LPCAT1 表达水平 是否会影响食管鳞状细胞癌(ESCC)患者的生存期。
评估 某种治疗方案(如化疗 vs. 免疫治疗) 是否会改善患者生存。
Cox 回归的核心输出之一是 风险比(HR),它表示某个变量的变化如何影响事件(如死亡)的发生风险:
HR > 1:该因素会 增加死亡风险,即生存时间缩短(不良因素)。
HR < 1:该因素会 降低死亡风险,即生存时间延长(保护因素)。
HR = 1:该因素对生存没有影响。
示例解释:如果 HR = 2.0(T3-T4 vs. T1-T2),说明 T3-T4 期患者死亡风险是 T1-T2 期患者的 2 倍。
生存数据常常 右删失(Right Censoring),即:
某些患者在研究结束时仍存活,无法直接计算确切的生存时间。
Cox 回归可以处理删失数据,不要求所有患者都有完整的生存时间数据。
例如:
研究持续 5 年,但某患者仍存活,则其生存时间是 5 年以上(未发生事件)。
Cox 模型可以利用这些删失数据 提高统计效率。
Cox 回归不需要假设生存时间服从正态分布、指数分布等,与 Kaplan-Meier 方法不同。
仅假设 风险比(HR)在不同时间保持恒定(比例风险假设)。
Cox 回归不仅用于医学研究,还广泛应用于:
医学:评估新药、手术、基因等对生存的影响。
金融:分析企业破产、信用违约风险。
工程:预测设备故障、产品寿命。
在进行 Cox 回归分析时,风险比 (HR) 和 p 值是判断模型中各个变量与生存时间关联性的关键指标。它们的解释和有效性标准如下:
风险比表示某个因素在特定条件下的相对风险。HR 的含义如下:
HR = 1
HR > 1
HR < 1
p 值用于检验变量的统计显著性。通常,p 值 < 0.05 被视为显著,这意味着我们可以拒绝零假设(即该变量与生存时间无关)。具体来说:
p 值 < 0.05
p 值 ≥ 0.05
要确定变量与生存时间的关联是否有效,通常可以根据以下标准:
HR
p 值
HR
p 值
可以根据上述标准判断 Cox 回归分析结果中各个变量的有效性。如果有多个变量的 p 值都大于 0.05,那么可能需要进一步探讨是否模型中的某些变量不适合,或者是否数据存在多重共线性等问题。
假设我们有一个胃癌患者数据集(比如 SEER数据库),包含以下变量:
Survival_time | |
Status | |
Age | |
T_stage | |
N_stage | |
LPCAT1 |
使用 Cox 回归模型分析:
[b, logL, H, stats] = coxphfit([data.Age, data.T_stage, data.N_stage, data.LPCAT1], ...
data.Survival_time, 'Censori
ng', 1 - data.Status);
HR = exp(b); % 计算风险比
CI_lower = exp(b - 1.96*stats.se);
CI_upper = exp(b + 1.96*stats.se);
fprintf('变量\tHR (95%% CI)\tP值\n');
for i = 1:length(HR)
fprintf('变量%d\t%.2f (%.2f-%.2f)\t%.3f\n', i, HR(i), CI_lower(i), CI_upper(i), stats.p(i));
end
结果示例:
变量 HR (95% CI) P值
年龄 1.05 (1.02-1.08) 0.003
T 分期 2.10 (1.50-2.94) 0.002
N 分期 1.80 (1.25-2.58) 0.005
LPCAT1 高表达 2.30 (1.70-3.10) <0.001
结果解读:
年龄 HR = 1.05:年龄每增加 1 岁,死亡风险增加 5%。
T 分期 HR = 2.10:T3-T4 期患者的死亡风险是 T1-T2 期的 2.1 倍。
LPCAT1 高表达 HR = 2.30:高表达患者的死亡风险是低表达患者的 2.3 倍(P < 0.001,显著)。
Cox 回归分析的主要用途:
评估生存时间的影响因素(如基因、分期、治疗方案)。
计算风险比(HR),衡量变量对生存的影响。
处理删失数据,不要求完整生存信息。
适用于多种领域(医学、金融、工程)。
不依赖特定的生存时间分布,比 Kaplan-Meier 曲线 更灵活。
Cox 回归是生存分析中的核心工具,广泛用于医学研究和临床预测。你可以用 MATLAB 运行 Cox 分析,看看数据中是否存在显著影响因素!
程序分析步骤!
可以使用 MATLAB 软件读取 Excel 数据并进行 Cox 回归分析,以获得类似于论文这表 1 的统计结果。可以按照以下步骤实现:
使用 readtable
读取 Excel 文件。