1. 程式人生 > 程式設計 >基於python實現計算兩組資料P值

基於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%的把握認為第一組資料好於第二組資料。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。