我們?cè)谧鯝/B試驗(yàn)評(píng)估的時(shí)候需要借助p_value,這篇文章記錄如何利用python計(jì)算兩組數(shù)據(jù)的顯著性。
一、代碼
# TTest.py # -*- coding: utf-8 -*- ''' # Created on 2020-05-20 20:36 # TTest.py # @author: huiwenhua ''' ## Import the packages import numpy as np from scipy import stats def get_p_value(arrA, arrB): a = np.array(arrA) b = np.array(arrB) t, p = stats.ttest_ind(a,b) return p if __name__ == "__main__": get_p_value([1, 2, 3, 5, ], [6, 7, 8, 9, 10])
二、T檢驗(yàn):兩樣本T檢驗(yàn)
兩樣本t檢驗(yàn)是比較兩個(gè)樣本所代表的兩個(gè)總體均值是否存在顯著差異。除了要求樣本來自正態(tài)分布,還要求兩個(gè)樣本的總體方差相等也就是“方差齊性”。
檢驗(yàn)原假設(shè):樣本均值無差異(μ=μ0)
Python命令stats.ttest_ind(data1,data2)
當(dāng)不確定兩總體方差是否相等時(shí),應(yīng)先利用levene檢驗(yàn)檢驗(yàn)兩總體是否具有方差齊性stats.levene(data1,data2)如果返回結(jié)果的p值遠(yuǎn)大于0.05,那么我們認(rèn)為兩總體具有方差齊性。如果兩總體不具有方差齊性,需要加上參數(shù)equal_val并設(shè)定為False,如下。
stats.ttest_ind(data1,data2,equal_var=False) // TTest中默認(rèn)是具有方差齊性
三、結(jié)果解釋
當(dāng)p值小于某個(gè)顯著性水平α(比如0.05)時(shí),則認(rèn)為樣本均值存在顯著差異,具體的分析要看所選擇的是雙邊假設(shè)還是單邊假設(shè)(又分小于和大于)注意stats.ttest_ind進(jìn)行雙側(cè)檢驗(yàn)。
當(dāng)t值大于0,則有((1-p)* 100)%的把握認(rèn)為認(rèn)為第一組數(shù)據(jù)好與第二組數(shù)據(jù)。例如p=0.05,那么我們有95%的把握認(rèn)為第一組數(shù)據(jù)好于第二組數(shù)據(jù)。
相關(guān)學(xué)習(xí)推薦:python視頻教程