跳过主要导航

时间序列:滞后线性回归

正如伊恩·维滕(Ian Witten)所解释的那样,最简单的预测是线性回归。添加变量的滞后副本大大增加了其功率。
10.9
在本课程中,我们将开始认真谈论时间序列的预测。我们将使用滞后来查看线性回归。我们不会使用时间序列预测软件包;我们将在下一课上开始。我们将在此处加载时间序列数据集。我们将去探险家。我要加载航空公司。这是我的WEKA数据集所在的地方。我不知道你在哪里。我要加载airline.arff。 Here it is. I’m going to just have a look at this data with the edit button. You can see that there’s a passenger_numbers attribute and then a Date attribute that goes from the first of January 1949 through to the first of December 1960.
58.2
因此,这是古老的航空公司乘客数据。我们将在此处进行分类,我们将通过功能类别中的线性回归进行预测。这个很重要。我们将预测Pastenger_numbers。这是第一个属性,因此我们需要从默认值中将其设置在此处,因为默认情况下WEKA预测了最后一个属性。我要单击“开始”。我们将在这里查看根平方的错误。46.6是我们得到的。我们可以查看分类器错误。现在,这是线性回归,因此我们期望这里有线性线。 That’s what linear regression predicts.
100.2
在Y轴上,我将提出预测的乘客人数;在X轴上,我要将日期放在那里,我们有它。这是预测的线。这些杂交的大小偶然指示了该点误差的大小,但是就我们而言,在这里,这是线性回归。真的不是很有趣。令人惊讶的一件事是,该模型是0次日期加上此常数,如果真的正确,那将是一条水平线。这有点有趣。有趣的是日期。如果我回到这里查看,日期属性的值范围从这里的这些数字范围。那是6620亿吗?
152.7
- 这里有6620亿。这是因为这些日期是自1970年1月1日以来以毫秒为单位的。因此,自数据集开始以来,我将将它们转换为几个月。我将使用过滤器来做到这一点。这样做有不同的方法,但是我将使用AddExpression过滤器,我将制作一个表达式,该表达式采用第二个属性,即日期属性,即A2。我将以毫秒为单位。我要秒数,然后我要赚几分钟,然后我要去几个小时,然后我要去几天。那我要去几年。一年365¼天。
203.1
我将增加21个,从1949年到1970年。我将在几个月内做到这一点。我花了一些时间来弄清楚这一点。我希望它能起作用。我将称之为newdate。让我们看看这里会发生什么。我要应用该过滤器,现在我有了新达特,它从大约0到143左右。现在,Leap年有一个小问题,对吗?我使用的一年365.25天的数字平均是准确的,但是我应该真正考虑到哪几年是LEAP年,等等,因此这里发生了一些不确定的事情。但是没关系。
248.3
只是有点近似。我将删除日期属性,删除日期属性。我将再次看模型。我每次都会记住 - 这有点令人讨厌 - 每次我都必须记住预测乘客_numbers时。And if I run that, then we’re getting this model 2.66 times the NewDate plus 90. It’s the same model as before, but we’ve kind of scaled NewDate, so now this coefficient, which used to be rounded down to 0, is something more sensible. OK. So far so good, and so far not very interesting. Here is the regression line, and you can see the data. The data’s kind of cyclic when you look at it.
288.7
您知道,乘客数量,这取决于月份,但回归线只是一个直线预测。不那么有趣。让我们做一些有趣的事情。我将复制pastenger_numbers属性。我们将添加延迟版本的pastenger_numbers。我将使用复制过滤器创建一个新属性。我将复制第一个属性并应用。在这里,我们有pastenger_numbers的副本。我要拿出这个属性并减去12,我要滞后它。我将把它推迟12个月,因此它将包含去年该月的价值。 I’m going to do that with a TimeSeriesTranslate. I’m going to configure that.
333
我要翻译第三个属性。我要翻译12个月,从中减去12个月。我认为没关系。然后我需要实际上 - 这个特定的过滤器在课程上不起作用,因此我将课程将课程返回乘客,然后我要运行它,看看这里发生了什么。如果我要去编辑,现在我可以看到这是我的新属性,您可以看到112在这里112。实际上,这是此属性的延迟版本。这给出了本月,第13个月,这给出了前一年的数字,这些数字是未知的值。了不起!那就是我想做的。
391.5
然后,我将回去通过线性回归进行预测。我需要记住要预测pastenger_numbers。我们去了,现在我得到了一个不同的模型和一个更好的根平方错误,即31.7。这是一种使用日期,然后使用12个月之前的模型。实际上,这不是一个很好的模型。这有点疯狂,原因有点疯狂,是因为那些缺少的价值观。我们在数据集开始时缺少值,如果删除缺少值的实例,我们将获得更好的结果。我将使用过滤器来做到这一点。
434.3
我将使用称为Removerange的实例过滤器来做到这一点,并且将从1-12中删除实例。如果我应用了它,那么现在,如果我查看我的数据,我就不会丢失值。这是从12个月前的112个数据开始的,这是从原始数据的第13个月开始,这是我想要的。因此,我现在就去使用线性回归对此进行分类。不要忘记预测乘客。我们去。现在,我得到了16个较小的根平方越来越小,而且我得到了一个非常明智的模型。这说乘客人数增加了一点。
487.6
以前一年的乘客_number为例,加上7%,然后在此处稍微抵消。我可以尝试可视化这个模型。我只会给你看。如果我这样做,那就不是很有帮助了,因为这是y轴上与X轴日期相比,这是pastenger_numbers。而且您在这里看不到任何模式,实际上有一个循环图案,但是它完全被这些X的大小所掩盖,目前对我们的目的而言并不是很有趣。为了更好地查看,我将使用addClassification过滤器。我将添加分类。它是监督的属性过滤器,addClassification。我将添加线性回归创建的分类。
542.5
输出分类,我需要在这里说出我们将要预测的内容,即Pastenger_numbers。我将应用此过滤器,现在我得到了一个新属性分类,然后可以可视化。因此,我将研究针对Newdate的分类。这向您展示了我们要到达这里的循环预测。因此,添加此延迟属性可以使我们有一个环状预测。LET返回幻灯片并查看此问题。我们在这里有一个图,该图显示了LAG_12的预测。对于前12个实例没有预测,我删除了这些实例。
580.7
因此,这些是循环波的预测,您可以看到这非常适合乘客_numbers的实际值,这是这里的黑点。与原始的无聊的红色线性预测相比,这是一个循环预测的拟合度,这是一个更好的拟合度,而这些是这些行的两个方程式。因此,添加此简单的滞后变量使我们能够脱离线性范式,即使我们使用线性回归并获得非线性预测。实际上,我认为这很令人兴奋。我在这里做了很多事情,您将使用其他分类器重做它们。我有一些我所做的陷阱的列表,您可能想回到这一点。
630.9
只是为了总结。我们了解到,线性回归可用于时间序列预测,并且滞后变量比直线模型产生的复杂模型要复杂得多。在这种情况下,我们通过注视数据并注意到它在年周期中选择了适当的滞后。而且我们可以包括一个以上具有不同滞后的滞后变量,您可以考虑季节性效果。我们可以考虑每年,每季度,每日,每小时数据。当然,手动做所有这些都是痛苦,添加了这些变量。因此,时间序列预测软件包可以帮助您以更轻松,更快,更方便的方式进行此操作。

最简单的预测是线性回归。尽管这听起来是平凡的,而且不是很有用 - 我们很少期望时间序列仅仅是线性增加或减少 - 添加变量的滞后副本可以通过允许循环模型来大大提高其功率。WEKA的内部日期格式需要转换为更明智的东西,以便能够解释基于时间的模型。同样,使用滞后变量意味着早期实例缺少值,需要删除。

本文来自免费的在线免费

使用WEKA的高级数据挖掘

由...制作
FutureLearn-终身学习

我们的目的是改变接受教育的机会。

我们提供来自世界各地的大学和文化机构的各种课程。这些一次是一次交付的一步,并且可以在移动,平板电脑和台式机上访问,因此您可以适合自己的生活。

我们认为,学习应该是一种愉快的社交经验,因此我们的课程为您提供了与他人一起讨论的机会,帮助您做出新的发现并形成新的想法。
您可以通过订阅我们无限制的包裹来解锁新的机会,以无限制地访问数百种在线短课程。电竞博彩app有什么通过顶尖的大学和组织建立知识。dota2竞猜吧

了解有关FutureLearn如何转化接受教育的更多信息