python驗(yàn)證多組數(shù)據(jù)之間有無(wú)顯著差異
一、方差分析
1.單因素方差分析
通過(guò)箱線圖可以人肉看出10組的訂單量看起來(lái)差不多,為了更科學(xué)比較10組的訂單量有無(wú)顯著差異,我們可以利用方差分析
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組的訂單量分布沒(méi)有顯著差異。
二、卡方檢驗(yàn)
如果是比較多組之間的非連續(xù)值指標(biāo)是否存在差異呢?
如檢查上面10組的男女比例是否存在顯著差異
計(jì)算各組觀察頻數(shù):
data2=data1.melt(id_vars=['性別'],value_name='觀察頻數(shù)') data2.head()
計(jì)算總體的男女比例:
rate=(data2.groupby(['性別'])['觀察頻數(shù)'].sum()/data2.groupby(['性別'])['觀察頻數(shù)'].sum().sum()).reset_index() rate.columns=['性別','rate'] rate
計(jì)算各組用戶(hù)總數(shù):
group_sum=data2.groupby(['組別'])['觀察頻數(shù)'].sum().reset_index() group_sum.columns=['組別','組內(nèi)用戶(hù)數(shù)'] group_sum
計(jì)算卡方值:
import math data3=pd.merge(data2,group_sum,on=['組別'],how='left') data3=pd.merge(data3,rate,on=['性別'],how='left') data3['期望頻數(shù)']=data3['組內(nèi)用戶(hù)數(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
因?yàn)?.01<18.31,所以不能拒絕原假設(shè),即各組的性別分布不存在顯著性差異。
到此這篇關(guān)于python驗(yàn)證多組數(shù)據(jù)之間有無(wú)顯著差異的文章就介紹到這了,更多相關(guān)python驗(yàn)證多組數(shù)據(jù)之間有無(wú)顯著差異內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python 刪除指定時(shí)間間隔之前的文件實(shí)例
下面小編就為大家分享一篇python 刪除指定時(shí)間間隔之前的文件實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-04-04python將ip地址轉(zhuǎn)換成整數(shù)的方法
這篇文章主要介紹了python將ip地址轉(zhuǎn)換成整數(shù)的方法,涉及Python針對(duì)IP地址的轉(zhuǎn)換技巧,需要的朋友可以參考下2015-03-03vscode配置與python虛擬環(huán)境切換的幾種方式總結(jié)
Python之所以強(qiáng)大,除了語(yǔ)言本身的特性外,更重要的是擁有無(wú)所不及的第三方庫(kù),下面這篇文章主要給大家介紹了關(guān)于vscode配置與python虛擬環(huán)境切換的幾種方式,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2022-12-12

Python進(jìn)階之利用+和*進(jìn)行列表拼接

python讀取mat文件生成h5文件的實(shí)現(xiàn)

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