预测建模函数在 Tableau 中的工作方式

您已经可以向可视化项添加趋势线预测,但现在您可以超越这一点,利用统计引擎的强大功能构建一个模型,了解数据是如何围绕这种趋势线或最佳拟合线分布的。以前,用户必须将 Tableau 与 R 和 Python 集成,才能执行高级统计计算并在 Tableau 中对它们进行可视化。现在,您可以使用预测建模函数,通过在表计算中包括这些函数来依据数据进行预测。有关表计算的详细信息,请参见使用表计算转换值

使用这些预测建模函数,您可以通过更新变量和对具有不同预测因子组合的多个模型进行可视化,从而选择目标和预测因子。数据可以在任何详细级别进行筛选、聚合和转换,模型将会(因此预测也会)自动重新计算以匹配您的数据。

有关演示如何使用这些功能创建预测计算的详细示例,请参见示例 - 使用预测建模函数探索女性预期寿命

Tableau 中可用的预测建模函数

函数 语法 说明
MODEL_QUANTILE MODEL_QUANTILE(
model_specification (optional),
quantile, target_expression,
predictor_expression(s))
以指定的分位数返回由目标表达式和其他预测因子定义的可能范围内的目标数值。这是后验预测分位数。

示例:

MODEL_QUANTILE(0.5, SUM([Sales]),COUNT([Orders]))

MODEL_PERCENTILE MODEL_PERCENTILE(
model_specification (optional),
target_expression,
predictor_expression(s))
返回期望值小于或等于观察标记的概率(介于 0 和 1 之间),由目标表达式和其他预测因子定义。这是后验预测分布函数,也称为累积分布函数 (CDF)。

示例:

MODEL_PERCENTILE( SUM([Sales]),COUNT([Orders]))


预测建模功能的强大功能

让我们看一个使用工资数据的示例,从 MODEL_QUANTILE 开始。

在下面的示例中,MODEL_QUANTILE 用于显示同一数据集的预期分布的第 10 个百分位和 90 个百分位。基于现有数据并使用线性回归模型,统计引擎确定每个任期的最高工资低于绿线的概率为 90%,每个任期的最低工资低于蓝线的概率为 10%。

换句话说,当分位数设置为 0.9 时,模型预测在 90% 的时间内所有工资将落在绿线上或绿线以下。蓝线设置为 0.1 或 10%,因此只有 10% 的工资将落在蓝线上或蓝线以下,蓝线上方的比例 (90%) 则相反。

实际上,这给了我们一个区间,我们可以预测 80% 潜在生成的未来点或未观察到的数据将落入其中。

工资分布图表

接下来,让我们看看 MODEL_PERCENTILE(MODEL_QUANTILE 的倒数)如何帮助我们进一步理解数据。

您可以使用 MODEL_PERCENTILE 函数来标识数据集的离群值。MODEL_PERCENTILE 以百分位的形式指出观测到的标记位于每个标记的可能值范围内。如果百分位非常接近 0.5,则观测到的值非常接近预测的中位数值。如果百分位接近 0 或 1,则观测到的值位于模型范围的下限或上限,这是相对意外的。

下面,我们将 MODEL_PERCENTILE 作为颜色应用于图像上半部分的工资可视化项,以帮助我们了解哪些值最符合预期。

以颜色表示的工资分布

预测建模函数语法详解

什么是 MODEL_QUANTILE?

MODEL_QUANTILE 计算后验预测分位数,或指定分位数的期望值。

  • 分位数:第一个参数是介于 0 和 1 之间的数字,指示应预测什么分位数。例如,0.5 指定将预测中位数。
  • 目标表达式:第二个参数是要预测的度量或“目标”。
  • 预测因子表达式:第三个参数是用于进行预测的预测因子。预测因子可以是维度、度量或两者。

结果为可能范围内的数字。

您可以使用 MODEL_QUANTILE 生成置信区间、缺失值(例如未来日期)或生成基础数据中不存在的类别。

什么是 MODEL_PERCENTILE?

MODEL_PERCENTILE 计算后验预测分布函数,也称为累积分布函数 (CDF)。这将计算介于 0 和 1 之间的特定值的分位数,也就是 MODEL_QUANTILEL 的倒数。

  • 目标表达式:第一个参数是目标度量,确定要评估哪些值。
  • 预测因子表达式:第二个参数是用于进行预测的预测因子。
  • 其他参数是可选的,包括在内是为了控制预测。

请注意,计算语法类似,MODEL_QUANTILE 有一个定义的分位数的额外参数。

结果是预期值小于或等于标记中表示的观测值的概率。

您可以使用 MODEL_PERCENTILE 显示数据库内的相关性和关系。如果 MODEL_PERCENTILE 返回接近 0.5 的值,则在给定您选择的其他预测因子的情况下,观察到的标记接近预测值范围的中位数。如果 MODEL_PERCENTILE 返回接近 0 或 1 的值,则在给定您选择的其他预测因子的情况下,观测到的标记接近模型期望的范围下限或上限。

注意:用作预测因子的维度可以为有序无序。有序维度是任何其值可以排序的维度,例如月份。无序维度是任何其值没有固有序列的维度(例如性别或颜色)。在使用高斯过程回归时,这种区别很重要。有关此模型及其他模型的详细信息,请参见选择预测模型

对于高级用户,还可以包括另外两个可选参数来控制预测。有关详细信息,请参见预测建模中的正则化与扩增

计算什么内容?

用于构建模型的输入是一个矩阵,其中每个标记都是一行,而列是针对每个标记求值的目标表达式和预测因子表达式。在可视化项上指定的任何行都定义了统计引擎正在计算的数据集的行。

让我们看下面的示例,其中行(以及标记)由职务定义,列是目标表达式 M MEDIAN([Annual Rt])。后面是可选的附加预测因子 MEDIAN([Tenure in Months (Measure)] 和 ATTR([Department Generic (group)]。

工资数据表

注意:多个职务的部门下都有一个星号。这是因为这些职务存在于多个部门,但 Tableau 将它们都视为在同一个部门。此外,统计引擎不考虑记录数,并且将每个标记视为同等可能。这是因为 Tableau 无法对未聚合的数据执行表计算,也无法聚合表计算的结果。有关聚合的详细信息,请参见 Tableau 中的数据聚合

有关用于构建模型和生成预测的数据的详细信息,请参见预测建模中的计算依据和数据分区

支持哪些模型?

预测建模函数支持线性回归、正则化线性回归和高斯过程回归。这些模型支持不同的用例和预测类型,并且具有不同的限制。有关详细信息,请参见选择预测模型

选择预测因子

预测因子可以是数据源中的任何字段(度量或维度),包括计算字段。

注意:如果使用维度作为预测因子,则必须使用 ATTR 封装器(例如 ATTR([State],而不仅仅是 [State])。这是因为维度通常只有在可视化项中处于详细级别时才会起作用,无论是直接位于该详细级别,还是在层次结构中处于该级别之上。

例如,假设您的数据集包括字段“[City]”(城市)、“[State]”(州/省/市/自治区)和“[Region]”(区域),其中多个“[City]”(城市)记录存在于 [State]”(州/省/市/自治区)内,多个 “[State]”(州/省/市/自治区)记录位于“[Region]”(区域)内。

在使用 “[State]”(州/省/市/自治区)作为标记的可视化项中,预测因子 ATTR([State]) 或 ATTR([Region]) 将同时作为预测因子工作。但是,预测因子 ATTR([City]) 将恢复为 *,因为多个城市存在于可视化的州/省/市/自治区中,因此不能用作预测因子。换句话说,包括详细级别低于可视化项的预测变量因子不会向预测中添加任何值。在大多数情况下,详细级别低于可视化项的预测因子的求值结果为 *,因此所有预测因子都将得到相同的处理。

但是,如果使用相同的数据集来生成使用“[City]”(城市)作为标记的可视化项,则 ATTR([City])、ATTR([State]) 和 ATTR([Region]) 都可以成功地用作预测因子。有关使用 ATTR 函数的详细信息,请参见何时使用属性 (ATTR) 函数

维度和度量值不需要(在视图中或可视化项中)可视化也可作为预测因子包含在内。有关更详细的指引,请参见选择预测因子

推荐用法

最好按如下方式使用预测计算:

  • 预测单个记录的值,其中可视化项中的每个标记表示一个离散实体,例如产品、销售、人员等,而不是聚合数据。这是因为 Tableau 认为每个标记的可能性是相等的,即使一个标记由 100 条记录组成,而其他标记分别由一条记录组成。统计引擎不会根据组成标记的记录数对标记进行加权。

  • 预测使用 SUM 和 COUNT 的聚合目标表达式的值。
注意:不建议使用 MODEL_QUANTILE 和 MODEL_PERCENTILE 预测使用 AVG、MEDIAN、MIN 或 MAX 的聚合目标表达式的值。

限制

  • 您必须使用计算字段将时间系列扩展到未来。有关详细信息,请参见预测未来

  • 预测因子应处于与视图相同或更高的详细级别。也就是说,如果视图按州/省/市/自治区聚合,则应使用州/省/市/自治区或区域作为预测因子,而不是城市。有关详细信息,请参见选择预测因子

预测计算何时会中断?

无论使用什么模型,每个分区中必须至少有三个数据点,模型才能返回响应。

如果已指定高斯过程回归作为模型,则它可用于具有一个有序维度预测因子和任意数量无序预测因子的预测计算。在高斯过程回归计算中,度量不支持作为预测因子,但可用于线性和正则化线性回归计算。有关模型选择的详细信息,请参见选择预测模型

如果您的计算使用 ATTR[State] 作为预测因子,并且可视化项也包括“State”(州/省/市/自治区)作为标记,但没有其他位于较低详细级别的字段(例如“City”(城市)),则会返回错误。为了防止这种情况,只需确保标记和预测因子类别之间没有一对一关系即可。

有关这些问题和其他预测问题的详细信息,请参见解决预测建模函数中的错误

常见问题解答

多个预测因子组中的标记是怎么样的?

如果依据存在于多个预测因子组中的数据聚合行,则 ATTR 函数的值是多个值的特殊值。例如,存在于多个州/省/市/自治区的所有城市都将具有相同的预测值(除非存在其他不同预测因子)。选择预测因子时,最好使用与可视化项位于同一详细级别或更高级别的预测因子。同样,有关 ATTR 函数的详细信息,请参见何时使用属性 (ATTR) 函数

如果 ATTR 聚合返回 * 值怎么办?

* 被视为一个独特的值。如果 ATTR 为所有标记返回 *,那么您本质上就有了一个包含常量值的预测因子,该预测因子将被忽略。这与根本不包括该预测因子是一样的。

如果 ATTR 为某些标记(但并非所有标记)返回 * ,则它将被视为一个类别,其中所有 * 值都被视为相同。此情形与上述情形相同,其中标记存在于多个预测因子组中。

“计算依据”表计算菜单选项是怎么样的?

此选项的工作方式与其他表计算中的“计算依据”相同。有关详细信息,请参见预测建模中的计算依据和数据分区

为什么我收到错误?

使用预测建模函数时,可能会因为若干原因遇到错误。有关详细的故障排除步骤,请参见解决预测建模函数中的错误

感谢您的反馈!