2、趋势Trend (copy)

本文探讨了时间序列中的趋势概念,通过移动平均图揭示趋势,并使用线性回归进行建模。通过示例解释了如何为隧道交通数据创建线性趋势模型,展示如何进行预测,并强调了确定性过程在构建趋势模型中的作用。
摘要由CSDN通过智能技术生成

利用移动平均数和时间虚拟模型对长期变化进行建模。

1、什么是趋势?

时间序列的趋势组成部分代表了序列均值的持久、长期变化。趋势是序列中变化最慢的部分,代表了最重要的大时间尺度。在产品销售的时间序列中,增加的趋势可能是市场扩张的效果,因为随着时间的推移,越来越多的人了解到产品。
在这里插入图片描述 四个时间序列的趋势模式

在这个课程中,我们将关注均值的趋势。更一般地说,任何在序列中持久且缓慢变化的部分都可以构成趋势 – 时间序列通常有其变化的趋势。

2、移动平均图

要看一个时间序列可能有什么样的趋势,我们可以使用移动平均图。计算时间序列的移动平均,我们计算在某个定义宽度的滑动窗口内的值的平均值。图上的每个点代表在窗口两侧的序列中所有值的平均值。这样做的目的是平滑序列中的任何短期波动,使得只剩下长期变化。
在这里插入图片描述
一个展示线性趋势的移动平均图。

线性趋势,曲线上的每个点(蓝色)是窗口大小为12的点(红色)的平均值。

注意上面的Mauna Loa序列如何年复一年地重复上下移动 – 这是一个短期的、季节性的变化。对于一个变化成为趋势的部分,它应该发生在比任何季节性变化更长的时间段内。因此,为了可视化趋势,我们取一个比序列中任何季节性周期更长的平均值。对于Mauna Loa序列,我们选择了大小为12的窗口来平滑每年内的季节。

3、工程趋势

一旦我们确定了趋势的形状,我们就可以尝试使用时间步特征来对其进行建模。我们已经看到如何使用时间虚拟变量本身来建模线性趋势:

target = a * time + b

我们可以通过对时间虚拟变量的转换来拟合许多其他类型的趋势。如果趋势看起来是二次的(一个抛物线),我们只需要将时间虚拟变量的平方添加到特征集中,得到:

target = a * time ** 2 + b * time + c

线性回归的学习系数是a、b和c。

下图中的趋势曲线都是使用这些特征和scikit-learn的LinearRegression拟合的:
在这里插入图片描述
顶部: 呈线性趋势的序列。 下面: 呈二次趋势的序列。

如果你以前没有看过这个技巧,你可能没有意识到线性回归可以拟合除了线之外的曲线。这个想法是,如果你可以提供适当形状的曲线作为特征,那么线性回归就可以学习如何以最适合目标的方式组合它们。

4、示例 - 隧道交通

在这个例子中,我们将为隧道交通数据集创建一个趋势模型。

from pathlib import Path
from warnings import simplefilter

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd

simplefilter("ignore")  # ignore warnings to clean up output cells

# Set Matplotlib defaults
plt.style.use("seaborn-whitegrid")
plt.rc("figure", autolayout=True
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI算法蒋同学

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值