【整理向】老板让我用SPSS做A/Btest,我偏要用python
老板:小果子
我:老板您說
老板:那個,這個頁面中間按鈕我們換了個顏色,你用斯罷斯驗證一下點擊率唄
我:…好的,老板的發音還是那么清新脫俗
老板:怎么樣,我昨天專門練的,厲害吧
我:numpy!numpy!(npnp:牛皮牛皮)
我,數據之果,身為一名專業的數據分析師我們當然要體現出我們的專業水平,打開我的斯噗斯斯!準備窗口!哼!一個小小的A/B test做出來只需要分分…
(SPSS過期了…)
怎么辦,新公司電腦新安裝的斯噗斯斯過期了,機智的我趕緊到網上搜索破解程序,一打開…
西巴shake it啊
盜版軟件植入廣告都這么猖獗了嗎(眼淚不爭氣的從我的嘴角流了下來)
這個時候再去找大佬要破解版或者再搜索就太花時間了
不行,身為一名專(xin)業(shou)的數據分析師怎么能如此低效
話說python不是有個統計包叫scipy嘛,容我去百度搜搜,這一搜就搜出來好多好東西,整理一下:
單樣本T檢驗
單樣本t檢驗是確定樣本均值是否與已知或假設的總體均值具有統計學差異的帶參數檢驗:
假設我們有總體的頁面點擊率10%和改動后的十天的頁面點擊率數據,想知道樣本數據和總體數據在設定p值閾值為0.05的情況下,兩者是否有顯著性差異:
結果顯示為:
但是這只是估算樣本與總體差異的單樣本檢驗而已,萬一只是瞎貓碰上死耗子呢,萬一中間有其他的因素在干擾呢,于是我們控制周期變量(選取歷史數據上月沒有變動的兩個十天的數據,周期平移到本月,在最后十天進行改動得到新一組點擊率和老十天點擊率),或者同時有兩種方法同時測評,得到兩組樣本進行:
配對樣本T檢驗
F1_mean = np.mean(F1) F2_mean = np.mean(F2)print("week1 mean value:",F1_mean) print("week2 mean value:",F2_mean)ttest,pval = stats.ttest_rel(F1, F2) print("p-value",pval) if pval <0.05:print("we reject null hypothesis") else:print("we accept null hypothesis")結果是:
那要是我們本來有兩版頁面,我們同時進行了一個按鈕的改動,想要看出變動是否有差異,則可以使用:
雙樣本T檢驗
一般用于判斷兩總體是否有顯著差異的時候才會用雙樣本T檢驗
注意在進行雙樣本T檢驗的時候,一定要驗證總體的方差齊性
結果是:
ANOVA(F-檢驗)
要是有兩組以上的頁面同時進行了改動,相互的兩兩比較不能充分說明問題,則要用ANOVA檢驗(F-檢驗):
s1 = norm.rvs(loc=1,scale=1.0,size=20) s2 = norm.rvs(loc=1.5,scale=0.5,size=20) s3 = norm.rvs(loc=1.5,scale=0.5,size=20) F, p = stats.f_oneway(s1,s2,s3) print("p-value for significance is: ", p) if p<0.05: print("reject null hypothesis") else: print("accept null hypothesis")結果是:
借鑒他人鏈接如下,整理方便之后自查:
charie411:t檢驗及python代碼實現
zrx731935354:利用python進行T檢驗
使用Python進行機器學習的假設檢驗(附鏈接&代碼)
總結
以上是生活随笔為你收集整理的【整理向】老板让我用SPSS做A/Btest,我偏要用python的全部內容,希望文章能夠幫你解決所遇到的問題。