单组学的多变量分析|1.PCA和PLS-DA

plsda.jpg

PCA和PLS-DA

我们使用SRBCT数据集来说明PCAsPLS-DA

安装并加载mixOmics包

BiocManager::install('mixOmics')
library(mixOmics)

示例数据集

示例数据是mixOmics包自带的经过标准化处理过的可以直接使用的数据,来自小圆蓝细胞肿瘤(SRBCT)。数据集包括63个样本的2308个基因的表达水平。样本分为四类:Burkitt淋巴瘤(BL) 8例,尤文氏肉瘤(EWS) 23例,成神经细胞瘤(NB) 12例,横纹肌肉瘤(RMS) 20例。

srbct数据集包含以下内容:

$gene:一个63行2308列的数据框。63个样本中2308个基因的表达水平。

$class:包含每个个体的类肿瘤的分类(共4个类)。

$gene.name:一个包含2308行和2列的数据框,包含关于基因的进一步信息。

data(srbct)
X = srbct$gene  #the gene expression data
dim(X)
X[1:6,1:10]
> dim(X)
[1]   63 2308
> X[1:6,1:10]
           g1     g2     g3     g4     g5     g6     g7     g8     g9    g10
EWS.T1 3.2025 0.0681 1.0460 0.1243 0.4941 3.1207 3.7106 1.8416 1.2607 2.9001
EWS.T2 1.6547 0.0710 1.0409 0.0520 0.2045 2.1609 2.4452 1.1473 0.7371 1.9989
EWS.T3 3.2779 0.1160 0.8926 0.1014 0.2818 1.9773 3.2590 1.4106 0.9548 2.0775
EWS.T4 1.0060 0.1906 0.4302 0.1035 0.2984 1.6804 5.8901 0.2958 0.7381 1.6610
EWS.T6 2.7098 0.2367 0.3693 0.2190 0.3711 1.7800 3.2376 0.6769 0.8546 0.6808
EWS.T7 2.0588 0.0823 0.9021 0.1288 0.3961 1.7199 2.1729 1.5609 0.6581 1.5038
summary(srbct$class)
> summary(srbct$class)
EWS  BL  NB RMS 
 23   8  12  20 

主成分分析(PCA)

对基因表达数据进行初步的PCA分析,可以首次探索数据变异的主要来源。PCA是一种无监督分析,没有提供关于肿瘤类别的信息。为了理解所解释的变化量,我们将主成分数目(ncomp = 10)设置为一个相当大的数字。在PCA中,centering(中心化)使所有基因具有相同的零平均值,利于关注样本之间的差异。Scaling(缩放)的目的是在分析中给所有基因相似的权重,因为高方差的基因会被认为在PCA中有影响,但不一定有生物学相关性。

pca.srbct = pca(X, ncomp = 10, center = TRUE, scale = TRUE)
# 输出每个主成分可解释方差(变异)
plot(pca.srbct)  
image-20210520204216309

上面的柱状图显示了两个成分足以解释来自数据的大部分或信息)。

在下面的样本图中,样本用前两个主成分表示,并根据肿瘤类型着色。这里我们观察到变异的主要来源可能不能用肿瘤类型来解释。注意,由于PCA是无监督的,为了可视化目的,我们只考虑PCA之后的样本类型信息。

plotIndiv(pca.srbct, group = srbct$class, ind.names = FALSE, 
          legend = TRUE, title = 'PCA on SRBCT')
image-20210520212126227

PLS-DA 分析

对于判别分析,我们设置因子Y来表示每个样本的类别隶属度。在PLS-DA过程中,将Y因子转化为一个虚拟矩阵。

Y = srbct$class 
summary(Y)        #结果分类
> summary(Y)      
EWS  BL  NB RMS 
 23   8  12  20 

PLS-DA模型采用10个成分来评估最终模型所需的性能和成分数量(见下文)。

样品图:将样本投影到前两个成分所形成的子空间中。

srbct.plsda <- plsda(X, Y, ncomp = 10) 
plotIndiv(srbct.plsda , comp = 1:2,
          group = srbct$class, ind.names = FALSE, 
          ellipse = TRUE, legend = TRUE, title = 'PLSDA on SRBCT')
image-20210520213532197

从样本图中可以看出,与无监督的PCA样本图相比,四种肿瘤类型明显分离。绘制每个类的置信椭圆以突出区分的强度(置信水平默认设置为95%,参数ellipse.level)。

在覆盖样本图之前,可以通过计算背景面来可视化预测区域。

# with background
background = background.predict(srbct.plsda, comp.predicted=2, dist = "max.dist") 
#optional: xlim = c(-40,40), ylim = c(-30,30))

plotIndiv(srbct.plsda, comp = 1:2,
          group = srbct$class, ind.names = FALSE, title = "Maximum distance",
          legend = TRUE,  background = background)
image-20210520214927781

性能

PLS-DA模型的分类性能通过重复10次的5折交叉验证来评估。重复次数对于确保分类错误率的良好估计是必要的(因为cv -fold是以随机方式确定的)。从性能结果中我们可以决定选择最终的PLS模型的成分数量。

set.seed(2543) # 设置种子,便于重复
perf.plsda.srbct <- perf(srbct.plsda, validation = "Mfold", folds = 5, 
                         progressBar = FALSE, auc = TRUE, nrepeat = 10)
# perf.plsda.srbct$error.rate  错误率
plot(perf.plsda.srbct, col = color.mixo(5:7), sd = TRUE, legend.position = "horizontal")
image-20210520221014050

从性能图中,可以看出总体错误率和平衡错误率(BER)相似,从1个成分急剧下降到3个成分。6个成分后错误率趋于稳定。ncomp = 6时,BER和最大距离足以实现良好的性能(0.06错误率)。

auc.plsda = auroc(srbct.plsda, roc.comp = 6)
image-20210520225414998

参考

  1. PLS-DA | mixOmics

相关文章

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,386评论 6 479
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,939评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,851评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,953评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,971评论 5 369
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,784评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,126评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,765评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,148评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,744评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,858评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,479评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,080评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,053评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,278评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,245评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,590评论 2 343

推荐阅读更多精彩内容