试用教程
在本教程中,您将完成这些任务:
建模流程和数据集样本
本教程使用示例项目中的带宽利用率预测流程。 您使用时间序列模型对几个本地市场未来三个月的情况进行预测。 使用的数据文件是broadband_1.csv。 下图显示了建模流程示例。
在SPSS® Modeler 中,您可以在一次操作中生成多个时间序列模型。 broadband_1.csv数据文件包含 85 个本地市场的月度使用数据。 在本示例中,只使用了前五个系列;为这五个系列中的每个系列创建了一个单独的模型,外加一个总数。
该文件还包含指示每个记录的年份和月份的日期字段。 该字段用于标注记录。 日期字段以字符串形式读入SPSS Modeler,但要在SPSS Modeler中使用该字段,必须使用Filler节点将存储类型转换为数字日期格式。
时间序列节点要求每个序列单独成列,每个时间间隔一行。 如有必要,SPSS Modeler提供了转换数据的方法,以匹配这种格式。
任务 1:打开示例项目
任务 2:检查数据资产和筛选器节点
带宽利用率预测建模流程包括几个节点。 按照以下步骤检查数据资产和筛选器节点:
- 从 "资产"选项卡,打开 "预测带宽利用率"建模流程,等待画布加载。
- 双击broadband_1.csv节点。 该节点是一个数据资产节点,指向项目中的broadband_1.csv文件。
- 查看文件格式属性。
- 可选:单击 "预览数据"查看完整数据集。
- 双击过滤节点。 Notice that this node filters out the
Market_6
throughMarket_85
fields, and theMONTH_
andYEAR_
fields. - 可选:单击 "预览数据"查看过滤后的数据集。
检查您的进度
下图显示了过滤器节点。 现在您可以将数据可视化了。
任务 3:可视化数据
在建立模型之前,最好先将数据可视化。 数据是否表现出季节性变化? 虽然SPSS Modeler可以自动为每个序列找到最佳的季节性或非季节性模型,但当数据中不存在季节性时,将搜索范围限制在非季节性模型上往往可以更快地得到结果。 在不检查每个本地市场数据的情况下,您可以通过绘制所有五个市场的用户总数,大致了解季节性的存在与否。 请按照以下步骤将数据可视化:
- 双击[Market_1 Market_2 Market_3 Market_4 Market_5]节点。 下图显示了该时间图节点的属性。
- 在系列列表中添加 "
Total
字段,绘制总订阅数据图表。- 单击添加列。
- 选择 "总计"字段。
- 清除所有其他以 "
Market_
开头的字段。 - 单击确定。
- 清除 "在单独面板中显示系列"和 "正常化"选项。
- 单击保存。
- 将鼠标悬停在 "时间图节点上,然后点击 "运行图标 "。
- 在 "输出和模型"窗格中,单击名称为[Total]的输出结果查看图表。 该系列呈现出平稳的上升趋势,没有任何季节性变化。 可能有个别序列具有季节性,但显然季节性并不是总体数据的显著特征。
- 绘制所有市场的数据图表。 在排除季节性模型之前,对每个系列进行检查。 然后,您可以将表现出季节性的序列分离出来,分别建立模型。
- 双击[Total]节点。
- 选择 "总计"字段,然后单击 "删除"图标。
- 单击添加列。
- 选择所有以 "
Market_
开头的字段。 - 单击确定。
- 清除 "在单独面板中显示系列"和 "正常化"选项。
- 单击保存。
- 将鼠标悬停在 "时间图节点上,然后点击 "运行图标 "。
- 在 "输出和模型"窗格中,单击名称为[Market_1 Market_2 Market_3 Market_4 Market_5]的输出结果以查看图表。 检查后发现每个市场的曲线均呈稳定上升趋势。 虽然有些市场比其他市场更不稳定,但结果显示没有季节性的迹象。
检查您的进度
下图说明了该流。 现在您可以定义日期了。
任务 4:确定日期
填充节点用于替换字段值和更改存储。 您可以选择基于指定的 CLEM 条件(如 @BLANK(FIELD)
)替换值。 或者,也可以选择将所有空白值或空值替换为特定值。 填充节点通常与类型节点一起用于替换缺失值。 请按照以下步骤将 "DATE_
字段的存储类型设置为日期格式:
- 双击填充节点,查看其属性。
- 注意 "
DATE_
字段已列在 "填写字段"部分。 该部分包括数据集中的字段,其值将被检查和替换。 - 确认 "替换"选项设置为 "始终"。 默认行为是使用 "条件和 "替换为表达式替换值 "根据条件。
- 验证 "替换为"值是否设置为 "
to_date(DATE_)
。 由于 "替换 "选项设置为 "始终",因此需要使用 "替换为表达式"。 该表达式将 "DATE_
字段的存储类型更改为日期格式。 - 单击 "预览数据"查看已完成的 "
DATE_
字段。 - 单击保存。
检查您的进度
下图显示了填充节点。 现在您可以定义目标了。
任务 5:确定目标
您可以在类型节点中指定字段属性。 请按照以下步骤在类型节点中定义目标:
- 双击 "类型"节点查看其属性。
- 单击 "读取数值"从数据源读取数值,并设置字段测量类型。 角色告诉建模节点,字段是机器学习流程的输入(预测
)还是目标(预测字段)。 既有和无也是可用的角色,还有 "分区"(Partition),它表示一个字段,用于将记录划分为单独的样本,以进行训练、测试和验证。 值Split指定为字段的每个可能值建立单独的模型。 - 将 "
DATE_
字段的角色设置为 "无"。 - 对于所有其他字段("
Market_n
字段和 "Total
字段),将角色设置为 "目标"。 - 单击保存。
检查您的进度
下图显示了类型节点。 现在您可以设置时间间隔了。
任务 6:设置时间间隔
在 "时间序列"节点中,可以定义使用日期/时间字段和适当时间间隔的观测值。 请按照以下步骤在时间序列节点中设置时间间隔:
- 双击时间序列(6 个字段)节点,查看其属性。
- 展开观察结果和时间间隔部分。 可用的选项如下所示:
- 由日期/时间字段指定的观察结果:您可以指定通过日期、时间或时间戳字段来定义观察结果。 除了用于定义观测值的字段以外,请选择用于描述观测值的适当时间间隔。 根据指定的时间间隔,您还可以指定其他设置,例如两次观测之间的时间间隔(增量)或每周的天数。
- 被定义为周期或循环周期的观测数据:观测值由一个或多个整数字段定义,这些字段代表周期或周期的重复周期,周期级数可任意设定。 利用这种结构,您可以描述一系列不符合标准时间间隔的观察结果。 例如,可以使用表示年份的循环字段和表示月份的周期字段(一个循环的长度为 10)来描述仅包含 10 个月的财年。
- 确认时间/日期字段中选择了 "
DATE_
。 - 确认时间间隔字段中选择了 "
Months
。
- 确认时间/日期字段中选择了 "
- 展开模型选项部分。
- 选择 "将记录扩展到未来 "字段。 该字段设置估算期结束后的预测间隔数。 在这种情况下,时间间隔为分析时间间隔。 当要求进行预测时,自动回归模型会自动为任何不同时也是目标的输入序列建立。 然后,使用这些模型生成这些输入序列在预测期内的值。
- 输入 "
3
表示时间间隔数。
检查您的进度
下图显示了类型节点。 现在您可以开始制作模型了。
任务 7:建立模型
通过时间序列节点,您可以选择估计和建立指数平滑、单变量自回归综合移动平均(ARIMA)或多变量 ARIMA(或传递函数)时间序列模型,并根据时间序列数据进行预测。
任务7a:指定模型选项
按照以下步骤在Times Series节点中指定模型选项:
- 查看时间序列(6 个字段)节点属性,指定目标和候选输入。
- 验证 "目标"表是否包含所有五个市场字段和 "
Total
字段。 - 验证候选人输入表是否包含所有五个市场字段。
- 验证 "目标"表是否包含所有五个市场字段和 "
- 展开 "构建选项-常规"部分。 可用的选项如下所示:
- 指数平滑是一种使用先前的序列观察的加权值来预测未来值的预测方法。 因此,指数平滑不是以对数据的理论理解为基础的。 指数平滑每次预测一个点,在输入新数据时可调整其预测。 此技术有助于预测可展示趋势和/或季节性的序列。 您可从以不同方式处理趋势和季节性的各种指数平滑法模型中进行选择。
- 与指数平滑法模型相比,ARIMA 模型在对趋势和季节组件建模方面提供更成熟的方法,特别是,增加了可在模型中包括自变量(预测变量)的优势。 这种方法包括明确指定自回归和移动平均阶次以及差分程度。 可以包含预测变量并为任意或所有预测变量定义变换函数以及指定对离群值的自动检测或精确设置。
- Expert Modeler试图为一个或多个目标变量自动识别和估计最合适的 ARIMA 或指数平滑模型,从而无需通过试验和错误来确定合适的模型。 如果您有任何疑问,请使用“专家建模器”选项。
- 确认已选择专家建模方法。 这种方法使专家建模器能够决定对每个时间序列使用最合适的模型。
- 确认 "模型类型"字段中选择了 "所有模型"。 该选项同时考虑 ARIMA 和指数平滑模型。
- 确认已选择专家模型考虑季节模式字段。 选中此选项时,Expert Modeler 将同时考虑季节模型和非季节模型。
下图显示了 "构建 "选项 - 常规设置。 - 单击保存。
- 将鼠标悬停在时间序列(6 个字段)节点上,然后单击运行图标 "。
任务7b:查看模型输出
请按照以下步骤以表格格式查看模型输出:
- 将鼠标悬停在与模型节点相连的表节点上,然后点击运行图标 "。
- 在 "输出和模型"窗格中,单击名称为 "表"的输出结果以查看表输出。
请注意,在原始数据的末尾添加了三行新数据。 这些行是预测期的数据,这里指的是 2004 年 1 月至 3 月。
您会看到几个新栏目。 时间序列节点添加了 "
$TS-
列。 这些列表示每行(即,时间序列数据中的每个区间)的以下内容:表 1. 时间序列模型中生成的列 列 描述 $TS-colname 由每列原始数据生成的模型数据。 $TSLCI-colname 每列生成的模型数据中的置信度区间下限值。 $TSUCI- colname 每列生成的模型数据中的置信度区间上限值。 $TS-Total 此行的 $TS-colname 值的总计。 $TSLCI-Total 此行的 $TSLCI-colname 值的总计。 $TSUCI-Total 此行的 $TSUCI-colname 值的总计。 预测操作中最重要的列是 "
$TS-Market_n
"、"$TSLCI-Market_n
"和 "$TSUCI-Market_n
"列。 尤其是,最后三行中的这些列包含每个地区市场的用户预订预测数据和置信区间。
检查您的进度
下图显示了输出表。 现在您可以检查模型了。
任务 8:检查模型
现在,您可以检查模型信息和预测结果了。
任务8a:查看模型信息
按照以下步骤查看型号信息:
- 将鼠标悬停在时间序列模型小块上,然后点击溢出菜单 "。
- 在目标栏中,单击Market_2。
- 单击型号信息。 预测变量数行显示用作每个目标的预测变量的字段数。
模型信息表中的其他行显示每个模型的各种拟合优度测量。 静态 R 方 测量模型如何优于基准模型。 如果最终模型为 ARIMA(p,d,q)(P,D,Q),那么基准模型为 ARIMA(0,d,0)(0,D,0)。 If the final model is an Exponential Smoothing model, then d is 2 for Brown and Holt model and 1 for other models, and D is 1 if the seasonal length is greater than 1, otherwise D is 0. 负的固定 R 平方意味着所考虑的模型比基准模型差。 静态 R 平方为零表示模型与基线模型一样好或一样差,静态 R 平方为正表示模型比基线模型好。
统计信息和 df 行以及参数估计下的显著性与 Ljung-Box 统计相关,用于测试模型中残差错误的随机性。 错误越随机,模型可能会越好。 统计是 Ljung-Box 统计量本身,而 "df(自由度)则表示在估算某一特定目标时可改变的模型参数数量。
显著性指定 Ljung-Box 统计信息的显著性值,对是否正确指定模型提供另一个指示。 显著性值小于 0.05 表示残差误差不是随机的,则意味着所观测的序列中存在模型无法解释的结构。
考虑到静态 R 平方和 显著性值,专家建模器为"
Market_3
和 "Market_4
"选择的模型是可以接受的。Market_1
"、"Market_2
"和 "Market_5
的显著性值均小于0.05,这表明可能有必要对这些市场的拟合模型进行一些试验。显示屏会显示几种拟合度量。 R 方值将估计出时间序列中可由模型解释的总差异值。 由于该统计量的最大值为1.0,因此您的模型在这方面没有问题。
RMSE是均方根误差,用来衡量序列的实际值与模型预测值之间的差异程度,其单位与序列本身所用的单位相同。 由于该误差是对误差的测量,因此希望该值越小越好。 初看之下,"
Market_2
和 "Market_3
的模型虽然根据您目前看到的统计数字仍然可以接受,但却不如其他三个市场的模型成功。其他拟合优度测量值包括平均绝对误差百分比 (MAPE) 和其最大值 (MAXAPE)。 绝对误差百分比用于度量目标序列与其模型预测水平的差异程度,以百分比值表示。 通过检查所有模型中的均值和最大值,可以大概知道预测的不确定性程度。
MAPE值显示,所有模型的平均不确定性都在 1%左右,属于较低水平。 MAXAPE 值显示最大绝对误差百分比,并且对设想预测的最坏情况很有帮助。 结果显示,大多数模型的最大误差百分比大约在1.8 到3.7 之间,同样是一组较低的数字,只有 "
Market_4
的误差百分比较高,接近 7%。MAE (平均绝对误差)值用于显示预测误差绝对值的均值。 与RMSE值一样,该值的单位与序列本身所用的单位相同。 MAXAE以相同单位显示最大预测误差,表示预测的最坏情况。
尽管这些绝对值受到关注,但在此情况下,百分比错误(MAPE 和 MAXAPE)值更有用,因为目标序列代表不同规模市场的订户数。
MAPE 和 MAXAPE 值可以使用模型表示可接受的不确定性程度吗? 它们非常低。 在这种情况下,商业意识就会发挥作用,因为可接受的风险会随着问题的不同而变化。 您假定拟合优度统计量在可接受的范围内,因此继续查看残差误差。
相比只查看拟合优度统计量,检查模型残差的自相关函数 (ACF) 和部分自相关函数 (PACF) 的值能更多地从量化角度来了解模型。
一个规范的时间序列模型可以捕捉到所有非随机变化,包括季节性、趋势、周期性和其他重要因素。 如果是这种情况,那么任何误差都不应随时间的推移与其自身相关联(自相关)。 任一自相关函数中的一个重要结构都可能意味着基本模型是不完整的。
- 关闭Market_2窗口。
- 单击型号信息。 预测变量数行显示用作每个目标的预测变量的字段数。
- 单击Market_4模型。
- 单击相关图显示模型中残差误差的自相关函数(ACF) 和偏自相关函数(PACF) 值。
在这些图中,误差变量的原始值(在"构建选项"-"输出 "下)滞后到 24 个时间周期的默认值,并与原始值进行比较,以查看随时间变化的相关性。 理想情况下,代表 ACF 和 PACF 所有滞后期的条形图应在阴影区域内。 然而,在实际操作中,可能会有一些滞后超出阴影区域。 例如,当为了节省计算时间而尝试将一些较大的滞后期纳入模型时,就会出现这种情况。 某些滞后不重要,将从模型中移除。 如果要进一步改进模型,并且不管这些滞后是否冗余,这些散点图将充当提示,让您了解哪些滞后是潜在的预测变量。
如果出现这种情况,您需要查看下部(PACF) 图,看看结构是否在此得到确认。 PACF 散点图主要关注在控制插入时间点的序列值之后的相关性。
Market_4
"的值都在阴影区域内,因此您可以继续检查其他市场的值。 - 关闭Market_4窗口。
- 单击相关图显示模型中残差误差的自相关函数(ACF) 和偏自相关函数(PACF) 值。
- 打开每个其他市场和总计的相关图。
其他市场的数值都显示出阴影区域之外的一些数值,这证实了您之前从它们的显著性数值中得出的猜测。 你需要在某些时候针对这些市场尝试一些不同的模型,看看是否能获得更好的拟合效果,但在本例的其余部分,你要专注于从 "
Market_4
模型中还能学到什么。 - 关闭模型窗口,返回流程画布。
任务8b:可视化预测
请按照以下步骤将预测结果可视化:
绘制实际与预测对比图
- 双击与时间序列模型节点相连的时间绘图节点。
- 清除在单独面板中显示系列选项。
- 在系列列表中,删除除 "
Market_4
和 "$TS-Market_4
字段以外的所有字段。 - 单击保存。
- 将鼠标悬停在 "时间图["Market_4"$TS-Market_4""$TSLCI-Market_4""$TSUCI-Market_4"] 节点上,然后点击 "运行图标 "。
- 在 "输出和模型"窗格中,点击名称为[Market_4 $TS-Market_4 $TSLCI-Market_4 $TSUCI-Market_4]的输出结果查看图表。 请注意预测 (
$TS-Market_4
) 线如何通过实际数据的末端向外延伸。 现已得出对此市场未来三个月预期需求的预测。 整个时间序列的实际数据线和预测数据线在图中非常接近,表明该模型对这一特定时间序列是可靠的。
绘制置信区间图
- 双击时间图表 [Market_4 $TS-Market_4 $TSLCI-Market_4 $TSUCI-Market_4]节点。 现在虽然有了此特定市场的可靠模型,但该预测的误差到底有多大呢? 您可以通过检查置信区间来了解误差范围。
- 在系列部分,删除 "
Market_4
和 "$TS-Market_4
字段。 - 单击添加列。
- 选择 "
$TSLCI-Market_4
和 "$TSUCI-Market_4
字段。 - 单击确定。
- 选择 "
- 单击保存。
- 将鼠标悬停在 "时间曲线 [Market_4'$TS-Market_4' '$TSLCI-Market_4' '$TSUCI-Market_4' ]节点上,然后点击 "运行图标 "。
- 在 "输出和模型"窗格中,点击名称为[Market_4 $TS-Market_4 $TSLCI-Market_4 $TSUCI-Market_4]的输出结果查看图表。 现在,您有了与之前相同的图表,但增加了置信区间的上限(
$TSUCI
")和下限($TSLCI
")。 请注意置信度区间的边界如何随预测时限而分叉,这表示预测越指向更远的将来,不确定性就变得越来越大。 但是,随着每个时间段的推移,您就会有另外一个月(在本例中)的实际使用数据作为预测依据。 在实际场景中,您可能会将新数据读入流程,然后重新应用您的模型,因为您知道它是可靠的。 - 关闭图形窗口。
检查您的进度
下图显示了已完成的流程。
目录
本例向您展示了如何使用专家建模器对多个时间序列进行预测。 在实际应用中,您可能需要将非标准时间序列数据转换成适合输入时间序列节点的格式。
后续步骤
现在您可以尝试其他SPSS Modeler教程了。