您好,登錄后才能下訂單哦!
這篇文章主要介紹python驗證多組數據之間有什么差異,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
通過箱線圖可以人肉看出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組的訂單量分布沒有顯著差異。
如果是比較多組之間的非連續值指標是否存在差異呢?
如檢查上面10組的男女比例是否存在顯著差異
計算各組觀察頻數:
data2=data1.melt(id_vars=['性別'],value_name='觀察頻數') data2.head()
計算總體的男女比例:
rate=(data2.groupby(['性別'])['觀察頻數'].sum()/data2.groupby(['性別'])['觀察頻數'].sum().sum()).reset_index() rate.columns=['性別','rate'] rate
計算各組用戶總數:
group_sum=data2.groupby(['組別'])['觀察頻數'].sum().reset_index() group_sum.columns=['組別','組內用戶數'] group_sum
計算卡方值:
import math data3=pd.merge(data2,group_sum,on=['組別'],how='left') data3=pd.merge(data3,rate,on=['性別'],how='left') data3['期望頻數']=data3['組內用戶數']*data3['rate'] data3['卡方值']=data3.apply(lambda x: math.pow((x.期望頻數-x.觀察頻數),2)/x.期望頻數,axis=1) data3.head()
本案例的自由度為(10-1)*(2-1)=9
,選取顯著性水平為0.05,查卡方分布表得臨界值為18.31
因為7.01<18.31,所以不能拒絕原假設,即各組的性別分布不存在顯著性差異。
以上是“python驗證多組數據之間有什么差異”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。