收集数据后,请执行探索性数据分析 (EDA),以查找并解决任何数据质量问题。这是营销组合建模分析 (MMM) 流程中的一个关键步骤,因为它让您可以评估数据,确认数据能否准确反映营销活动、客户响应和其他相关指标。通过修正 EDA 流程中发现的问题,您可以提高模型输出的可靠性。
执行 EDA 的基本流程如下:
- 运行数据审核,以确定是否存在任何数据缺失或不完整的情况。
- 修复原始输入文件中的缺失值。
- 评估数据的准确性。
- 修正数据中的任何异常值、离群点或不准确之处。
- 检查 KPI、媒体和控制变量之间的相关性。
执行 EDA 的方法有很多种,因此 Meridian 并没有为此流程提供可视化图表。我们建议您根据自身需求,在下列两者之间找到适当的平衡:进行全面的精细分析,以增强信心;快速检查概要数据,获得不太详细的数据洞见。
在制作自己的可视化图表以协助执行 EDA 时,请考虑以下准则:
检查数据完整性:检查数据中是否存在缺失值。您可以创建图表来显示每个变量(渠道)的数据完整性百分比,然后调查显示为不完整的变量。
为进一步完善 EDA,您可以创建可视化图表,按年、月、周和工作日显示观测结果的数量。然后看看有没有哪个时间段的观测结果数量意外偏低。
检查数据准确性:确保数据准确无误,且不存在可能导致结果偏差的异常值或离群点。创建可视化图表来检查准确性的步骤包括比较每个渠道的媒体支出份额,以及检查某个渠道的趋势以发现异常情况。您可以将这些可视化图表与媒体策划方案进行比较,也可以请营销团队帮助确定数据是否准确且足够精细。
检查渠道规模:查看渠道的支出占比。支出占比非常小的渠道可能难以准确估计,建议将这类渠道与其他渠道组合分析。
检查渠道媒体投放的可变性:媒体投放(展示次数、点击次数等)可变性较低的渠道可能难以估计。若掌握相关先验信息,不妨考虑使用自定义先验。
检查变量之间的相关性:虽然不要求 KPI、媒体和控制变量之间存在相关性,但在以下使用情形中,创建可视化图表来检查相关性还是很有帮助的:
衡量媒体变量与控制变量之间的相关性,看看是否存在任何意想不到的关系。这可以帮助您决定是保留还是移除任何媒体或控制变量。
识别多重共线性。如果媒体变量和控制变量中的两个或更多变量彼此高度相关,就会产生多重共线性,这会导致回归模型难以计算共线变量的影响。通过在数据审核中识别多重共线性,您可以决定在模型中包含或排除哪些变量。
在确信数据准确无误且完整后,您可以使用支持的格式加载数据,然后创建模型。
自动数据检查
Meridian 提供了一些自动数据检查,这些检查旨在发现会导致模型不收敛或结果不可信的极端数据问题。这些检查会在 sample_posterior 调用时或初始化 Meridian 对象时执行。如果在数据中发现任何严重问题,后验抽样将不会执行,而是会输出一条错误消息,详细说明该严重问题以及解决该问题的措施。这些数据检查会在完整后验抽样之前提醒您注意严重问题,从而节省时间并提高模型可信度。所有自动数据检查都是针对用于拟合模型的自动缩放数据执行的。如需详细了解 Meridian 的数据缩放,请参阅输入数据。
系统会自动对数据集执行以下关键检查:
成对相关系数
计算所有按比例缩放的处理单位数(包括 RF 和 ORF 渠道按比例缩放的覆盖人数 $\times$ 频次)与按比例缩放的控制变量之间的皮尔逊成对相关系数。
对于地理位置模型,系统会先计算所有地理位置和时间之间的成对相关系数。也就是说,对于任意两个变量 $\mathbf{X}_1$ 和 $\mathbf{X}_2$,系统会计算 $Corr(\mathbf{X}_1, \mathbf{X}_2)$,其中
\[ \begin{align*} \mathbf{X}_1 &= ( x_{g_1, t_1, 1}, x_{g_1, t_2, 1}, \cdots, x_{g_2, t_1, 1}, x_{g_2, t_2, 1}, \cdots ) \\ \mathbf{X}_2 &= ( x_{g_1, t_1, 2}, x_{g_1, t_2, 2}, \cdots, x_{g_2, t_1, 2}, x_{g_2, t_2, 2}, \cdots ). \end{align*} \]
如果一对变量具有近乎完美的相关性(在所有地理位置和时间范围内,其成对相关系数的绝对值超过默认阈值 0.999),则会触发
ERROR。f'Some variables have perfect pairwise correlation across all times and geos. For each pair of perfectly-correlated variables, please remove one of the variables from the model.\nPairs with perfect correlation: {var_pairs}'在这种情况下,对于错误消息内的
{var_pairs}中列出的每对变量,请从InputData中移除一个冗余变量,然后重新运行sample_posterior。对于国家级模型,如果一对变量在所有时间段内的成对相关系数绝对值大于 0.999,则会触发
ERROR。这种情况下,同样要从模型中移除错误消息中提及的其中一个冗余变量。f'Some variables have perfect pairwise correlation across all times. For each pair of perfectly-correlated variables, please remove one of the variables from the model.\nPairs with perfect correlation: {var_pairs}'
多重共线性
为了评估多重共线性,系统会针对所有按比例缩放的处理单位数(包括 RF 和 ORF 渠道按比例缩放的覆盖人数 $\times$ 频次)和按比例缩放的控制变量计算方差膨胀因子 (VIF)。VIF 用于估计解释变量的方差因与模型中的其他变量共线性而膨胀的程度。VIF 为 1 表示不存在共线性,而值越高则表示多重共线性程度越高。高度多重共线性会增加系数可信区间的宽度,导致其后验推理的可靠性降低。
对于地理位置模型,系统会先计算每个变量在所有地理位置和时间段内的 VIF。如果有任何变量可以几乎完美地表示为其他变量的线性组合(VIF 超过默认阈值 1,000),系统会触发
ERROR。f'Some variables have extreme multicollinearity (VIF > 1000) across all times and geos. To address multicollinearity, please drop any variable that is a linear combination of other variables. Otherwise, consider combining variables.\nVariables with extreme VIF: {high_vif_vars}'在这种情况下,您可以舍弃错误消息
{high_vif_vars}中列出的任何可能是其他变量的线性组合的冗余变量,也可以合并这些变量。对于国家级模型,系统会计算每个变量在所有时间段的 VIF。如果某个变量的 VIF 超过默认阈值 1,000,则会触发
ERROR。同样,您可以舍弃或合并错误消息中提及的冗余变量。f'Some variables have extreme multicollinearity (with VIF > 1000) across all times. To address multicollinearity, please drop any variable that is a linear combination of other variables. Otherwise, consider combining variables.\nVariables with extreme VIF: {high_vif_vars}'
KPI 的标准差
对于地理位置模型,这项检查会计算按比例缩放的 KPI 在所有地理位置和时间段的标准差;对于国家级模型,则会计算在所有时间段的标准差。当按比例缩放的 KPI 几乎完全恒定时(标准差小于 1e-4),系统会触发
ERROR。这意味着响应变量中没有信号。您应检查是否存在数据输入错误,或重新考虑使用此数据集进行统计建模的可行性。f'{kpi} is constant across all geos and times, indicating no signal in the data. Please fix this data error.'解释性变量的标准差
这项检查会评估按比例缩放的控制变量和按比例缩放的处理变量(包括 RF 和 ORF 渠道按比例缩放的覆盖人数)的标准差。由于 Meridian 模型具有时间主效应 $\mu_t$(对于地理位置级数据,还有地理位置主效应 $\tau_g$),因此我们会分别评估这些按比例缩放的变量在时间维度和地理位置维度(如果适用)上的变异性,原因如下。
在地理位置维度上的变异性
因为国家级模型只有一个地理位置,所以仅针对地理位置级数据集评估按比例缩放的变量在地理位置维度上的标准差。当您设置了
knots = n_times并且有一个变量不会因地理位置而异(例如,地理位置级数据集中存在的国家级变量)时,就会出现ERROR。当knots = n_times时,每个时间段都有自己的形参。国家级变量只因时间而异,在地理位置间不存在差异。因此,国家级变量与时间完全共线,对于每个时间段都有形参的模型来说是多余的。这意味着,您可以保留国家级变量,也可以设置knots < n_times。选择哪个变量取决于您的解释目标。f'The following {data_name} variables do not vary across geos, making a model with n_knots=n_time unidentifiable. This can lead to poor model convergence. Since these variables only vary across time and not across geo, they are collinear with time and redundant in a model with a parameter for each time period. To address this, you can either: (1) decrease the number of knots (n_knots < n_time), or (2) drop the listed variables that do not vary across geos.'在时间维度上的变异性
对于地理位置级数据集和国家级数据集,都会评估按比例缩放的变量在时间维度上的标准差。
对于地理位置模型,当您有一个不随时间变化的变量时,就会出现
ERROR,该变量与地理位置主效应 $\tau_g$ 完全共线。由于此冗余变量会导致模型收敛性较差,因此您应舍弃不随时间变化的变量。f'The following {data_name} variables do not vary across time making a model with geo main effects unidentifiable. This can lead to poor model convergence. Since these variables only vary across geo and not across time, they are collinear with geo and redundant in a model with geo main effects. To address this, drop the listed variables that do not vary across time.'对于国家级模型,不随时间变化的变量是一个不带来任何信号且会损害模型收敛的常量项。您应从模型中舍弃此常量变量。
f'The following {data_name} variables do not vary across time, which is equivalent to no signal at all in a national model. This can lead to poor model convergence. To address this, drop the listed variables that do not vary across time.'