使用 REPLACE_MODEL_CASES 进行预测
替换模型中的事例时,模型的大小保持不变,但是 Analysis Services 将替换模型中的各个事例。这对于交叉预测以及需要让定型数据集的大小保持一致的情形很有用。
例如,您的一个商店的销售数据不足。您可以对位于特定地区的所有商店的销售量计算平均值,然后定型一个模型,以此来创建一个常规模型。然后,为了对销售数据不足的商店进行预测,可以仅为该商店创建一个有关新销售数据的 PREDICTION JOIN。在进行此操作时,Analysis Services 会保留从地区模型中派生的模式,而使用各个商店的数据替换现有的定型事例。最后,您的预测值将更为接近各个商店的趋势线。
使用 REPLACE_MODEL_CASES 参数时,Analysis Services 会连续将新事例添加到事例集的末尾,并从事例集的开头删除相应数量的事例。如果您要添加的新数据比原始定型集中的数据多,Analysis Services 将丢弃最早的数据。如果您提供了足够的新值,则预测可以基于全新的数据。
例如,假如您已经对包含 1000 行的事例数据集定型了自己的模型。然后您添加了 100 行新数据。Analysis Services 会从定型集中删除前 100 行,并向该定型集的末尾添加 100 行新数据,总和仍然是 1000 行。如果您添加了 1100 行新数据,则只使用最新的 1000 行。
以下是另一个示例。若要添加新的三个月积累的数据并进行三个新预测,您需要执行下列操作:
在时序模型上创建 PREDICTION JOIN,并使用 REPLACE_MODEL_CASE 参数。
指定三个月新数据的来源。该数据可能来自与原始定型数据完全不同的来源。
请求六个时间段的预测。为此,请指定 6 个时间段,或者将起点指定为时间段 1,终点指定为时间段 7。
注意:
与 EXTEND_MODEL_CASES 不同,您不能返回作为输入数据添加的相同值。返回的全部六个值都是基于更新模型的预测,其中包括旧数据和新数据。
注意:
对于 REPLACE_MODEL_CASES,从时间戳 1 开始获取基于新数据的新预测,这会替换旧的定型数据。
缺失值的替代
在通过 PREDICTION JOIN 语句向时序模型添加新数据时,新数据集不能有任何缺失值。如果有任何序列不完整,则该模型必须使用 Null、数值平均值、特定数值平均值或预测值来替换缺失的值。如果指定了 EXTEND_MODEL_CASES,Analysis Services 会将缺失值替换为基于原始模型的预测。如果使用 REPLACE_MODEL_CASES,则 Analysis Services 会将缺失的值替换为您在 MISSING_VALUE_SUBSTITUTION 参数中指定的值。
预测函数的列表
所有 Microsoft 算法均支持一组通用的函数。但 Microsoft 时序算法支持下表中列出的其他函数。
Lag
返回当前事例的日期与定型集的最近日期之间的若干时间段。
该函数的一个典型用途是标识最近的定型事例,以使您可以检索有关这些事例的详细数据。
PredictNodeId
返回指定的可预测列的节点 ID。
该函数的一个典型用途是标识生成特定预测值的节点,以使您可以查看与该节点关联的事例、公式以及其他详细信息。
PredictStdev (DMX)
返回指定的可预测列中预测的标准偏差。
该函数取代时序模型不支持的 INCLUDE_STATISTICS 参数。
PredictVariance
返回指定可预测列的预测方差。
该函数取代时序模型不支持的 INCLUDE_STATISTICS 参数。
PredictTimeSeries (DMX)
返回时序数据的历史预测值或未来预测值。
您还可以通过使用常规预测函数 Predict (DMX) 来查询时序模型。