R語言中實現T檢驗及可視化

2021-02-21 微科享

本文轉自組學大講堂

T檢驗,亦稱student t檢驗(Student's t test),主要用於樣本含量較小(例如n < 30),總體標準差σ未知的正態分布。T檢驗是用t分布理論來推論差異發生的概率,從而比較兩個平均數的差異是否顯著。在R語言中T檢驗用的方法為:t.test(),如果數據不符合正態分布,也就是數據當中有較大的離群值時,可選用非參數秩和檢驗法,如Wilcoxon test,R語言中對應的方法為:wilcox.test()。關於檢驗方法的選擇可參考:差異統計檢驗如何選擇

單樣品T檢驗

例:某魚塘水的含氧量多年平均值為4.5mg/L,現在該魚塘設10點採集水樣,問該次抽樣的水中含氧量與多年平均值是否有顯著差異。


s<-c(4.33,4.62,3.89,4.14,4.78,4.64,4.52,4.55,4.48,4.26)
shapiro.test(s)   
t.test(s,mu=4.5)  

非配對兩樣本T檢驗

例:為了了解某一降血壓藥物的效果,將28名高血壓病患者隨機等分到實驗組和對照組,實驗組採用新降壓藥物,對照組則用標準藥物治療,測得治療前後舒張壓的差值如下。問新藥和標準藥的療效是否不同?

high<-c(134,146,106,119,124,161,107,83,113,129,97,123)
low<-c(70,118,101,85,107,132,94)
x<-c(high,low)
group<-c(rep("high",12),rep("low",7))

#正態性檢驗,wilcox.test()
shapiro.test(high)  #如果P>0.05 符合正態分布
shapiro.test(low)   #如果P>0.05 符合正態分布

#方差齊性檢驗:如果P>0.05 方差齊
bartlett.test(x~group)
#方法二:car包中leveneTest 檢驗,spss統計軟體默認的檢驗方法
leveneTest(x~group) 

#T檢驗, 如果 P<0.05 存在差異

t.test(high,low,paired=F,var.equal=T)   #如果方差不齊,可更改:var.equal=F,
#或者:
t.test(x~group,paired=F,var.equal=T)

配對兩樣本T檢驗

例:為了解DSCT冠狀動脈造影和超聲心動圖檢查兩種方法測定心臟病患者左室舒張末容積的差別,某醫院收集心臟病患者12例,同時分別用兩種檢測方法測得其大小如下,問兩種檢測方法的檢測結果是否不同?

ds<-c(82.5,85.2,87.6,89.9,89.4,90.1,87.8,87.0,88.5,92.4)
cs<-c(91.7,94.2,93.3,97.0,96.4,91.5,97.2,96.2,98.5,95.8)


leveneTest(ds,cs) 


d<-ds-cs
shapiro.test(d)


t.test(ds,cs,paired=T,alternative="two.sided",conf.level=0.95)

統計檢驗及繪圖-ggpubr

ggpubr包既可以做檢驗,有可以對統計結果進行整理繪圖,輸出結果比t檢驗更加友好。

例:兩種基因型(HH、RR)的水稻品種,分別在高氮和低氮條件下,的測FW、DW和PH三種生理指標數據:

women_weight <- c(38.9, 61.2, 73.3, 21.8, 63.4, 64.6, 48.4, 48.8, 48.5)
men_weight <- c(67.8, 60, 63.4, 76, 89.4, 73.3, 67.3, 61.3, 62.4) 
mydata <- data.frame( 
                group = rep(c("Woman", "Man"), each = 9),
                weight = c(women_weight,  men_weight)
                )

#統計檢驗

com1 <- compare_means( weight~ group , data = mydata, method = "t.test")

#結果P=0.015,小於0.05,具有顯著差異:
#.y.    group1 group2      p p.adj p.format p.signif method

# weight Man    Woman  0.0154 0.015 0.015    *        T-test

繪圖顯示

install.packages("ggpubr")
library(ggpubr)
p <- ggboxplot(mydata, x="group", y = "weight", color = "group", palette = "jco", add = "jitter",  short.panel.labs = FALSE)


p + stat_compare_means(method = "t.test",label.y=100)

p + stat_compare_means(aes(label = ..p.format..),method = "t.test",label.x = 1.5)


p + stat_compare_means(aes(label = ..p.signif..),method = "t.test",label.x = 1.5)

相關焦點

  • R語言:t檢驗
    (不同自由度)了解r語言幾個函數:dt,pt,qt,rt分別與dnorm,rnorm,pnorm,qnorm和rnorm對應 > * dt() 的返回值是正態分布概率密度函數(density)> * pt()返回值是正態分布的分布函數(probability)> * 函數qt()的返回值是給定概率p後的下百分位數(quantitle)>
  • r語言的秩和檢驗 - CSDN
    就兩組數據的比較而言,wilcox秩和檢驗(或稱Mann-Whitney U檢驗)是常見的非參數檢驗方法之一。本文簡介怎樣在R中進行wilcox秩和檢驗,以實現兩組間非參數差異分析。以上使用的示例數據與前文「R語言執行兩組間差異分析T檢驗」中的數據一致。已知group3的shannon指數數據分布並不符合正態性,此時,若我們想比較group2和group3的shannon指數間是否存在顯著差異,就不適合使用t檢驗(暫且不考慮對數據進行合理的轉化後是否會滿足t檢驗的參數假設),可採用非參數的方法(本文中介紹使用wilcox秩和檢驗)去實現。
  • r語言 t檢驗方法 - CSDN
    t檢驗(student t檢驗)是應用t分布的特徵,將t作為檢驗的統計量來進行統計推斷方法。它對樣本要求較小(例如n<30)。
  • 置換檢驗概述及其在R中的實現
    在兩種處理條件的試驗中,10個個體被隨機分配到其中一種條件(A或B)中,相應的結果變量也被記錄,如下所示。如果使用T檢驗分析,可假設數據抽樣自正態分布,然後使用雙尾T檢驗來驗證結果。置換檢驗的思路與之不同,為了檢驗兩種處理方式的差異,其工作方式如下:(1)首先計算觀測數據的t統計量,稱為t0;(2)隨機置換數據,即將10個觀測變量取出,再隨機分配5個變量給組A,另外5個給組B,並計算置換後數據的t統計量;如此隨機置換N次,獲得N個置換後數據的t統計量,分別稱為tn(n為第N次置換次數);(3)如此可獲得tn的經驗分布,如果
  • R語言實現meta分析過程中的可視化展示
    今天我們給大家介紹一個在R語言中進行meta分析的工具metafor包。我們通過這個包把相應的meta分析的常規的一些圖為大家介紹下。1. 森林圖,主要是對研究的一致性進行評估的可視化展示形式,以豎線為界,總結結果在線左認為是研究的因素降低,或者對研究的因素不利。此處我們使用此包自帶的卡介苗抵抗肺結核(TB)的研究數據進行森林他繪製。
  • 兩樣本t檢驗原理與R語言實現
    t檢驗也稱為student t檢驗,可以用來比較兩個均值的差異是否顯著,可分為單總體檢驗、雙總體檢驗、配對樣本檢驗。1.1歷史要了解t檢驗,就不得不提及他的發明者威廉·西利·戈塞特(William Sealy Gosset)。
  • R語言可視化學習筆記之添加p-value和顯著性標記
    #使用其他統計檢驗方法p+stat_compare_means(method = "t.test")", method = "t.test"),看看DEPDC1基因在不同的組中是否過表達還是低表達。", method = "t.test")
  • r語言 檢驗p值 - CSDN
    醫學統計與R語言:KS曲線,KS plot,lift plot醫學統計與R語言:身體酸痛,醒來學個卡方檢驗醫學統計與R語言:利用午睡幾分鐘,學習下Population Pyramid醫學統計與R語言:有序Logistic回歸平行線檢驗(Test proportional odds assumption )醫學統計與R語言:你的基金標書裡還少這幅圖
  • R-統計描述與假設檢驗
    -數據管理基礎代碼中我們已初步整理了統計描述的基本代碼,在本文中,我們將補充一些其他的統計描述代碼,並匯總統計描述的常用可視化方法。此外,對於醫學中常用的幾種假設檢驗,我們將相關的R語言代碼進行了整理,以供快速查看和使用。
  • 自助法(bootstrap)在統計檢驗中的應用及R語言實現過程
    為了實現這一目標,這些程序將研究中獲得的少數樣本視為該研究可能收集的眾多樣本中的一個隨機子集。通過該子集,可以獲得各樣本的均值、中位數和標準偏差等統計信息。假設對某項研究重複了很多次,這種情況下,樣本的均值將隨樣本的不同而變化,並獲得樣本均值的分布。
  • 一元(多元)線性回歸分析之R語言實現
    上篇介紹了《一元(多元)線性回歸分析之Excel實現》,本篇來探討一下回歸分析在R語言中的實現,我們將從更專業的角度對模型進行一些解讀。
  • 【語言班】R語言數據分析與可視化高級研修班(4.26-29)
    R語言是用於數據分析、數據可視化的高級程式語言,其功能包括:數據存儲和處理、科學計算工具;能夠進行幾乎所有的統計分析;內置豐富便捷的數據可視化功能
  • R語言聚類分析及可視化展示
    這篇文章主要介紹基於劃分的Kmeans聚類方法的實現過程。Kmeans算法是一種非常常見的聚類算法,基本思想非常簡單,這裡只介紹聚類算法在R語言下的實現過程及可視化展現結果。1.模擬數據聚類Kmeans算法需要求解各變量的均值,因此它要求輸入的數據集必須為連續的書之行數據。
  • R語言天氣可視化應用
    項目介紹談到多語言混編,同如在計算機領域跨學科一樣,是我所一直倡導一種工作模式。當程式語言百花齊放,各種細分市場的小眾語言如雨後春筍般地成長起來,比起通用型程式語言來說,這些小眾語言在特定的領域中有著非常明顯的優勢。 比如統計應用,如果用Java寫個邏輯回歸程序感覺深不見底,而用R語言實現邏輯回歸就是個很平常的一件事情。
  • 使用 R 與 python 進行 t 檢驗
    關於t 檢驗,有的資料上特意強調主要用於樣本含量較小(n<30)這一點,實際上 t 檢驗並非特意需要降低樣本量,來自於我多年前本科時候的印象裡,樣本量小是不得以的選擇,好像是啤酒釀造的時候的檢驗,樣本量低,並非是特意控制到較低的數量,我查了一下網上的資料,並沒有找到他起源的具體說法,但我已經沒有讀數時的生物統計課本了,因此只好做罷,各位有來源的可以告知。
  • 技術貼 | R語言:組學關聯分析和pheatmap可視化
    舉例展示R語言組學關聯分析的方法。宏基因組數據以KO-樣品豐度表為例。代謝組數據以metabolite-樣品豐度表為例。基本方法是用R語言psych包corr.test函數進行兩組數據的相關分析,結果經格式化後用pheatmap可視化得熱圖。一、模擬輸入 1.
  • R語言學習筆記之相關性矩陣分析及其可視化
    rcorr(x, type = c(「pearson」,「spearman」))。library(Hmisc)#加載包res2 <- rcorr(as.matrix(mydata))res2#可以用res2$r、res2$P來提取相關係數以及顯著性p-valueres2$r
  • Hotelling's t-squared test及在R語言中的計算
    Hotelling's t-squared test及在R語言中的計算有同學後臺留言諮詢Hotelling's t-squared test,本篇簡單梳理下這種方法。Hotelling's t-squared test是T檢驗(t-test)的多元形式,「多元」表示每個對象具有多組變量(Hotelling, 1931)。
  • R語言實現數據離散化方法總結
    接下來,我們用R語言來實現上面提到的幾種分箱的操作。2.1 準備數據本文所使用的系統環境首先,生成一組數據,這組織通過3個正態分布的隨機數進行疊加,主要用於體現分箱的不同特徵。2.2 infotheo包使用在R語言中,我們可以使用infotheo包,來做等寬分箱和等頻分箱。https://cran.r-project.org/web/packages/infotheo/安裝infotheo包,是非常簡單的,只需要一條命令。
  • R數據分析:主成分分析及可視化
    主成分分析是一個常見的降維,探索性技術,常常在量表編制或者其它變量較多數據集分析的時候會用到,今天給大家寫寫R語言中如何快速高效的進行PCA和可視化。很多時候,我們還需要畫一個碎石圖來決定保留多少個主成分,這個也非常容易實現:screeplot(mtcars.pca,type = 'lines')