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

分享

統(tǒng)計(jì) | R語(yǔ)言執(zhí)行兩組間差異分析Wilcox秩和檢驗(yàn)

 生物_醫(yī)藥_科研 2021-12-24
兩組間差異的非參數(shù)檢驗(yàn)之Wilcox秩和檢驗(yàn)在R中實(shí)現(xiàn)

在進(jìn)行兩組數(shù)據(jù)間的差異分析時(shí),,我們通常會(huì)想到使用t檢驗(yàn),。但若數(shù)據(jù)不滿足執(zhí)行t檢驗(yàn)的參數(shù)假設(shè)(例如數(shù)據(jù)分布不符合正態(tài)性,變量在本質(zhì)上就嚴(yán)重偏倚或呈現(xiàn)有序關(guān)系),,無(wú)法使用t檢驗(yàn)分析時(shí),,可以考慮使用非參數(shù)的方法來(lái)完成。

就兩組數(shù)據(jù)的比較而言,,wilcox秩和檢驗(yàn)(或稱Mann-Whitney U檢驗(yàn))是常見(jiàn)的非參數(shù)檢驗(yàn)方法之一,。本文簡(jiǎn)介怎樣在R中進(jìn)行wilcox秩和檢驗(yàn),以實(shí)現(xiàn)兩組間非參數(shù)差異分析,。
本文使用的作圖數(shù)據(jù)的網(wǎng)盤(pán)鏈接(提取碼o8lr):
https://pan.baidu.com/s/1b-1INL4HFrsIOvs_0UfByw
文件“alpha.txt”為某16S細(xì)菌群落測(cè)序所獲得的部分alpha多樣性指數(shù)數(shù)據(jù),包含3列信息:sample,,樣本名稱,;observed_species和shannon分別為兩種類(lèi)型的alpha多樣性指數(shù)。文件“group.txt”為各樣本分組信息,,第一列(sample)為各樣本名稱,;第二列(group)為各樣本的分組信息。
以上使用的示例數(shù)據(jù)與前文“R語(yǔ)言執(zhí)行兩組間差異分析T檢驗(yàn)”中的數(shù)據(jù)一致,。已知group3的shannon指數(shù)數(shù)據(jù)分布并不符合正態(tài)性,,此時(shí),若我們想比較group2和group3的shannon指數(shù)間是否存在顯著差異,,就不適合使用t檢驗(yàn)(暫且不考慮對(duì)數(shù)據(jù)進(jìn)行合理的轉(zhuǎn)化后是否會(huì)滿足t檢驗(yàn)的參數(shù)假設(shè)),,可采用非參數(shù)的方法(本文中介紹使用wilcox秩和檢驗(yàn))去實(shí)現(xiàn)。

數(shù)據(jù)預(yù)處理及正態(tài)性假設(shè)檢驗(yàn)



首先將上述兩個(gè)數(shù)據(jù)表讀入R中,,并合并在一起,,以及數(shù)據(jù)的正態(tài)分布檢驗(yàn)。
library(reshape2)

#讀入文件,,合并分組信息,,數(shù)據(jù)重排
alpha <- read.table('alpha.txt', sep = '\t', header = TRUE, stringsAsFactors = FALSE, check.names = FALSE)
group <- read.table('group.txt', sep = '\t', header = TRUE, stringsAsFactors = FALSE, check.names = FALSE)
alpha <- melt(merge(alpha, group, by = 'sample'), id = c('sample', 'group'))

#選擇要比較的分組(此處查看 group1 與 group2 在 shannon 指數(shù)上是否存在顯著差異)
shannon_23 <- subset(alpha, variable == 'shannon' & group %in% c('2', '3'))
shannon_23$group <- factor(shannon_23$group)
head(shannon_23, 10)

#Shapiro-Wilk 檢驗(yàn)數(shù)據(jù)是否符合正態(tài)分布(發(fā)現(xiàn)不符合正態(tài)分布)
tapply(shannon_23$value, shannon_23$group, shapiro.test)

選取的數(shù)據(jù)框“shannon_23”內(nèi)容如下所示。第一列(sample),,兩組數(shù)據(jù)中所含樣本名稱,;第二列(group),兩組分組名稱,,且分組列已轉(zhuǎn)化為因子類(lèi)型,;第三列(variable),alpha多樣性指數(shù)shannon指數(shù),;第四列(value),,shannon指數(shù)的數(shù)值。

通過(guò)Shapiro-Wilk檢驗(yàn)得知數(shù)據(jù)分布不滿足正態(tài)性,。這里p值小于0.05表明數(shù)據(jù)違背了正態(tài)性分布的零假設(shè),。




Wilcoxon檢驗(yàn)



不符合正態(tài)性前提的數(shù)據(jù),,無(wú)法應(yīng)用t檢驗(yàn)去比較差異。我們考慮使用非參數(shù)的方法作為替代,,對(duì)于兩組數(shù)據(jù)的比較,,可使用wilcoxon檢驗(yàn)。類(lèi)似于t檢驗(yàn),,根據(jù)樣本間是否獨(dú)立,,wilcoxon檢驗(yàn)分為wilcox秩和檢驗(yàn)以及wilcox符號(hào)秩和檢驗(yàn)。


wilcox秩和檢驗(yàn)

假設(shè)樣本間是相互獨(dú)立的,,直接使用wilcox秩和檢驗(yàn)去處理,。它是獨(dú)立樣本t檢驗(yàn)的一種非參數(shù)替代方法。

此處使用的wilcox.test()與t檢驗(yàn)t.test()的參數(shù)很相似,。wilcox_test()中默認(rèn)兩組間相互獨(dú)立(默認(rèn)參數(shù)paired = FALSE),,執(zhí)行獨(dú)立樣本的wilcox秩和檢驗(yàn);同時(shí)默認(rèn)的備擇假設(shè)是雙側(cè)的(默認(rèn)參數(shù)alternative = 'two.sided'),,即執(zhí)行雙側(cè)檢驗(yàn),,可分別使用“alternative = 'less'”或“alternative = 'greater'”執(zhí)行單側(cè)wilcox檢驗(yàn)。

##wilcox 秩和檢驗(yàn),,我們執(zhí)行了一個(gè)雙側(cè)檢驗(yàn)
wilcox_test <- wilcox.test(value~group, shannon_23, paired = FALSE, alternative = 'two.sided')
wilcox_test
wilcox_test$p.value

由于p值(約為0.003)小于0.05,,即拒絕了原假設(shè)(原假設(shè)兩組間沒(méi)有差異),group2和group3的shannon指數(shù)間存在顯著不同,。


wilcox符號(hào)秩和檢驗(yàn)

假設(shè)樣本間并非相互獨(dú)立的,,可考慮wilcox符號(hào)秩和檢驗(yàn),它是非獨(dú)立樣本t檢驗(yàn)的一種非參數(shù)替代方法,。例如,,非獨(dú)立組設(shè)計(jì)(dependent groups design)、重復(fù)測(cè)量設(shè)計(jì)(repeated measures design)等,。盡管此時(shí)你選用獨(dú)立樣本的wilcox秩和檢驗(yàn)方法也是可行的,,這種分析方法本身并沒(méi)問(wèn)題(僅僅是在統(tǒng)計(jì)算法上存在一些不同,相較之下可能wilcox符號(hào)秩和檢驗(yàn)會(huì)更合適一些),。

此時(shí)在wilcox.test()中設(shè)定參數(shù)“paired = TRUE”即可執(zhí)行wilcox符號(hào)秩和檢驗(yàn),。

##wilcox 符號(hào)秩和檢驗(yàn),我們執(zhí)行了一個(gè)雙側(cè)檢驗(yàn)
wilcox_test <- wilcox.test(value~group, shannon_23, paired = TRUE, alternative = 'two.sided')
wilcox_test
wilcox_test$p.value

根據(jù)p值(0.039,,低于0.05)可知group2和group3的shannon指數(shù)間存在顯著不同,。


可視化展示

考慮作圖將兩組差異進(jìn)行可視化展示。例如,,一個(gè)簡(jiǎn)單的箱線圖示例,。

#boxplot() 箱線圖
boxplot(value~group, data = shannon_23, col = c('blue', 'orange'), ylab = 'Shannon', xlab = 'Group', main = 'wilcox test: p-value = 0.00295')

Wilcox秩和檢驗(yàn)的一個(gè)批處理示例


相較于參數(shù)分析的t檢驗(yàn),wilcox秩和檢驗(yàn)不必事先驗(yàn)證數(shù)據(jù)分布的正態(tài)性,因此理論上來(lái)講,,只要是兩組數(shù)據(jù)間的差異分析均可使用wilcox秩和檢驗(yàn)去完成,,因此其適用范圍相較于t檢驗(yàn)也更廣泛。在數(shù)據(jù)量較大的情況下(可能會(huì)存在部分?jǐn)?shù)據(jù)滿足t檢驗(yàn)分析的條件,,而另一部分?jǐn)?shù)據(jù)則不滿足,,無(wú)法做到全部使用t檢驗(yàn)去實(shí)現(xiàn)),可以考慮使用循環(huán)逐一挑選分組后,,直接執(zhí)行wilcox秩和檢驗(yàn)進(jìn)行各兩兩分組間的差異分析,。盡管這種方法比較“粗暴”,但也不失為一種備選方案,。

如下將展示一個(gè)批處理示例,。

網(wǎng)盤(pán)附件中提供了另一示例數(shù)據(jù)集“gene.txt”。表格中每一行為一種基因,,每一列為一個(gè)樣本,,交叉區(qū)域?yàn)楦骰蛟诟鳂颖局械南鄬?duì)豐度。接下來(lái),,我們期望通過(guò)wilcox秩和檢驗(yàn),找到在group1和group2組中,,具有豐度差異的基因,。


##wilcox 檢驗(yàn)批處理示例
library(doBy) #使用其中的 summaryBy() 以方便按分組計(jì)算均值、中位數(shù)

#讀取數(shù)據(jù)
gene <- read.table('gene.txt', sep = '\t', row.names = 1, header = TRUE, stringsAsFactors = FALSE, check.names = FALSE)
group <- read.table('group.txt', sep = '\t', header = TRUE, stringsAsFactors = FALSE, check.names = FALSE)
result <- NULL

#使用循環(huán),,逐一對(duì)各基因進(jìn)行兩組間 wilcox 秩和檢驗(yàn)
for (n in 1:nrow(gene)) {
gene_n <- data.frame(t(gene[n,subset(group, group %in% c(1, 2))$sample]))
gene_id <- names(gene_n)[1]
names(gene_n)[1] <- 'gene'

gene_n$sample <- rownames(gene_n)
gene_n <- merge(gene_n, group, by = 'sample', all.x = TRUE)

gene_n$group <- factor(gene_n$group)
p_value <- wilcox.test(gene~group, gene_n)$p.value
if (!is.na(p_value) & p_value < 0.05) {
stat <- summaryBy(gene~group, gene_n, FUN = c(mean, median))
result <- rbind(result, c(gene_id, as.character(stat[1,1]), stat[1,2], stat[1,3], as.character(stat[2,1]), stat[2,2], stat[2,3], p_value))
}
}

#輸出統(tǒng)計(jì)結(jié)果
result <- data.frame(result)
names(result) <- c('gene_id', 'group1', 'mean1', 'median1', 'group2', 'mean2', 'median2', 'p_value')
result$p_adjust <- p.adjust(result$p_value, method = 'BH') #推薦加個(gè) p 值校正的過(guò)程
write.table(result, 'gene.wilcox.txt', sep = '\t', row.names = FALSE, quote = FALSE)
我們主要輸出這些結(jié)果:gene_id,,基因id;group1和group2,,分別為所需比較的分組1和分組2的名稱,;mean1、median1,、mean2,、median2,分別為各基因在分組1,、2中的平均豐度以及中位數(shù)數(shù)值,;p_value,顯著性p值,,此處僅輸出了p值低于0.05的結(jié)果(即只保留相對(duì)豐度在group1,、2中具有顯著差異的基因);p_adjust,,同時(shí)通過(guò)Benjamini方法校正p值(嗯嗯,,這里的數(shù)據(jù)p值校正后,沒(méi)有差異基因……)。

特別說(shuō)明

既然參數(shù)檢驗(yàn)的前提條件有些苛刻,,自己的數(shù)據(jù)不一定都滿足參數(shù)分析的條件,,那么以后需要用到組間差異比較時(shí),直接全部使用非參數(shù)的檢驗(yàn)就不可以了,?

雖然對(duì)全部數(shù)據(jù)直接使用非參數(shù)的檢驗(yàn)方式理論上沒(méi)啥問(wèn)題,,但還是有點(diǎn)粗暴了一些。兩種方法(此處比較了t檢驗(yàn)和wilcox秩和檢驗(yàn))畢竟還是有差別的,,非參數(shù)方法普遍沒(méi)有參數(shù)方法嚴(yán)格,。對(duì)于符合參數(shù)檢驗(yàn)條件的數(shù)據(jù)來(lái)講,使用參數(shù)檢驗(yàn)還有可能會(huì)鑒別出非參數(shù)檢驗(yàn)鑒別不到的差異,,此時(shí)需要特別關(guān)注,。例如,某數(shù)據(jù)符合t檢驗(yàn)的條件,,t檢驗(yàn)的p值顯著,,但wilcox檢驗(yàn)p值不顯著,那么這時(shí)t檢驗(yàn)的結(jié)果會(huì)相對(duì)可靠一些,。



    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(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)論公約

    類(lèi)似文章 更多