PLS-DA个人使用R中的插入符号包进行绘图

时间:2019-02-11 03:39:37

标签: r r-caret pls

我想使用R中的脱字符号包绘制PLS-DA的个人图(类似于PCA图),并为不同的组添加颜色(请参见图片,这是PCA的示例,但我想就像是用于PLS-DA的相同类型的图表)。有人可以帮我吗?

PCA plot

这是一个代码,用于生成类似于我使用的数据的随机数据。 Ycalib包含一个具有2个级别的向量变量,Xcalib包含539个光谱波长(在代码下方生成10个波长)。

set.seed(1001)
Ycalib <- data.frame(
    y = sample(c("0", "1"), 10, replace = TRUE)

)

set.seed(1001)
Xcalib <- data.frame(
    x1 = sample(1:10),
    x2 = sample(1:10),
    x3 = sample(1:10),
    x4 = sample(1:10),
    x5 = sample(1:10),
    x6 = sample(1:10),
    x7 = sample(1:10),
    x8 = sample(1:10),
    x9 = sample(1:10),
    x10= sample(1:10)

)

这是我在插入符号中的PLS-DA代码:

library(caret)
set.seed(1001) 
ctrl<-trainControl(method="repeatedcv",number=10,classProbs = TRUE,summaryFunction = twoClassSummary) 
plsda<-train(x=Xcalib, # spectral data
              y=Ycalib, # factor vector
              method="pls", # pls-da algorithm
              tuneLength=10, # number of components
              trControl=ctrl, # ctrl contained cross-validation option
              preProc=c("center","scale"), # the data are centered and scaled
              metric="ROC") # metric is ROC for 2 classes
plsda

我希望我已经很清楚R,因为我是R的初学者。

1 个答案:

答案 0 :(得分:0)

也许有点晚了,但是我相信这可以通过使用以下方法从pls模型中提取前两个组件来完成:

dfWithComponents <- as.data.frame(model$finalModel$scores[,])

然后,您可以将其绑定到原始数​​据,并且可以根据需要绘制图形,例如使用ggplot2

p <- ggplot(biocExp, aes(x=`Comp 1`,y=`Comp 2`, color = classificationVar)) + geom_point()