乳腺癌作为女性健康领域的一大挑战,对全球范围内的女性健康产生了深远影响。据世界卫生组织(WHO)统计,乳腺癌已成为全球女性恶性肿瘤发病率的最高者,且呈现逐年上升的趋势。在中国,乳腺癌也是女性最常见的恶性肿瘤之一,给社会和家庭带来了沉重的负担。因此,对乳腺癌的早期筛查、诊断和治疗具有极其重要的意义,不仅关乎个体女性患者的生存质量,也关系到整个社会的公共卫生问题。
随着信息技术的飞速发展,数据科学在医疗领域的应用日益广泛。通过对大规模医疗数据的采集、整合和分析,数据科学为医疗决策提供了全新的视角和手段,加速了疾病诊断、治疗方案优化以及精准医疗的实现。例如,基于大数据分析的乳腺癌风险预测模型能够帮助医生更早地发现高风险人群并进行个体化干预和治疗[。此外,数据科学还促进了医疗资源的合理配置和医疗服务的智能化提升,为医疗卫生体系的可持续发展注入了新动力。
主成分分析(Principal Component Analysis,PCA)是一种常用的多元统计分析方法,其主要作用是通过线性变换将高维数据转换为低维数据,从而发现数据中的内在结构和模式。PCA通过寻找数据中的主成分(即最大方差方向),实现了数据的降维和特征提取,能够帮助我们更好地理解数据集的特点和相关性,同时减少数据的噪声影响,简化数据分析过程
主成分分析(Principal Component Analysis,PCA)是一种常用的数据降维和特征提取方法,它的原理主要包括以下几个步骤:
PCA通过线性变换的方式将高维数据转换为低维数据,从而挖掘数据的内在结构和特征,是一种强大的数据降维和特征提取工具。其原理主要包括去中心化、协方差矩阵计算、特征值分解和主成分选择等步骤,通过这些步骤,PCA能够帮助我们更好地理解和利用复杂的多维数据。
在乳腺癌研究领域,PCA可以被用于处理包含大量乳腺癌患者临床数据和生物标记物数据的高维数据集。通过PCA技术,可以将这些高维数据进行降维处理,发现数据中的潜在模式和相关特征,有助于识别潜在的生物标记物、预测乳腺癌的发生风险以及患者的预后情况。此外,PCA还可以帮助科研人员在乳腺癌研究中构建更加简洁和有效的预测模型,促进对乳腺癌发病机制和治疗效果的深入理解。
library(survival)
head(gbsg)
结果展示:
pid age meno size grade nodes pgr er hormon rfstime status
1 132 49 0 18 2 2 0 0 0 1838 0
2 1575 55 1 20 3 16 0 0 0 403 1
3 1140 56 1 40 3 3 0 0 0 1603 0
4 769 45 0 25 3 1 0 4 0 177 0
5 130 65 1 30 2 5 0 36 1 1855 0
6 1642 48 0 52 2 11 0 0 0 842 1
> str(gbsg)
'data.frame': 686 obs. of 10 variables:
$ age : int 49 55 56 45 65 48 48 37 67 45 ...
$ meno : int 0 1 1 0 1 0 0 0 1 0 ...
$ size : int 18 20 40 25 30 52 21 20 20 30 ...
$ grade : int 2 3 3 3 2 2 3 2 2 2 ...
$ nodes : int 2 16 3 1 5 11 8 9 1 1 ...
$ pgr : int 0 0 0 0 0 0 0 0 0 0 ...
$ er : int 0 0 0 4 36 0 0 0 0 0 ...
$ hormon : int 0 0 0 0 1 0 0 1 1 0 ...
$ rfstime: int 1838 403 1603 177 1855 842 293 42 564 1093 ...
$ status : Factor w/ 2 levels "0","1": 1 2 1 1 1 2 2 1 2 2 ...
age:患者年龄
meno:更年期状态(0表示未更年期,1表示已更年期)
size:肿瘤大小
grade:肿瘤分级
nodes:受累淋巴结数量
pgr:孕激素受体表达水平
er:雌激素受体表达水平
hormon:激素治疗(0表示否,1表示是)
rfstime:复发或死亡时间(以天为单位)
status:事件状态(0表示被截尾,1表示事件发生)
# 去除pid、分类变量和因变量
factors <- gbsg[,c(-1,-3,-5,-9,-11)]
# 进行主成分分析
pca_result <- prcomp(factors, scale. = TRUE)
pca_result
summary(pca_result)
plot(pca_result)
biplot(pca_result)
结果展示:
Standard deviations (1, .., p=6):
[1] 1.2961594 1.1715555 0.9649744 0.9275627 0.7935553 0.7253623
Rotation (n x k) = (6 x 6):
PC1 PC2 PC3 PC4 PC5 PC6
age 0.3412682 -0.3740719 -0.69109813 -0.2693484 -0.17943112 -0.401553922
size -0.3583554 -0.4419920 0.35063073 -0.4831968 -0.56009059 0.078114616
nodes -0.3745135 -0.5435354 -0.04154952 -0.1137996 0.74135742 0.004621285
pgr 0.4552824 -0.2943870 0.60575588 0.1896922 0.08062551 -0.544637856
er 0.5266290 -0.4166516 0.01333686 0.1424638 -0.02134891 0.726728121
rfstime 0.3608834 0.3301822 0.17492011 -0.7904068 0.31230743 0.088696352
> summary(pca_result)
Importance of components:
PC1 PC2 PC3 PC4 PC5 PC6
Standard deviation 1.296 1.1716 0.9650 0.9276 0.7936 0.72536
Proportion of Variance 0.280 0.2288 0.1552 0.1434 0.1050 0.08769
Cumulative Proportion 0.280 0.5088 0.6640 0.8074 0.9123 1.00000
「注意:」 主成分分析通常用于连续变量而不是分类变量。主成分分析是一种多变量统计技术,旨在减少数据维度并捕捉数据中的模式。它通过线性变换将原始变量转换为一组新的、不相关的变量,称为主成分。这些主成分是原始变量的线性组合,能够最大程度地保留原始数据的方差。
# 提取每个主成分的方差贡献率
variance_proportion <- pca_result$sdev^2 / sum(pca_result$sdev^2)
# 计算累积方差贡献率
cumulative_variance_proportion <- cumsum(variance_proportion)
# 绘制保留方差图
plot(cumulative_variance_proportion,
xlab = "Number of Principal Components",
ylab = "Cumulative Variance Proportion",
ylim = c(0, 1),
type = 'b'
)
pca_score <- as.data.frame(pca_result$x)
# 通常选择贡献度大于80或者90%的作为分析变量
score <- pca_score[,c(-1,-2,-3)]
data <- cbind(gbsg[c(3,5,9,11)],score)
# 划分训练集和测试集
set.seed(123)
train_indices <- sample(x = 1:nrow(data), size = 0.8 * nrow(data), replace = FALSE)
test_indices <- sample(setdiff(1:nrow(data), train_indices), size = 0.2 * nrow(data), replace = FALSE)
train_data <- data[train_indices, ]
test_data <- data[test_indices, ]
train_gbsg <- gbsg[train_indices, ]
test_gbsg <- gbsg[test_indices, ]
library(randomForest)
library(pROC)
set.seed(666)
# 主成分分析后模型
rf <- randomForest(status~., data=train_data)
# 获取模型预测的概率
pred_prob <- predict(rf, newdata = test_data, type = "class")
# 计算真阳性率和假阳性率
roc1 <- pROC::roc(test_data$status, pred_prob)
# 原始数据模型
# 特征选择后的模型拟合
rf_handle <- randomForest(status~., data=train_gbsg)
pred_prob_handle <- predict(rf_handle, newdata = test_gbsg, type = "class")
# 计算真阳性率和假阳性率
roc2 <- pROC::roc(test_gbsg$status, pred_prob_handle)
plot(roc1,col="#2E9FDF", legacy.axes = TRUE)
plot.roc(roc2,add=TRUE,col="red")
abline(h = seq(0, 1, by = 0.1), col = "gray", lty = "dotted")
legend(0.40, 0.17, # 图例位置x,y
bty = "n", # 图例样式
legend=c("Handle AUC 0.684","Unhandle AUC 0.854"), # 添加分组
col=c("#2E9FDF","red"), # 颜色跟前面一致
lwd=2,
border="black") # 线条粗
主成分分析(PCA)是一种无监督学习方法,它的目标是通过线性变换将原始变量转换为一组不相关的主成分,以尽可能保留原始数据的方差。在某些情况下,「经过主成分分析的数据用于训练模型可能导致AUC(曲线下面积)值较原始数据训练的模型低的情况」。这可能是由以下几个原因导致的:
「为了解决这个问题,可以考虑以下几点:」
在乳腺癌研究中,主成分分析(PCA)和随机森林都扮演着重要的角色。PCA可以用于降维,帮助去除数据中的冗余信息,凸显出最重要的特征,从而有助于更好地理解乳腺癌数据集的内在结构。通过这种降维的方式,可以更好地可视化数据、识别潜在的模式,并为后续建模提供更清晰的特征空间。
另一方面,随机森林是一种强大的机器学习算法,它在处理复杂的、高维度的数据集时表现优异。在乳腺癌研究中,随机森林可以用于特征选择和分类任务,能够有效地处理大量特征并且对噪声具有一定的鲁棒性,因此能够提供对乳腺癌数据进行有效分类和预测的能力。
数据科学在医疗领域的应用前景广阔。随着医疗技术的不断进步,数据的积累和共享成为可能,数据科学将在医疗领域发挥越来越重要的作用。
总的来说,数据科学在医疗领域的发展将为医疗健康产业带来革命性的变化,为人类健康事业作出重要贡献。
*「未经许可,不得以任何方式复制或抄袭本篇文章之部分或全部内容。版权所有,侵权必究。」