python驗證多組數(shù)據(jù)之間有無顯著差異
一、方差分析
1.單因素方差分析

通過箱線圖可以人肉看出10組的訂單量看起來差不多,為了更科學比較10組的訂單量有無顯著差異,我們可以利用方差分析
from statsmodels.formula.api import ols
from statsmodels.stats.anova import anova_lm
model = ols('orders~C(label)',data=need_data).fit()
anova_table = anova_lm(model, typ = 2)
print(anova_table)
結果顯示,p值為0.62大于0.05,不能拒絕原假設,所以這10組的訂單量分布沒有顯著差異。
二、卡方檢驗
如果是比較多組之間的非連續(xù)值指標是否存在差異呢?
如檢查上面10組的男女比例是否存在顯著差異

計算各組觀察頻數(shù):
data2=data1.melt(id_vars=['性別'],value_name='觀察頻數(shù)') data2.head()

計算總體的男女比例:
rate=(data2.groupby(['性別'])['觀察頻數(shù)'].sum()/data2.groupby(['性別'])['觀察頻數(shù)'].sum().sum()).reset_index() rate.columns=['性別','rate'] rate

計算各組用戶總數(shù):
group_sum=data2.groupby(['組別'])['觀察頻數(shù)'].sum().reset_index() group_sum.columns=['組別','組內用戶數(shù)'] group_sum

計算卡方值:
import math data3=pd.merge(data2,group_sum,on=['組別'],how='left') data3=pd.merge(data3,rate,on=['性別'],how='left') data3['期望頻數(shù)']=data3['組內用戶數(shù)']*data3['rate'] data3['卡方值']=data3.apply(lambda x: math.pow((x.期望頻數(shù)-x.觀察頻數(shù)),2)/x.期望頻數(shù),axis=1) data3.head()

本案例的自由度為(10-1)*(2-1)=9,選取顯著性水平為0.05,查卡方分布表得臨界值為18.31
因為7.01<18.31,所以不能拒絕原假設,即各組的性別分布不存在顯著性差異。
到此這篇關于python驗證多組數(shù)據(jù)之間有無顯著差異的文章就介紹到這了,更多相關python驗證多組數(shù)據(jù)之間有無顯著差異內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
vscode配置與python虛擬環(huán)境切換的幾種方式總結
Python之所以強大,除了語言本身的特性外,更重要的是擁有無所不及的第三方庫,下面這篇文章主要給大家介紹了關于vscode配置與python虛擬環(huán)境切換的幾種方式,文中通過圖文介紹的非常詳細,需要的朋友可以參考下2022-12-12
Python SELENIUM上傳文件或圖片實現(xiàn)過程
這篇文章主要介紹了Python SELENIUM上傳文件或圖片實現(xiàn)過程,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2019-10-10

