1、基本統(tǒng)計(jì)
基本統(tǒng)計(jì)分析:描述性統(tǒng)計(jì)分析,用來(lái)概括事物整體狀況以及事物間聯(lián)系(即事物的基本特征),以發(fā)現(xiàn)其內(nèi)在規(guī)律的統(tǒng)計(jì)分析方法。
常用的統(tǒng)計(jì)指標(biāo):計(jì)數(shù)、求和、平均值、方差、標(biāo)準(zhǔn)差
描述性統(tǒng)計(jì)分析函數(shù):describe();常用統(tǒng)計(jì)函數(shù)size()計(jì)數(shù),sum()求和,mean()平均值,var()方差,std()標(biāo)準(zhǔn)差
例如:描述性分析data.score.describe(),最大值data.score.max(),平均值data.score.mean(),方差data.score.var()
累積求和data.score.cumsum(),最小值所在位置data.score.argmin()
2、分組分析
分組分析是指根據(jù)分組字段,將分析對(duì)象劃分成不同的部分,以進(jìn)行對(duì)比分析各組之間的差異性的一種分析方法。
分組類型主要有兩大類:定性分組,定量分組,定性分組按事物已有的屬性劃分,如性別,年齡。定量分組即數(shù)值分組。
常用的統(tǒng)計(jì)指標(biāo):計(jì)數(shù),求和,平均值
分組統(tǒng)計(jì)函數(shù):groupby(by=[分組列])[統(tǒng)計(jì)列].agg({統(tǒng)計(jì)列別名:統(tǒng)計(jì)函數(shù)}),by用于分組的列,中括號(hào)用于統(tǒng)計(jì)的列,agg統(tǒng)計(jì)別名顯示統(tǒng)計(jì)值的名稱,統(tǒng)計(jì)函數(shù)用于統(tǒng)計(jì)數(shù)據(jù)。
例如:aggResult = data.groupby( by = ['class'] ) ['score'].agg({ '總分' : numpy.sum, '人數(shù)'.numpy.size, '平均數(shù)'.numpy.mean})
3、分布分析
分不分析是指根據(jù)分析目的,將數(shù)據(jù)(定量數(shù)據(jù))進(jìn)行等距或者不等距的分組,進(jìn)行研究各組分布規(guī)律的一種分析方法。
常用于用戶消費(fèi)分布,收入分布,年齡分布等。
先進(jìn)行數(shù)值分組
bins = [min(data.年齡-1,20,30,40,max(data.年齡+1))]
data['年齡分層'] = pandas.cut(data.年齡,bins,labels = labels)
在進(jìn)行分組aggResult = data.groupby(by = ['年齡分層'])['年齡'].agg({'人數(shù)':numpy.size})
百分比的表現(xiàn)形式:
pAggResult = round( aggResult/aggResult.sum(), 2 )*100 pAggResult['人數(shù)'].map('{:,.2f}%'.format)
4、交叉分析
通常用于分析兩個(gè)或兩個(gè)以上,分組變量之間的關(guān)系,以交叉表形式進(jìn)行變量間關(guān)系的對(duì)比分析。
定量、定量分組交叉;定量、定性分組交叉;定性、定性分組交叉。
交叉計(jì)數(shù)函數(shù):pivot_table(values,index,columns,aggfunc,fill_value),參數(shù)說(shuō)明:
values:數(shù)據(jù)透視表中的值;Index:數(shù)據(jù)透視表中的行;columns:數(shù)據(jù)透視表中的列;aggfunc:統(tǒng)計(jì)函數(shù);fill_value:NA值的統(tǒng)一替換。
例如:ptResult = data.pivot_table(values = ['年齡'],index = ['年齡分層'],columns = ['性別'],aggfunc=[numpy.size])
5、結(jié)構(gòu)分析
是在分組以及交叉的基礎(chǔ)上,計(jì)算各組成部分所占的比重,進(jìn)而分析總體的內(nèi)部特征的一種分析方法。
數(shù)據(jù)庫(kù)的外運(yùn)算:add,sub,multiply,div,分別是加減乘除;數(shù)據(jù)框的內(nèi)運(yùn)算函數(shù):sum,mean,var,sd分別是求和,平均值,方差,標(biāo)準(zhǔn)差
在上述的交叉分析的基礎(chǔ)上進(jìn)行結(jié)構(gòu)分析:ptResult.sum(),ptResult.div(ptResult.sum.(axis = 1),axis = 0)
6、相關(guān)分析
是研究?jī)蓚€(gè)或兩個(gè)以上速記變量之間相互依存關(guān)系的方向和密切程度的方法。分為線性相關(guān)和非線性相關(guān)。
線性相關(guān)關(guān)系主要采用皮爾孫相關(guān)系數(shù)r來(lái)度量連續(xù)變量之間線性相關(guān)強(qiáng)度。
相關(guān)分析函數(shù):DataFrame.corr() ,Series.corr()
如果由數(shù)據(jù)框調(diào)用corr方法,那么將會(huì)計(jì)算每個(gè)列兩兩之間的相似度;如果由序列調(diào)用corr方法,那么只是計(jì)算該序列與傳入的序列之間的相關(guān)度。
如data[['超市購(gòu)物率','網(wǎng)上購(gòu)物率','文盲率','人口']]
7、RFM分析
是根據(jù)客戶活躍程度和交易金額貢獻(xiàn),進(jìn)行客戶價(jià)值細(xì)分的一種方法。
RFM分析過(guò)程:
1、計(jì)算RFM各項(xiàng)分值
R_S,距離當(dāng)前日期越近,得分越高,最高5分,最低1分
F_S,交易頻率越高,得分越高,最高5分,最低1分
M_S,交易金額越高,得分越高,最高5分,最低1分
2、匯總RFM分值
RFM=100R_S+10F_S+1*M_S
3、根據(jù)RFM分值對(duì)客戶分類
RFM分析前提
1、最近有過(guò)交易行為的客戶,再次發(fā)生交易的可能性要高于最近沒(méi)有交易行為的客戶
2、交易頻率較高的客戶比交易頻率較低的客戶,更有可能再次發(fā)生交易行為
3、過(guò)去所有交易總金額較多的客戶,比交易總金額較少的客戶,更有消費(fèi)積極性