淺入淺出 | 學生t檢驗 (附qPCR計算升級版)

2021-01-14 肖恩札記

前言1:首先 向肖恩的好讀者,好夥伴們道一聲感謝,感謝一路的陪伴,最近有數位讀者來詢問問題,讓我很開心。在此,也需要向大家道歉,大家在微信公眾號的留言,只有48h內可以回復,而我是個學生,不能保證固定時間查看公眾號。而且微信公眾號沒有提醒,有所怠慢請見諒咯。

前言2:2020是新的一年,然而,這新年伊始充滿了坎坷,充滿了讓大家措手不及的意外,但我相信大家對生活的熱情不減,生活還要繼續,既然如此,何不重整行囊,砥礪前行。(畢竟我已在家葛優多日,是時候學習啦)

那麼進入正題吧!

今天我們講講假設檢驗這個東西,並且會以qPCR數據處理為例子,應用假設檢驗,獲得傳說中小於0.05就很了不起就P值。

文末還有大大的彩蛋哦!!!

假設檢驗

假設檢驗這個東西,我們顧名思義,就是檢驗某一個假設,所以,這就很自然地引出兩個重點,欸對,兩個重點就是:

我們可以這麼理解student t檢驗這個東西:

我有兩組數據,A和B。我想知道A組數據和B組數據的均值是不是有顯著性差異。 那麼我們要先有一個假設,然後檢驗這個假設成不成立

一般來說,我們的假設是,A,B兩組沒有差異,然後計算在A,B沒有差異的情況下,出現我們觀察到的數據的概率。如果該概率<0.05,那麼我們就說,這事發生的概率太低了,這個假設不靠譜,我們就否定原有的假設,進而相信A組數據和B組數據在統計上有顯著性差異。

這裡有兩個統計學的術語:

除了T檢驗,還有別的檢驗,不同的檢驗都有對應的假設檢驗方法,比如F-檢驗,卡方檢驗,秩和檢驗等,適用於不同的情況,有不同的目的,使用前要搞清楚。

Student T Test(T檢驗)

最常用的就是T檢驗,我們已經知道了他的整體邏輯了,但是我們還不清楚,他如何計算的,理解了計算過程,可以讓我們更好地理解和解讀p值,不去錯誤地使用p值,不迷信p值。

在理解計算原理之前,我們舉個慄子,思考一下別人的人生:

B站的羅翔有一個CP,叫張三。

張三是個果農, 種了兩種蘋果樹,一種叫A,一種叫B,他想知道哪種蘋果樹結的果子大。他在果子成熟時,分別摘了A蘋果100個,B蘋果100個,發現A蘋果平均300g,B平均305g。他於是下結論:B蘋果樹結的蘋果比A大。於是計劃著減少A的種植數量。這時候,他的腦海中出現了一個聲音 「老張你這不太嚴謹哦」。老張嚇了一跳,"見鬼啦,誰在說話",一個富有磁性的嗓音說:「我是來幫你的,如果想要蘋果長的大,還請老張思考以下問題:」

A蘋果300g,B蘋果305,你覺得B比A大,那麼如果A平均300g,B平均301g呢,如果B蘋果300.5g呢,你還覺得B比A大呢?

會不會出現以下情況,你兩次都從同一棵A蘋果樹摘蘋果,有沒有可能,第一次300g,第二次305。就算同一棵樹你兩次摘蘋果,結果都可能不一樣的,兩次摘蘋果,平均值差0.5g,差5g,差10g都是完全可能發生的,那平均值差多大才算大呢

最後,請思考以下兩個場景,

你覺得哪一種場景下,B蘋果樹的蘋果重於A的概率更大。

你從AB兩種樹,分別摘10個蘋果,B重量平均比A大5g你從AB兩種樹,分別摘100個蘋果,B重量平均比A大5g

老張閉上眼睛,認真思考著以上問題(讀者可以跟著他一起思考,助他一臂之力)

沒想到老張是個被蘋果耽誤了的數學家。他花了一周畫了兩張圖。

# 不感興趣的同學不需要看
import numpy as np
from scipy import stats
import matplotlib.pyplot as plt
# fig 1
norm1 = stats.norm(300,3)
norm2 = stats.norm(310,3)
x = np.linspace(250,350,100)
y1 = norm1.pdf(x)
y2 = norm2.pdf(x)
fig, axs = plt.subplots(1,2)
ax1 = axs[0]
ax1.plot(x,y1, color='b')
ax1.plot(x,y2, color='r')
ax1.set_ylim((0,0.15))
ax1.axvline(x=300, color='b', alpha=0.5)
ax1.axvline(x=310, color='r', alpha=0.5)
# fig 2
norm1 = stats.norm(300,30)
norm2 = stats.norm(310,30)
y1 = norm1.pdf(x)
y2 = norm2.pdf(x)
ax2 = axs[1]
ax2.set_ylim((0,0.15))
ax2.plot(x,y1, color='b')
ax2.plot(x,y2, color='r')
ax2.axvline(x=300, color='b', alpha=0.5)
ax2.axvline(x=310, color='r', alpha=0.5)

fig1.png

老張點了根煙,嘆息道,這一切都是抽樣造成的,如果我能收集世上所有A蘋果和B蘋果,就可以求出準確的均值,我就知道哪個蘋果大了。但是我做不到,做不到就只能抽樣。抽樣只能近似真實的均值,但總存在誤差。

比如上面的兩張圖,藍色是抽樣的A蘋果不同重量的頻數,紅色是B蘋果。左右兩張圖,同樣是均值差10g(均值以豎直直線表示),但是左圖中,紅色曲線下面積與藍色曲線下面積很少重疊,也就是說,紅色整體上確實大於藍色。而右邊的圖,雖然紅色的均值大於藍色10g,但是這兩條曲線基本重合,這次抽樣B比A大10g,很有可能是誤差。下次再試一次,可能A就比B大了。

老張猛吸一口煙,轉念又想,即使是右圖的情況,如果我是統計了咱們鎮所有的AB蘋果,得出這樣的結果,是不是還是可以說B比A平均大10g呢,這總比我統計100個蘋果來的準吧!

老張熄滅了手頭的煙,緩緩的說:

「失去蘋果,失去很多;失去統計學,失去一切。」

面對浩瀚無垠的數學宇宙,張三開始了他的統計之旅:

他提出了以下思路:

我們的目的不是比較被抽樣的蘋果均值大小,而是想利用抽樣來比較兩種蘋果樹真實的蘋果均值的大小我們對蘋果的真實均值的大小只能估計,我們的估計不應該是一個值,而是一個範圍,或者一個分布,一個均值的概率分布我們對真實均值的概率分布估計必須考慮數據的離散程度(即方差)和抽樣次數。方差越小(蘋果重量波動小),抽樣次數多,那麼估計就越精準

於是乎,老張不知道怎麼回事(我也不知道怎麼回事,請知道這個公式怎麼來的同學私戳我),推導出了第一個公式

該公式是說,如果我對一顆蘋果樹抽樣,取n個蘋果,那麼我們可以認為蘋果的樣本均值概率應該服從

注意:這裡描述的是採樣均值的分布,不是採樣個體的分布,即你採樣很多次,每次計算出的均值放在一起,是這樣一個正態分布

這裡可能難以理解,於是老張又畫圖說明

import numpy as np
from scipy import stats
import matplotlib.pyplot as plt
norm1 = stats.norm(300, 10)
s = norm1.rvs(30)
x = np.linspace(270,330,100)
mean = s.mean()
std = s.std()
mean_std = np.sqrt(std ** 2 / 30)
y2 = stats.norm(mean, mean_std).pdf(x)
ax = plt.subplot()
ax.hist(s,bins=10, density=True)
ax.plot(x,y2, color='r')

fig2.png

這張圖這麼理解,這裡很重要,我是上帝,我知道蘋果樹的蘋果真實均重300g,標準差10g,我從一種樹上摘了30個蘋果,其均值應該是以300為中心,標準差為的正態分布。

張三不是上帝,張三隻能根據採樣,他發現樣本均值為298,標準差為7.78,(圖中藍色部分)。但是他對真實的均值和標準差一無所知,所以聰明的張三,反其道而行,他說,既然能用真實的均值和方差推測樣本的均值,是不是可以用樣本的均值和方差推測真實均值,套用上面的公式,推測蘋果的真實均重概率應該是圖中紅線那樣,以298為中心,標準差為

這時候,張三轉念又想,怎麼比較A和B的差異呢,眼珠子那麼一轉,有了!

我們既然比較AB之間的差距,為什麼不去計算 A均值-B均值呢,張三說要有X,我們就有了X

這是,我們只要檢驗 X = 0 是否成立就行了,我們的零假設是AB無差異,即X=0, 如果零假設成立,那麼X的分布應該是一個以0為中心的分布,該分布的方差,應該是

有了這樣的分布,我們就可以描述每次抽樣X在某個範圍的概率

張三畫了第三張圖

import numpy as np
from scipy import stats
import matplotlib.pyplot as plt
norm1 = stats.norm()
x = np.linspace(-4,4,100)
y1 = norm1.pdf(x)
ax = plt.subplot()
ax.plot(x,y1, color='b')
l1 = norm1.ppf(0.025)
l2 = norm1.ppf(1-0.025)
ax.fill_between(x,0,y1,
(x < l1) | (x> l2), color='darkred')

fig3.png

該曲線下面積佔比其實就是零假設下的事件發生的概率。

P值計算的是零假設下的發生某事件或者更為極端事件的概率

如我取樣後計算得到X=2, 按照正態分布可以計算得,從2到正無窮,曲線下面積佔比為約0.025(右邊紅色部分),那麼A比B大2或者大更多的概率是2.5%,這就是P值。2.5%這個概率夠小,我們覺得零假設應該是在扯淡,於是拒絕零假設,選擇備選假設,即認為AB有顯著差異

上面其實是算單尾的情況,即比較A比B大,或者A比B小的情況,會先假定一個方向。而日常常用的是雙尾t-檢驗,他不假設AB哪個大哪個小,所以如果算出X=2, 他會計算兩邊,

一般我們以5%作為閾值,只有在P<0.05時,我們才認為,零假設下,出現這麼大的X的概率太小了,才會捨棄零假設,選擇AB確實有差異這個備選假設。因為雙尾不假設AB哪個大哪個小,p值是單尾的兩倍,所以更為嚴格。我們一般都選雙尾

**重要說明:**前面其實我騙了你們,剛才我講的,嚴格來說,不叫t-test,t-test所用的不是正態分布,而是t-分布,t-分布類似於正態分布,比正態分布要胖一些,而且受自由度控制(採樣量-1)。一般來說採樣量 > 30時,用正態分布,採樣量 < 30時,用 t - 分布。

qPCR數據應用

說了這麼多,我們來應用一下,比如我有基因A,我一頓操作處理了細胞,想通過qPCR看看A的表達變了沒。比如 我來編個數據,

條件重複1重複2重複3未處理1.51.51.6處理1.61.72

那你說這個A的表達是變了還是沒變?

我也不知道,但我們可以假設A沒變,看看我們獲得這樣的數據的概率,如果概率<0.05, 我們就捨棄這個假設。

在Excel中,可以直接算t-test,如圖:

儘管上下兩次計算的時候,他們的均值差大小相近,但由於第二次樣本多,所以我們對真實均值的估計分布會精確一些,即正態分布更加修長苗條,他們同樣的均值差情況下,第二種情況就落在正態分布更外側的地方,曲線下面積更小。

福利時間

很感謝,大家看到這裡,還記得之前我出過一個qPCR處理的軟體嗎,這次推出了進化版,可以計算p值,程序會自動計算每個基因處理組與對照組的雙尾t檢驗,還是一鍵全自動,熟悉的味道,更強的功能。對於qPCR還不清楚的同學,歡迎閱讀往期文章 -> qPCR數據處理哪家強


一鍵出圖的qPCR計算工具,歡迎關注微信公眾號「肖恩札記」,後臺回復qPCR領取。

肖恩札記

2020-03-28

相關焦點

  • z檢驗和t檢驗 - CSDN
    T 檢驗T 檢驗,亦稱 student t 檢驗(Student's t test),主要用於樣本含量較小(例如 n < 30),總體標準差 σ 未知的正態分布資料。T 檢驗是用 T 分布理論來推論差異發生的概率,從而比較兩個平均數的差異是否顯著。
  • 假設檢驗、Z檢驗與T檢驗
    單樣本t檢驗雙樣本t檢驗Z檢驗和t檢驗的決定案例研究:Python冠狀病毒的假設檢驗假設檢驗基礎讓我們舉一個例子來理解假設檢驗的概念。一個人因刑事犯罪正在接受審判,法官需要對他的案件作出判決。我們不需要計算兩個不同的值,比如臨界值和測試分數。使用p值的另一個好處是,我們可以通過直接將其與顯著性水平進行比較,在任何期望的顯著性水平上進行測試。這樣我們就不需要計算每個顯著性水平的考試分數和臨界值。我們可以得到p值,並直接與顯著性水平進行比較。
  • 統計學常用概念|T檢驗、F檢驗、卡方檢驗、P值、自由度
    惟t檢驗須知道兩個總體的方差(Variances)是否相等;t檢驗值的計算會因 方差是否相等而有所不同。也就是說,t檢驗須視乎方差齊性(Equality of Variances)結果。所以,SPSS在進行t-test for Equality of Means的同時,也要做Levene's Test for Equality of Variances 。
  • 理解 t 檢驗與 F 檢驗的區別
    它主要用於:均數差別的顯著性檢驗、分離各有關因素並估計其對總變異的作用、分析因素間的交互作用、方差齊性(Equality of Variances)檢驗等情況。t檢驗過程,是對兩樣本均數(mean)差別的顯著性進行檢驗。惟t檢驗須知道兩個總體的方差(Variances)是否相等;t檢驗值的計算會因方差是否相等而有所不同。
  • t檢驗的目的_單樣本t檢驗的目的 - CSDN
    惟t檢驗須知道兩個總體的方差(Variances)是否相等;t檢驗值的計算會因方差是否相等而有所不同。T檢驗和F檢驗的關係另一種解釋:t檢驗有單樣本t檢驗,配對t檢驗和兩樣本t檢驗。之所以需要這些前提條件,是因為必須在這樣的前提下所計算出的t統計量才服從t分布,而t檢驗正是以t分布作為其理論依據的檢驗方法。
  • 碩博學術專欄——單連續變量t檢驗
    t檢驗值有一個重要的特徵,是當在不同的樣本大小時,t分配的機率密度函數會有所不同,更精確的說法是自由度的不同,影響機率密度函數的變化。因此,t檢驗的檢定過程,多了一個自由度的問題。自由度問題所謂自由度(degree of freedom)是指一組數據在計算特定統計量的過程中,可以自由變動的數目。
  • 第七章 t檢驗與u檢驗--第一節 t檢驗
    第七章 t檢驗與u檢驗   抽樣研究包含參數估計與通過假設檢驗作統計推斷這樣一些重要內容。前者在第六章最後一節中已經涉及,後者如X2檢驗,我們亦已有過接觸。本章將介紹兩均數相比時的假設檢驗。
  • matlab t檢驗_matlab t檢驗p值 - CSDN
    xlsread('2012A_T1_processed.xls', 'T2_red_grape', 'D3:M272');X3=xlsread('2012A_T1_processed.xls', 'T1_white_grape', 'D3:M282');X4=xlsread('2012A_T1_processed.xls', 'T2_white_grape', 'D3:M282');%% 紅葡萄酒T檢驗計算過程
  • t檢驗 機器學習專題及常見問題 - CSDN
    T 檢驗T 檢驗,亦稱 student t 檢驗(Student’s t test),主要用於樣本含量較小(例如 n < 30),總體標準差 σ 未知的正態分布資料。這時候t檢驗就粉墨登場了,只需從正態總體中抽取小規模的樣本數據,並計算均值與標準差,用來代替正態總體的均值和標準差即可。1. 單樣本 Z 檢驗單樣本 T 檢驗確定樣本均值是否與已知或假設的總體均值具有統計學差異。
  • matlab t檢驗值_matlab t檢驗p值 - CSDN
    xlsread('2012A_T1_processed.xls', 'T2_red_grape', 'D3:M272');X3=xlsread('2012A_T1_processed.xls', 'T1_white_grape', 'D3:M282');X4=xlsread('2012A_T1_processed.xls', 'T2_white_grape', 'D3:M282');%% 紅葡萄酒T檢驗計算過程
  • 第三節 u檢驗和t檢驗
    第三節 u檢驗和t檢驗   u檢驗和t檢驗可用於樣本均數與總體均數的比較以及兩樣本均數的比較。理論上要求樣本來自正態分布總體。但在實用時,只要樣本例數n較大,或n小但總體標準差σ已知時,就可應用u檢驗;n小且總體標準差σ未知時,可應用t檢驗,但要求樣本來自正態分布總體。
  • 使用JASP輕鬆計算T檢驗cohen's d效應量指標
    現在一些期刊論文要求,在顯著性檢驗P值有顯著性時(P<0.05),還應當報告效應量指標。所謂效應量,英文名稱為Effect size,用以衡量自變量和因變量之間關聯強度的指標,幾乎不受樣本量大小的影響。 在t檢驗和方差分析或中,效應量表現為均值的差異程度。
  • 通俗理解T檢驗與F檢驗的區別
    惟t檢驗須知道兩個總體的方差(Variances)是否相等;t檢驗值的計算會因方差是否相等而有所不同。也就是說,t檢驗須視乎方差齊性(Equality of Variances)結果。所以,SPSS在進行t-test for Equality of Means的同時,也要做Levene's Test for Equality of Variances 。
  • t檢驗 方差分析 - CSDN
    一.T檢驗1.T檢驗分類T檢驗是通過比較不同數據的均值,研究兩組數據之間是否存在顯著差異。單總體檢驗:單總體t檢驗是檢驗一個樣本平均數與一個已知的總體平均數的差異是否顯著。當總體分布是正態分布,如總體標準差未知且樣本容量小於30,那麼樣本平均數與總體平均數的離差統計量呈t分布。
  • t檢驗 機器學習_機器學習 t 檢驗 - CSDN
    假設檢驗常見的假設檢驗有:T檢驗(Student’s t Test),F檢驗(方差齊性檢驗),卡方驗證等。顯著性值的選擇是個經驗值:一般和樣本量有關,樣本量越大,顯著性值越大,一般幾百左右的樣本量P值一般選擇0.05,樣本量在兩千左右時P值一般選擇0.001,樣本量再大,P值就沒有作用了,所以做假設檢驗時樣本量一般不會超過5千,樣本量超過5千時P值就沒什麼意義了。收集證據:用手頭的數據去驗證第一步定義的假設。這一步就是對樣本進行統計計算等操作。
  • t檢驗中t值的意義 - CSDN
    參數檢驗在下文中,我們給出了兩個樣本,它們可以來自相同或不同的分布,我們想檢驗這些樣本是否具有相同的統計特性:比較均值t檢驗t檢驗適用於:正態分布、方差具有齊性的兩組間小樣本比較;對於大樣本不滿足正態分布的數據而言t-檢驗還是相當精確有效的手段。檢驗:兩個平均數的差異是否顯著。
  • R語言:t檢驗
    單樣本t檢驗(使用教材光碟血紅蛋白數據: 例03-05.sav)前提條件:取自正態分布的小樣本(<=60, 偏態用秩和檢驗);或者取自任意分布的大樣本(>60)# install.packages("memisc")library(memisc)## Loading required package: lattice
  • 實習十 t檢驗
    實習十 t檢驗   一、目的要求   1.明確t檢驗的意義。   2.學會t檢驗的計算方法,並正確運用假設檢驗對資料進行分析評價。   [是非題]   1.t 檢驗是對兩個樣本不同樣本均數的差別進行假設檢驗的方法之一。( )   2.T檢驗結果t=1.5,可認為兩總體均數送別無意義。( )   3.兩次t檢驗都是對兩個不同樣本均數的差別進行假設檢驗,一次P<0.01,一次0.01<P<0.05,就表明前者兩樣本均數差別大,後者兩樣本均數差別小。
  • T檢驗與F檢驗,你分清楚嗎?
    惟 t檢驗須知道兩個總體的方差(Variances)是否相等;t檢驗值的計算會因方差是否相等而有所不同。也就是說,t檢驗須視乎方差齊性(Equality of Variances)結果。所以,SPSS在進行t-test for Equality of Means的同時,也要做Levene"s Test for Equality of Variances 。1.
  • T檢驗與F檢驗,傻傻分不清楚?
    惟 t 檢驗須知道兩個總體的方差(Variances)是否相等;t 檢驗值的計算會因方差是否相等而有所不同。也就是說,t 檢驗須視乎方差齊性(Equality of Variances)結果。所以,SPSS在進行t-test for Equality of Means的同時,也要做Levene"s Test for Equality of Variances 。1.