r语言pls分析_R语言中的偏最小二乘回归PLS-DA
主成分回歸(PCR)的方法 本質上是使用第一個方法的普通最小二乘(OLS)擬合?來自預測變量的主成分(PC)。這帶來許多優點:
預測變量的數量實際上沒有限制。
相關的預測變量不會破壞回歸擬合。
但是,在許多情況下,執行類似于PCA的分解要明智得多。
今天,我們將 在Arcene數據集上執行PLS-DA,??其中包含100個觀察值和10,000個解釋變量。
讓我們開始使用R
癌癥/無癌標簽(編碼為-1 / 1)存儲在不同的文件中,因此我們可以將其直接附加到完整的數據集,然后使用公式語法來訓練模型。
# Load caret, install if necessary
library(caret)
arcene
colClasses = c(rep("numeric", 10000), "NULL"))
# Add the labels as an additional column
arcene$class
,現在的主要問題是:
我們如何根據其血清的MS譜準確預測患者是否生病?
哪種蛋白質/ MS峰最能區分患者和健康患者?
關于預處理,我們將使用preProc參數以精確的順??序刪除零方差預測變量,并對所有剩余的變量進行標準化。考慮樣本的大小(n= 100),我將選擇10倍的重復5倍交叉驗證(CV)–大量重復補償了因減少的折疊次數而產生的高方差–總共進行了50次準確性估算。
# Compile cross-validation settings
set.seed(100)
myfolds
control
?
此圖描繪了CV曲線,在這里我們可以學習從使用不同數量的LV(x軸)訓練的模型中獲得的平均準確度(y軸,%)。
現在,我們 進行線性判別分析(LDA)進行比較。 我們還可以嘗試一些更復雜的模型,例如隨機森林(RF)。
最后,我們可以比較PLS-DA,PCA-DA和RF的準確性。
我們將使用caret :: resamples編譯這三個模型,并借用ggplot2的繪圖功能來比較三種情況下最佳交叉驗證模型的50個準確性估計值。
?
顯然,長時間的RF運行并沒有轉化為出色的性能,恰恰相反。盡管三個模型的平均性能相似,但RF的精度差異要大得多,如果我們要尋找一個健壯的模型,這當然是一個問題。在這種情況下,PLS-DA和PCA-DA表現出最好的性能(準確度為63-95%),并且這兩種模型在診斷新血清樣品中的癌癥方面都表現出色。
總而言之,我們將使用PLS-DA和PCA-DA中預測的可變重要性(ViP)確定十種最能診斷癌癥的蛋白質。
?
?
上面的PLS-DA ViP圖清楚地將V1184與所有其他蛋白質區分開。這可能是一個有趣的癌癥生物標志物。當然,必須進行許多其他測試和模型以提供可靠的診斷工具。
如果您有任何疑問,請在下面發表評論。
總結
以上是生活随笔為你收集整理的r语言pls分析_R语言中的偏最小二乘回归PLS-DA的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: AppleID的常见格式有哪些
- 下一篇: python归并排序理解不了_一日一技: