python驗證多組數(shù)據(jù)之間有無顯著差異
一、方差分析
1.單因素方差分析
通過箱線圖可以人肉看出10組的訂單量看起來差不多,為了更科學(xué)比較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)
結(jié)果顯示,p值為0.62大于0.05,不能拒絕原假設(shè),所以這10組的訂單量分布沒有顯著差異。
二、卡方檢驗
如果是比較多組之間的非連續(xù)值指標(biāo)是否存在差異呢?
如檢查上面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=['組別','組內(nèi)用戶數(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['組內(nèi)用戶數(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,所以不能拒絕原假設(shè),即各組的性別分布不存在顯著性差異。
到此這篇關(guān)于python驗證多組數(shù)據(jù)之間有無顯著差異的文章就介紹到這了,更多相關(guān)python驗證多組數(shù)據(jù)之間有無顯著差異內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python將ip地址轉(zhuǎn)換成整數(shù)的方法
這篇文章主要介紹了python將ip地址轉(zhuǎn)換成整數(shù)的方法,涉及Python針對IP地址的轉(zhuǎn)換技巧,需要的朋友可以參考下2015-03-03vscode配置與python虛擬環(huán)境切換的幾種方式總結(jié)
Python之所以強大,除了語言本身的特性外,更重要的是擁有無所不及的第三方庫,下面這篇文章主要給大家介紹了關(guān)于vscode配置與python虛擬環(huán)境切換的幾種方式,文中通過圖文介紹的非常詳細,需要的朋友可以參考下2022-12-12

Python SELENIUM上傳文件或圖片實現(xiàn)過程