python計算兩組數據的P值


我們在做A/B試驗評估的時候需要借助p_value,這篇文章記錄如何利用python計算兩組數據的顯著性。

一、代碼

# 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檢驗:兩樣本T檢驗

兩樣本t檢驗是比較兩個樣本所代表的兩個總體均值是否存在顯著差異。除了要求樣本來自正態分布,還要求兩個樣本的總體方差相等也就是“方差齊性”。

檢驗原假設:樣本均值無差異(μ=μ0)

Python命令stats.ttest_ind(data1,data2)

當不確定兩總體方差是否相等時,應先利用levene檢驗檢驗兩總體是否具有方差齊性stats.levene(data1,data2)如果返回結果的p值遠大於0.05,那么我們認為兩總體具有方差齊性。如果兩總體不具有方差齊性,需要加上參數equal_val並設定為False,如下。

stats.ttest_ind(data1,data2,equal_var=False) // TTest中默認是具有方差齊性

三、結果解釋

當p值小於某個顯著性水平α(比如0.05)時,則認為樣本均值存在顯著差異,具體的分析要看所選擇的是雙邊假設還是單邊假設(又分小於和大於)注意stats.ttest_ind進行雙側檢驗。
當t值大於0,則有((1-p)* 100)%的把握認為認為第一組數據好與第二組數據。例如p=0.05,那么我們有95%的把握認為第一組數據好於第二組數據。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM