在做各种运营活动时,非常重要的一个指标是活动落地页的曝光量UV(Unique Visitor,此文中仅考虑曝光和点击的人数,不考虑次数)。而落地页曝光量受两个直接因素的影响,活动链接(或图标)点击量和落地页加载时长。
我们都知道页面加载时长会影响页面曝光量,因为如果在用户有限的等待时间内页面加载不出来,用户会直接退出页面,导致页面曝光量损失。
页面曝光损失率=(活动链接点击量 – 落地页曝光量)/活动链接点击量。
理想情况下,我们希望页面呈现更符合我们的要求,并且页面曝光损失率最低。但现实情况是,页面内容较多导致加载时长变长,页面曝光损失率增加。
如何平衡页面曝光损失率和页面加载时长呢?这就需要预测页面加载时长与页面曝光损失率之间的关系。
案例
某项活动在2019年7月1日~12月26日间每日的页面曝光损失率与当日平均页面加载时长的关系如下表所示(仅展示部分数据):
如果想将页面曝光损失率控制在5%以内,则页面加载时长应不超过多少?
分析
显然我们需要找出页面曝光损失率与页面加载时长之间的关系,预测变量之间的关系一般非回归模型莫属。
1画出变量间的散点图
Python代码:
输出结果:
2 拟合模型
从散点图中可以看出,pageSpeeds和uvLossRate不是线性关系,也不是二次多项式关系,我们尝试用三次及以上多项式进行拟合。
(1)拟合多项式
Python代码:
输出结果:
上面三条曲线中哪一条的拟合程度最好呢?我们需要通过拟合优度来判定。
(2)通过拟合优度r方,确定最终拟合曲线
R方(r-square)是衡量拟合多项式对差异的解释程度的统计量,也叫作决定系数。
其中,为拟合的因变量的值,为实际观测值的均值,即为残差平方和,为差异中未被解释的部分。
Python代码:
输出结果:
五次多项式拟合的结果r方最大,为0.86,并且五次多项式比四次多项式的拟合优度提高程度有限,所以我们可以选择五次多项式作为最终拟合结果。
上述p5具体代数式为:
3 确定自变量的取值
我们想将页面曝光损失率控制在5%以内,并且最终的拟合多项式是一个递减函数,所以求页面损失率5%对应的x值即可。
当页面损失率等于5%时,可求得对应的页面加载时长为1.72秒。即页面曝光损失率不超过5%时,页面加载时长不超过1.72秒。
Python求解过程如下:
- 使用numpy中的poly1d函数求解多项式的根
将多项式标准化(即等式右边为0)后的系数作为数组传给poly1d函数。
- 使用roots函数列出根的值,并舍去复数根
注:从曲线图中也可以看出,页面曝光损失率5%对应的x值在1.5~2之间。
关注微信公众号:数据科技社(data_tech_community)查看更多文章