¤ 拓展阅读 ¤

▐ 短期增速
一般增长率增速:超大盘增速 ;相对排名增速:排名增速
混合增速=GMV增速+相对排名增速
加权混合增速=指标增速*log(1+指标)
▐ 长期增长趋势:CAGR复合增长率


数据分析的目的有三种:描述现状、定位原因和预测未来,趋势预测即在分析过去和现在的数据,进而预测未来的过程,辅助作出决策。
▐ 线性趋势预测:Forecast.linear()
它通过使用现有或过去的值来预测或计算值。基于线性回归函数通过自变量x值来预测y。如果数据中存在线性趋势(即y线性依赖于x值),则此函数的效果最佳,

▐ 季节性预测:Forecast.ets()
-
Forecasting.ets.seasonality()
它返回基于历史数据检测到的季节性周期的长度,如有的数据是3个月重复一次,那么它的周期就是3。
Forecast.ets()


Forecasting.ets.confint()
它返回指定目标日期的预测值的置信区间。默认的置信区间为95%。这意味着95%的预测值将在该值的范围内。
样本量悬殊比较:WilsonScore
我们在进行AB-test或其他分析中,总会涉及比较商品点击率&转化率等情况。
举例:如A商品曝光UV为1000 & 点击UV15,A商品曝光UV为100000 & 点击UV1000,A商品的点击率为1.5%,B商品的点击率为1%,但在比较时并不能代表用户更喜欢A商品,因为AB样本量较为悬殊。
那么如何进行判断呢?WilsonScore平衡样本数量差异的影响,解决小样本的准确性问题。本质上,威尔逊区间其实就是用户喜欢率的一个区间估计。但是该区间估计考虑了样本过小时候的情况,根据样本量对区间估计进行了修正,使得该区间估计能够较好的衡量不同样本量情况。该得分算法经常应用于各个网站的排序上。比如知乎的搜索排序。

from odps.udf import annotate
import numpy as np
@annotate('string->string')
class wilsonScore(object):
#威尔逊区间下限
def evaluate(self,input_data):
pos = float(input_data.split(',')[0])
total = float(input_data.split(',')[1])
p_z=1.96
pos_rat = pos * 1. / total * 1. # 正例比率
score = (pos_rat + (np.square(p_z) / (2. * total))
- ((p_z / (2. * total)) * np.sqrt(4. * total * (1. - pos_rat) * pos_rat + np.square(p_z)))) / \
(1. + np.square(p_z) / total)
return str(score)

分析过程我们经常遇到需要结合长期历史表现,对用户/商品/商家打分,用于衡量价值及资源分配。sigmoid函数也叫Logistic函数,它可以将一个实数映射到(0,1)的区间。
举例:通过对商品历史表现(点击率&GMV)的进行Sigmoid递减打分

▐ 数值型&正态分布相关性度量:皮尔森(Pearson)相关系数

EXCEL和DataWorks中配置了也内置了相关函数,可直接进行调用
EXCEL求相关性:CORREL(S24:S28,T24:T28)
odps:corr(a,b)
通过上述公式我们可以求得两个数值型变量的相关系数,如何评估两个变量之间的相关性呢,我们一般使用假设检验来判断是否显著。
在进行Pearson相关系数检验时,需要先设定显著性水平α,常用的显著性水平有0.05和0.01。然后计算出样本相关系数,根据样本大小n和显著性水平α查找对应的临界值。如果样本相关系数大于临界值,则拒绝原假设,认为两个变量之间存在显著的线性相关关系;否则接受原假设,认为两个变量之间不存在显著的线性相关关系。
相关系数临界值计算器:https://www.jisuan.mobi/gqY.html
▐ 非数值型/非正态分布数相关性度量:斯皮尔曼(Spearman)相关系数
Spearman相关系数是根据随机变量的等级而不是其原始值衡量相关性的一种方法。spearman相关系数的计算可以由计算pearson系数的方法,只需要把原随机变量中的原始数据替换成其在随机变量中的等级顺序即可。
举例:
求(1,10,100,101)、(21,10,15,13)两个非正态分布分布的相关系数
将(1,10,100,101)替换成(1,2,3,4),(21,10,15,13)替换成(4,1,3,2),然后求替换后的两个随机变量的pearson相关系数即可。
▐ 排名相关性度量:肯德尔(kendall)相关系数
kendall相关系数又称作和谐系数,也是一种等级相关系数,其计算方法如下:
对于X,Y的两对观察值Xi,Yi和Xj,Yj,如果Xi<Yi并且Xj<Yj,或者Xi>Yi并且Xj>Yj,则称这两对观察值是同序对,否则为异序对。
kendall相关系数的计算公式如下:

KL散度是量化两种概率分布P和Q之间差异,数值越小说明越相似,公式如下:
举例:求AB分布的相似度
A分布=[0.3,0.2,0.1,0.2,0.2]
B分布=[0.1,0.3,0.1,0.2,0.3]


曲线拐点:KneeLocator
寻找用户最佳留存时间点,或特征聚类计算最佳K值时,我们常需要从曲线的形状进行分析找到拐点。在python 中有一个自动帮助我们寻找拐点的包,叫kneed。这个包中只需要定义少量的参数(凹凸性及曲线方向),就可以自动地帮助我们找到一条曲线中的拐点。
from kneed import KneeLocator
import matplotlib.pyplot as plt
•
x = np.arange(1,31)
y = [0.492 ,0.615 ,0.625 ,0.665 ,0.718 ,0.762 ,0.800 ,0.832 ,0.859 ,0.880 ,0.899 ,0.914 ,0.927 ,0.939 ,0.949 ,0.957 ,0.964 ,0.970 ,0.976 ,0.980 ,0.984 ,0.987 ,0.990 ,0.993 ,0.994 ,0.996 ,0.997 ,0.998 ,0.999 ,0.999 ]
•
kneedle = KneeLocator(x, y, S=1.0, curve='concave', direction='increasing')
print(f'拐点所在的x轴是: {kneedle.elbow}')

▐ 熵值法
熵值法是指用来判断某个指标的离散程度的数学方法。离散程度越大,该指标对综合评价的影响越大。可以用熵值判断某个指标的离散程度。熵值法求权重步骤如下:
STEP1:数据标准化
STEP2:计算各指标信息熵
STEP3:确定各指标权重
熵值法确定权重只是考虑数据各个指标的离散程度,即数据取值越多其权重就越大,并没有结合具体的实际问题,因此在应用熵值法确定权重时需要结合具体的问题才能使用。
▐ 主成分分析



STEP2:确定综合得分模型系数
对STEP1中所得的各指标所拥有的三个主成分进行加权平均:
举例:指标3得分模型系数为

STEP3:指标权重归一化
即,将各因素在综合得分模型中的系数进行归一化。
举例:指标3的权重系数为
市场竞争度量/核心圈选:集中度
▐ CRN

▐ 消费集中度
指贡献前N%市场份额的用户/商品占比,即二八法则中贡献前80%市场份额的用户/商品占比,可基于市场份额贡献度进行核心类目圈选及品规坑位数规划。

TF-IDF是倾向于过滤掉常见的词语,保留重要的词语,公式如下:
举例:搜索词A在类目X的搜索次数较多,但搜索词A在其他类目上搜索较少,那么搜索词A更能代表类目X,则趋势得分越高,反之越低。

结语
本文分享自微信公众号 - 大淘宝技术(AlibabaMTT)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。