- 统计挖掘与机器学习:大数据预测建模和分析技术(原书第3版)
- (美)布鲁斯·拉特纳
- 2525字
- 2021-09-26 16:15:48
8.4 构建RAL的YUM市场份额模型
建立RAL市场份额模型的主要问题(估算新妈妈们在婴儿出生3个月之后使用YUM婴儿配方奶粉的市场份额)是从统计上控制促销的影响。由于要用到各种统计方法和假设才能得出可靠的YUM市场份额估算值,我采用教学方式来介绍这个方法。
我把构建YUM市场份额模型的数据挖掘过程按照步骤顺序介绍一下。
步骤1——用YUM_3mos表示促销券的使用频次
我定义YUM_3mos进行步骤1。YUM_3mos定义如下:
如果新妈妈在前3个月使用YUM奶粉,YUM_3mos=1。
如果新妈妈在前3个月不使用YUM奶粉,YUM_3mos=0。
促销频次(PROMO_Code)与YUM_3mos的平均值见表8.1。该表按照MEAN_YUM_3mos值由大到小列出了RAL不同促销频次的YUM_3mos市场份额初步估计值,也包括促销次数(SIZE)。
表8.1 YUM市场份额(Mean_YUM_3mos)与促销频次(PROMO_Code)
RAL的YUM_3mos市场份额接近0.20,表明促销的效果很明显。频次表显示这项研究的目标就是消除促销效应的影响,得出YUM市场份额的真实结果。
步骤2——创建PROMO_Code哑变量
为了给所有PROMO_Codes创建哑变量,运行附录8.A,生成PROMO_Code哑变量子程序,且自动生成了以下代码:
一共生成了16个促销哑变量,全面涵盖了所有(100%)促销信息。这套哑变量用于消减和控制促销带来的统计上的影响。
步骤3——PCA分析
我们用SAS Proc PRINCOMP程序对PROMO_Code进行主成分分析(PCA),在第7章,我提供了一个PCA模型的全面介绍。在这里,我们重点关注两个主要的PCA统计量,即特征值和特征向量,了解它们如何控制促销的统计影响。
16个促销哑变量PROMO_Code1~PROMO_Code16生成了16个主成分变量。这16个主成分变量以一种独具统计效用的方式包含了促销哑变量的全部信息:
1)主成分变量从它们的构建原理上看,都是可靠而稳定的变量。
2)主成分变量是连续的,因而比原始哑变量更稳定。
3)主成分变量正如后面将要展示的,对于消除其他变量的不利影响起到了基本作用。
运行Proc PRINCOMP代码(附录8.B),对PROMO_Code哑变量进行PCA分析,得出表8.2中的16个特征值。注意,前8个主成分变量解释了一半以上(55.84%)的PROMO_Code总方差。运行该程序得出的第二套统计值是特征向量,见表8.3和表8.4。这些特征向量(PCs)的命名用PROMO_Code_pc作为前缀。
步骤4——消除YUM_3mos中的促销影响
因变量(DepVar)YUM_3mos对促销代码进行了完整的数据捕获。DepVar和PROMO_Code哑变量是数据融合的。调用一个基本的统计公理,生成所需的不受促销效应影响的DepVar。
表8.2 PROMO_Code哑变量PCA分析的特征值
表8.3 PROMO_Code哑变量PCA分析的特征向量
表8.4 PROMO_Code哑变量PCA分析的特征向量
统计公理
1)在X上对Y回归,得出Y(est_Y)估计值,将Y_due_X记为est_Y。
2)如果Y是二值变量,则令1-est_Y表示Y不受X影响,令Y_wo_Xeffect表示1-est_Y。
运行附录8.C子程序,对YUM_3mos基于PROMO_Code哑变量进行逻辑斯谛回归。一个众所周知的统计学说法是,在一组k个哑变量之中,只有k-1个哑变量可以进入一个模型。在这种情况下,很容易排除掉PROMO_Code16,因为其方差(特征值)是0,见表8.2(最后一行,第二列)。基于该统计公理,逻辑斯谛回归可以得出YUM_3mos_due_PROMO_Code。为简单起见,我将变量改名如下:
YUM_3mos_due_PROMO_Code改为YUM3mos_due_PROMO,YUM_3mos_wo_PROMO_Codeeffect改为YUM3mos_wo_PROMOeff。
表8.5展示的YUM3mos_due_PROMO估计值似乎表明该模型存在缺陷,因为有很多p值很大(Pr>ChiSq)。然而,全部变量必须放在这个模型中,显著的变量具有小p值,不显著的变量具有大p值,因为这个模型的目的是est_YUM_3mos捕获所有促销信息(即如表8.2最后一行或倒数第二行最后一列所示,促销变化的100%)。所以说,p值大的变量不会影响这个模型的效用。所有促销影响按照定义都包含在所有PROMO哑变量里(PROMO_Code16除外)。因而YUM3mos_due_PROMO模型达到了设计目标。
表8.5 YUM3mos_due_PROMO模型的最大似然估计
YUM3mos_due_PROMO模型定义见方程8.1:
接下来运行附录8.D子程序,得出YUM_3mos_wo_PROMO_CodeEff,计算1-est_YUM_3mos。由此根据统计公理得出了YUM3mos_wo_PROMOeff。
步骤5——构造市场份额因变量
根据步骤4提到的统计公理,我按照下述5个逻辑步骤创建了因变量MARKET-SHARE(市场份额):
1)YUM_3mos,根据定义是个二值变量,受到促销影响。
2)所以,由YUM_3mos衍生出概率。
3)那么,YUM3mos_due_PROMO就是概率。
4)YUM3mos_wo_PROMOeff按照定义是一个不包含促销效应的变量。
5)因而,MARKET-SHARE=YUM3mos_wo_PROMOeff。
步骤6——建立初步的YUM_3mos市场份额模型
1)有超过1200个变量可以作为预测变量,典型的是人口、社会经济和地理变量,此外还有态度、偏好以及生活方式变量,但是不包括市场混合变量。
2)变量选择方法用到了第40章介绍的新构建变量和最终确定的预测变量所用的GenIQ模型中的概念[1]。当然,数据挖掘工程师可以使用自己喜欢的变量选择方法。
3个预测变量SOFT_PCLUS1、SOFT_PCLUS2和SOFT_PCLUS4(未显示)定义了YUM_3mos市场份额模型。这些预测变量是用PCA产生的预测变量,其中包含了遗传编程法的影响。每个预测变量是主成分变量的一个“软”版本。例如,SOFT_PCLUS1是一个修改的主成分变量,只保留了主成分系数的符号。所以,SOFT_PCLUS1是20个候选预测变量的加权和,权重就是主成分系数的符号(+1或-1)。我们没有给出构建主成分预测变量的过程,但是其中包含了20个候选变量。
数据挖掘工程师起初对“软”主成分变量的构建和取值感到很困惑。他们可以通过计算原(“硬”)变量和“软”变量的相关系数,来检验这个方法,实际上,几乎所有情况下的相关系数都大于0.95。
“软”主成分变量的好处是容易理解和处理。而且比相应的“硬”主成分变量更稳定,因为“软”主成分变量不涉及自由度。一个“硬”主成分变量用到3个自由度,所以由20个变量定义的一个“硬”主成分变量就有60个自由度。带有3个“软”主成分变量的YUM_3mos市场份额模型省掉了180个自由度。
YUM_3mos市场份额模型作为一个初步模型(我们在步骤7解释),由方程8.2定义如下:
步骤7——完成YUM_3mos市场份额模型
图8.1生成的是市场份额模型得出结果(MktSh_est)的直方图和对应的箱线图。MktSh_est呈现钟形分布,峰值出现的位置较偏(比较市场份额0.495和RAL的软市场份额0.20),区间缩小(0.519-0.471,异常值0.387)。
图8.1 市场份额模型取值(MktSh_est)的直方图和箱线图
基于假定RAL的软市场份额为0.20,我把MktSh_est的市场份额中心点放在0.20,将MktSh_est改为MktSh_est20,见图8.2。直方图和箱线图显示MktSh_est20的峰值(中心)在0.20;MktSh_est20的分布仍然是钟形的,但是略微向右偏移(偏斜度=0.3477);分布的区间长度是0.729(=0.72-0.00),没有出现异常值。下面介绍详细步骤。作为估算新妈妈的YUM_3mos模型,MktSh_est20的有效性在下一节讨论。
图8.2 市场份额模型中心为0.20的直方图和箱线图
将MktSh_est变为MktSh_est20的统计程序如下。附录8.E的子程序反映了这个转换过程。
1)SAS程序RANK用排序对变量进行标准化。MktSh_est是钟形分布,但是程序RANK用来确保MktSh_est尽可能接近正态分布。(注意,钟形不一定是正态的。)
2)SAS程序STANDARD让一个变量减去一个位置数值(最小值:-3.8138),并除以一个区间数值(最大值:3.9474/1.9961),将这个变量进行标准化。
3)MktSh_est20(调整为0.20)=(MktSh_est+3.8138)/3.9474/1.9661。
[1] 不是GenIQ模型本身。