久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Day06.大討論,!Lasso回歸模型,!

 外科黃文斌 2023-02-26 發(fā)布于廣東
對(duì)于生信實(shí)操,,我們認(rèn)為,,在線工具和 R 語(yǔ)言各有千秋,,兩者結(jié)合或許才是最好的策略,。這句話對(duì)于生信學(xué)習(xí),,或者數(shù)據(jù)挖掘都適用。純生信操作簡(jiǎn)單,,適合入門和初步數(shù)據(jù)分析,;R 門檻稍高,個(gè)性化強(qiáng),,適合深度數(shù)據(jù)挖掘,。為此,在純生信教程基礎(chǔ)上,,我們推出在線工具與 R 結(jié)合的新版21天教程重磅推出 | 新版21天生信實(shí)操教程!),。
圖片
生信數(shù)據(jù)挖掘的策略
新版21天教程將以原純生信教程以及《癌生物學(xué)》,、《R 數(shù)據(jù)科學(xué)》和《詹韋免疫學(xué)》等經(jīng)典權(quán)威教材的核心內(nèi)容為基礎(chǔ),并結(jié)合腫瘤和非腫瘤疾病最新發(fā)表的論文展開,。在21天學(xué)習(xí)結(jié)束后,,芒果團(tuán)隊(duì)會(huì)集中展開指定文獻(xiàn)中所有圖表的復(fù)現(xiàn),讓參與學(xué)習(xí)的小伙伴真正實(shí)現(xiàn)“學(xué)了就能會(huì),、會(huì)了就能用”,。這將是新版21天教程的最大特色!盡管本文沒有進(jìn)行Lasso回歸模型構(gòu)建,,但其應(yīng)用廣泛,,值得關(guān)注。本次我們主要分享Lasso回歸,。

往期推薦


Day01.最新生信思路 Fig1復(fù)現(xiàn),!差異分析和生存分析!嘗鮮版,!

Day02.Fig2復(fù)現(xiàn),!熱圖、富集分析和互作分析,!嘗鮮版,!

Day03.預(yù)測(cè)模型,,從批量生存分析談起!

Day04.預(yù)測(cè)模型,,聊聊ROC曲線,!嘗鮮版!

Day05.單因素,、多因素COX回歸分析,!嘗鮮版!

在與果友交流過(guò)程中,,Lasso回歸經(jīng)常是與Cox回歸同時(shí)被問(wèn)及的話題,。比如①預(yù)后相關(guān)基因是指做單因素Cox回歸有意義的基因,還要深入做Lasso或者多因素Cox嗎,?要?、贚asso預(yù)后建模后得到的風(fēng)險(xiǎn)評(píng)估基因熱圖的差異不顯著該怎么處理呢?AUC明明很高,,但具體到模型內(nèi)的各個(gè)基因在高低風(fēng)險(xiǎn)中的差異表達(dá)無(wú)顯著區(qū)別是怎么回事,?差異分析是前提!③預(yù)測(cè)模型做完單因素后可以直接做Lasso回歸嗎,,就不做多因素了,,因?yàn)長(zhǎng)asso回歸的基因數(shù)只有幾個(gè)了,?④單因素Cox?Lasso篩選預(yù)后相關(guān)DEGs?多因素模型風(fēng)險(xiǎn)評(píng)分,。這種模式能否只做Lasso?多因素呢?因?yàn)槲覇位蚝Y選的基因過(guò)少,,直接做lasso模型效果好一點(diǎn),?群里討論了,,不過(guò)常規(guī)是都要做,或者重置差異分析的條件,。
圖片
Tibshirani在1996年引入 Lasso (Least Absolute Shrinkage and Selection Operator)的概念,,用于參數(shù)的選擇和收縮。Lasso回歸是以縮小變量集為核心思想的壓縮估計(jì)方法,,通過(guò)構(gòu)造一個(gè)懲罰函數(shù),,將變量系數(shù)進(jìn)行壓縮,并使某些不重要的標(biāo)量回歸系數(shù)變?yōu)?,,從而選擇最重要的變量進(jìn)入下游分析,。Lasso 回歸是一種線性回歸模型,也稱正則化或懲罰回歸模型,,使用L1正則化項(xiàng)來(lái)限制變量的系數(shù),,從而用于變量數(shù)量較多的大數(shù)據(jù)集,而傳統(tǒng)的線性回歸模型無(wú)法處理這類大數(shù)據(jù),。交叉驗(yàn)證用于確證Lasso結(jié)果中的取值是否最佳,。
圖片
Lasso回歸和嶺回歸都是常用的正則化技術(shù),用來(lái)減少系數(shù)的大小,,但使用的正則項(xiàng)不同,。Lasso回歸使用L1正則項(xiàng),嶺回歸使用L2正則項(xiàng),。L1正則項(xiàng)的特點(diǎn)是,,它可以完全移除某些系數(shù),使得模型中的變量更加稀疏,,即變量較少,,這對(duì)于特征選擇非常有用。而嶺回歸不具有變量的篩選功能,,它只能讓變量之間的差異變得更小,。但L1正則項(xiàng)也有一些缺點(diǎn),由于L1正則項(xiàng)對(duì)所有變量的懲罰都是絕對(duì)值,,所以對(duì)于變量之間的大小沒有影響,。因此,L1正則項(xiàng)會(huì)使得變量之間存在較大的差異,,導(dǎo)致模型的可解釋性降低,。
接下來(lái),我們進(jìn)行Lasso回歸的實(shí)操,。首先準(zhǔn)備數(shù)據(jù),。
####----11_Lasso_Regression----####rm(list = ls())gc()
load('TCGA_STAD_data.RData')
library(dplyr)library(tidyverse)library(ggplot2)library(survival)
library(glmnet) # 正則化技術(shù)library(car) # 多重共線性檢驗(yàn)library(corrplot) # 相關(guān)性繪圖library(ggpubr) #基于ggplot2的可視化包ggpubrlibrary(patchwork) # 拼圖library(ROCR) # 畫ROC曲線library(caret) # 切割數(shù)據(jù)
Data <- data[,c(6,12:30917)]Data$Status = ifelse(Data$Status =='Dead','1','0')Data <- as.data.frame(lapply(Data,as.numeric))
### 數(shù)據(jù)檢查min(Data$month) # 查看最小值,看是否有0Data2 <- filter(Data, Data$month > 0) # 刪除數(shù)據(jù)框中time值小于0的樣本,有0的話后續(xù)分析會(huì)報(bào)錯(cuò)dataL <- Data2  # 數(shù)據(jù)備份
探究數(shù)據(jù)的特征,, 繪制直方圖和正態(tài)分布概率密度函數(shù)圖
hist(dataL$FBLN5, main = 'Distribution of gene expression levels',     xlab = 'FBLN5', ylab = 'gene expression', col = 'skyblue')  # 直方圖curve(dnorm(x, mean = mean(dataL$FBLN5), sd = sd(dataL$FBLN5)), add = TRUE, col = 'red') # 正態(tài)分布的概率密度函數(shù)# shapiro-wilk檢驗(yàn)shapiro.test(dataL$FBLN5) # 適用于小樣本數(shù)據(jù),,N≤50,若p值<0.05,,則數(shù)據(jù)不符合正態(tài)分布# Kolmogorov-Smirnov檢驗(yàn)ks.test(dataL$FBLN5, pnorm, mean = mean(dataL$FBLN5), sd = sd(dataL$FBLN5)) # 適用于大樣本數(shù)據(jù),,N>50,若p值<0.05,,則數(shù)據(jù)不符合正態(tài)分布# 對(duì)所有列的數(shù)據(jù)進(jìn)行Kolmogorov-Smirnov循環(huán)檢驗(yàn)ks_result <- data.frame('Gene' = character(), 'p.value' = numeric())for (i in 3:length(colnames(dataL))){ p.value <- ks.test(dataL[,i], pnorm, mean = mean(dataL[,i]), sd = sd(dataL[,i]))$p.value Gene <- colnames(dataL)[i] tmp <- data.frame(Gene = Gene, p.value = p.value) ks_result <- rbind(ks_result, tmp)}max(ks_result$p.value) # 若p值<0.05,,則數(shù)據(jù)不符合正態(tài)分布
圖片
繪制相關(guān)矩陣,檢查數(shù)據(jù)的多重共線性問(wèn)題
cor_matrix <- cor(dataL[,3:12], use = 'everything', method = c('spearman'))corrplot(cor_matrix, type = 'upper', method = 'color', tl.cex = 0.8, tl.col = 'black', order = 'AOE')
圖片
多重共線性檢查之方差膨脹因子(VIF)
dataL2 <- dataL[,1:12]model <- coxph(Surv(month, Status) ~ ., data = dataL2)vif(model)plot(vif(model), xlim = c(0,10), ylim = c(0,10), xlab = 'variables', ylab = 'VIF', cex = 3, pch = 1)# 當(dāng)VIF大于5時(shí),,認(rèn)為存在多重共線性,,當(dāng)VIF大于10時(shí),認(rèn)為存在嚴(yán)重的多重共線性
圖片

構(gòu)建Lasso回歸模型

time <- dataL[,'month']status <- dataL[,'Status']x <- as.matrix(dataL[,-c(1,2)]) #x為輸入特征,是矩陣格式y(tǒng) <- as.matrix(dataL$Status)lasso <- glmnet(x = x, y = y, family = 'binomial', alpha = 1, # alpha = 1為L(zhǎng)ASSO回歸,,= 0為嶺回歸,,0和1之間則為彈性網(wǎng)絡(luò) nlambda = 100) # nlambda表示正則化路徑中的個(gè)數(shù),這個(gè)參數(shù)就可以起到一個(gè)閾值的作用,,決定有多少基因的系數(shù)可以留下來(lái),。默認(rèn)值為100。print(lasso)plot(lasso, xvar = 'lambda', label = TRUE) # 系數(shù)分布圖,,由“l(fā)og-lambda”與變量系數(shù)作圖,,展示根據(jù)lambda的變化情況每一個(gè)特征的系數(shù)變化,展示了Lasso回歸篩選變量的動(dòng)態(tài)過(guò)程plot(lasso, xvar = 'dev', label = TRUE) # 也可以對(duì)%dev繪圖plot(lasso, xvar = 'norm', label = TRUE) # “L1范數(shù)”與變量系數(shù)作圖
圖片

交叉驗(yàn)證,,挑選合適的λ值,,變量篩選

set.seed(1234) # 設(shè)置種子數(shù),保證每次得到的交叉驗(yàn)證圖是一致的# 計(jì)算100個(gè)λ,,畫圖,,篩選表現(xiàn)最好的λ值lasso_cv <- cv.glmnet(x = x, y = y, family = 'binomial', alpha = 1, nlambda = 100) # 交叉驗(yàn)證,如果結(jié)果不理想,,可以重新單獨(dú)運(yùn)行這一行代碼,,或者換一下種子數(shù)plot(lasso_cv)  # 縱坐標(biāo):部分似然偏差。上橫坐標(biāo):當(dāng)前的變量數(shù),。下橫坐標(biāo):log(λ)
圖片
coef_lasso <- coef(lasso, s = 0.1) # 查看每個(gè)變量的回歸系數(shù),。s為lasso回歸的結(jié)果中的lambda值,選取相應(yīng)的λ值可以得到相應(yīng)數(shù)量的變量的回歸系數(shù)coef_lasso
set.seed(1234) # 設(shè)置種子數(shù),,保證每次得到的交叉驗(yàn)證圖是一致的# 計(jì)算100個(gè)λ,,畫圖,篩選表現(xiàn)最好的λ值lasso_cv <- cv.glmnet(x = x, y = y, family = 'binomial', alpha = 1, nlambda = 100) # 交叉驗(yàn)證,,如果結(jié)果不理想,,可以重新單獨(dú)運(yùn)行這一行代碼,,或者換一下種子數(shù)plot(lasso_cv) # 縱坐標(biāo):部分似然偏差。上橫坐標(biāo):當(dāng)前的變量數(shù),。下橫坐標(biāo):log(λ)
lambda <- lasso_cv$lambda.min# lambda <- lasso_cv$lambda.1selambda
coef_lasso_cv <- coef(lasso, s = lambda) # 查看每個(gè)變量的回歸系數(shù)。s為lasso回歸結(jié)果中的lambda值,,可以得到相應(yīng)數(shù)量的變量的回歸系數(shù)coef_lasso_cv[,1][coef_lasso_cv[,1]!=0]
exp(coef_lasso_cv[,1][coef_lasso_cv[,1]!=0]) # 自然對(duì)數(shù)的指數(shù)函數(shù),,它的定義為exp(x) = e^x,其中e是自然對(duì)數(shù)的底數(shù)(約等于2.718),,回歸系數(shù)<0的exp>1,,反之<1。
model_lasso_min <- glmnet(x = x, y = y, alpha = 1, lambda = lasso_cv$lambda.min)# model_lasso_1se <- glmnet(x = x, y = y, alpha = 1, lambda = lasso_cv$lambda.1se)# 這兩個(gè)值體現(xiàn)在參數(shù)lambda上,。有了模型,,可以將篩選的基因挑出來(lái)了。# 所有基因存放于model_lasso_min模型的子集beta中,,用到的基因有一個(gè)s0值,,沒用的基因只記錄了“.”,所以可以用下面代碼挑出用到的基因,。model_lasso_min$beta[,1][model_lasso_min$beta[,1]!=0]choose_gene_min = rownames(model_lasso_min$beta)[as.numeric(model_lasso_min$beta) != 0]# choose_gene_1se = rownames(model_lasso_1se$beta)[as.numeric(model_lasso_1se$beta) != 0]length(choose_gene_min)# length(choose_gene_1se)
最終篩選得到25個(gè)基因
DCBLD2 NECAB2 ECH1 SERPINE1 0.0001176182 0.0050609354 0.0013001252 0.0076438492 PAPPA2 EGF IGFBP1 GPC3 0.0058767537 0.0017086554 0.0018483925 0.0031675436 SYN2 PRTG H3C14 U3 0.0046942426 0.0172503772 -0.0108994643 -0.0100155497 CTAGE11P AL355001.1 AL022316.1 PRDX3P2 0.0059144276 -0.0078457384 -0.0172823521 -0.0105412767 MTHFD1P1 AC002480.1 SCAT8 PWP2 -0.0035888050 0.0047360137 0.0010923467 0.0090971061 PTPRJ.AS1 HPR AL049839.2 SOWAHCP2 -0.0011330955 0.0002045581 0.0045504295 -0.0013408436 AC016583.2 0.0054207717

主要參考資來(lái)自博客園,,作者小高不高,鏈接:

https://www.cnblogs.com/xiaogaobugao/p/17131487.html,。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多