Time Series Analysis_ With Applications in R 第一章

第 1 章 引言

从随时间顺序收集的观察中获得的数据非常普遍。在商业中,我们观察每周利率、每日收盘价、每月价格指数、年度销售数据等等。在气象学中,我们观察每日的高温和低温、年降水量和干旱指数以及每小时的风速。在农业领域,我们记录了作物和牲畜生产、土壤侵蚀和出口销售的年度数据。在生物科学中,我们以毫秒为间隔观察心脏的电活动。在生态学中,我们记录了动物物种的丰度。研究时间序列的领域列表实际上是无穷无尽的。时间序列分析的目的通常是双重的:理解或模拟产生观察序列的随机机制,并根据该序列的历史以及可能的其他相关历史预测或预测该序列的未来值系列或因素。

本章将介绍来自不同应用领域的各种时间序列示例。时间序列及其模型的一个有点独特的特征是,我们通常不能假设观察结果独立于一个共同的群体(例如,来自具有不同方法的群体)。研究包含依赖关系的模型是时间序列分析的关键概念。

1.1 时间序列的例子

在本节中,我们将介绍一些将在后面的章节中讨论的例子。

洛杉矶的年降雨量
在这里插入图片描述


> win.graph(width = 4.875,height = 2.5,pointsize = 8) #弹出新的绘图窗口

> data("larain")

# str(larain)

# Time-Series [1:115] from 1878 to 1992: 20.86 17.41 18.65 5.53 10.74 ...

> plot(larain,ylab='Inches',xlab='Year',type='o')

图表 1.1 显示了加利福尼亚州洛杉矶 100 多年来记录的年降雨量的时间序列图。该图显示了多年来降雨量的相当大的变化——有些年份低,有些年份高,还有许多介于两者之间。 1883 年是洛杉矶异常潮湿的一年,而 1983 年则相当干燥。出于分析和建模的目的,我们对连续年份是否以某种方式相关感兴趣。如果是这样,我们也许可以使用一年的降雨量来帮助预测明年的降雨量。调查该问题的一种图形方法是将连续降雨值配对并绘制成对的散点图。

图表 1.2 显示了这样一个降雨散点图。

在这里插入图片描述


> win.graph(width = 3,height = 3,pointsize = 8)

> plot(y=larain,x=zlag(larain))

例如,绘制在右下角附近的点显示了降雨量极高的年份(1883 年 40 英寸),随后是中等降雨量(1884 年,约 12 英寸)。该点显示屏顶部附近显示 是40 英寸的年份之前年降雨量更典型,是 15 英寸。

我们从这张图中获得的主要印象是,今年的降雨量与去年的降雨量相比几乎没有任何信息。该图没有显示“趋势”,也没有一般趋势。去年的降雨量与今年的降雨量之间几乎没有相关性。从建模或预测的角度来看,这不是一个非常有趣的时间序列!

工业化学过程

作为第二个例子,我们考虑工业化学过程的时间序列。此处测量的变量是过程中连续批次的颜色属性。
在这里插入图片描述


> data("color")

> plot(color,type="o")

图表 1.3 显示了这些颜色值的时间序列图。在这里,时间上相邻的值往往大小相似。邻居似乎是相互关联的。

正如我们在第一个示例中所做的那样,通过构建相邻对的散点图可以更好地看到这一点。

在这里插入图片描述


> plot(color,x=zlag(color))

图表 1.4 显示了相邻颜色值对的散点图。我们在该图中看到了轻微的上升趋势——在后面的批次中,低值往往会跟随低值,中等大小的值往往会跟随中等大小的值,而高值往往会跟随高值。趋势很明显,但不是非常强劲。例如,此散点图中的相关性约为 0.6。

加拿大野兔的年丰度

我们的第三个例子涉及加拿大野兔的年丰度。

在这里插入图片描述


> data(hare)

> plot(hare,type="o")

图表 1.5 给出了这种丰度在大约 30 年内的时间序列图。这里的相邻值非常密切相关。从一年到下一年,丰度不会发生大的变化。在图表 1.6 中可以清楚地看到这种相邻的相关性,我们绘制了丰度与前一年丰度的关系。与前面的示例一样,我们在图中看到了上升趋势——下一年的低值往往会跟随低值,中等大小的值后面跟着中等大小的值,高值后面跟着高值。
在这里插入图片描述


> plot(hare,x=zlag(hare))

爱荷华州迪比克市的月平均气温

爱荷华州迪比克市多年来记录的月平均气温(以华氏度为单位)显示在图表 1.7 中。

在这里插入图片描述


> data(tempdub)

> plot(tempdub,type='o')

这个时间序列显示了一种非常规则的模式,称为季节性。当相隔 12 个月的观察值以某种方式相关时,就会出现月度季节性。所有的一月和二月都很冷,它们的值相似,但与温暖的六月、七月和八月的温度差别很大。 不同年的1 月份的值和 6 月份的值之间仍然存在差异。此类序列的模型必须适应这种变化,同时保持相似性。在这里,季节性的原因很容易理解——北半球对太阳的倾斜度不断变化。

在这里插入图片描述


> plot(tempdub,x=zlag(tempdub))

每月机油滤清器销售量

本章的最后一个示例是关于 John Deere 制造的建筑设备专用机油滤清器每月向经销商销售的情况。当这些数据首次提交给作者时,这位经理说:“没有理由相信这些销售是季节性的。”如果 1 月倾向于与 1 月的值相关,2 月倾向于与 2 月的值相关,等等,则存在季节性。图表 1.8 中显示的时间序列图并不是为了很好地显示季节性而设计的。图表 1.9 给出了相同的绘图,但经过修改以使用有意义的绘图符号。在该图中,所有一月份的值都用字符 J 绘制,所有二月的值都用 F 绘制,所有 三月的值都用 M 绘制,等等。使用这些绘图符号,更容易看到冬季月份的销售额1 月和 2 月的销售额均较高,而 9 月、10 月、11 月和 12 月的销售额则很低。从这个修改后的时间序列图中更容易看出数据中的季节性。
在这里插入图片描述


> data("oilfilters")

> plot(oilfilters,type="o")

在这里插入图片描述


> points(x=time(oilfilters),y=oilfilters,pch=as.vector(season(oilfilters)))

> season(oilfilters)

> season(oilfilters)

一般而言,我们的目标是强调适合且有用的绘图方法,以寻找能够为我们的时间序列数据生成合适模型的模式。在后面的章节中,我们将考虑几种将季节性纳入时间序列模型的不同方法。

1.2 模型构建策略

为时间序列找到合适的模型是一项艰巨的任务。我们将发展 Box 和 Jenkins (1976) 推崇的多步骤模型构建策略。该过程分为三个主要步骤,每个步骤都可以多次使用:

    1. 模型设定(或识别)
    1. 模型拟合
    1. 模型诊断

在模型设定(或识别)中,时间序列模型类别的选择要适用于给定的观察序列。在这一步中,我们查看该系列的时间图,从数据中计算出许多不同的统计数据,并应用数据产生的主题背景知识,例如生物学、商业或生态学。应该强调的是,此时选择的模型是暂定的,会在后面分析中进行修改。

在选择模型时,尽量坚持简约原则;也就是说,使用的模型应该需要最少数量的参数来充分代表时间序列。阿尔伯特·爱因斯坦在 Parzen (1982, p. 68) 中被引述为“一切都应该尽可能简单,但不能简单”。

该模型将不可避免地涉及一个或多个参数,其值必须从观察到的序列中估计。模型拟合包括在给定模型中找到那些未知参数的最佳估计值。我们将考虑估计的最小二乘和最大似然等标准。

模型诊断与评估我们指定和估计的模型的质量有关。模型与数据的拟合程度如何?模型的假设是否得到了合理的满足?如果没有发现不足之处,则可以假定建模是完整的,并且可以使用该模型,例如,预测未来值。否则,我们会根据发现的不足选择另一种模型;也就是说,我们回到模型设定步骤。这样,我们循环通过三个步骤,直到理想情况下找到一个可接受的模型。由于模型构建中每个步骤所需的计算量很大,我们将依靠现成的统计软件来进行计算并进行绘图。

1.3 历史上的时间序列图

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
时间序列分析 经典教材 The fourth edition of this popular graduate textbook, like its predecessors, presents a balanced and comprehensive treatment of both time and frequency domain methods with accompanying theory. Numerous examples using nontrivial data illustrate solutions to problems such as discovering natural and anthropogenic climate change, evaluating pain perception experiments using functional magnetic resonance imaging, and monitoring a nuclear test ban treaty. The book is designed as a textbook for graduate level students in the physical, biological, and social sciences and as a graduate level text in statistics. Some parts may also serve as an undergraduate introductory course. Theory and methodology are separated to allow presentations on different levels. In addition to coverage of classical methods of time series regression, ARIMA models, spectral analysis and state-space models, the text includes modern developments including categorical time series analysis, multivariate spectral methods, long memory series, nonlinear models, resampling techniques, GARCH models, ARMAX models, stochastic volatility, wavelets, and Markov chain Monte Carlo integration methods. This edition includes R code for each numerical example in addition to Appendix R, which provides a reference for the data sets and R scripts used in the text in addition to a tutorial on basic R commands and R time series. An additional file is available on the book’s website for download, making all the data sets and scripts easy to load into R.
"Time Series Analysis with Python Cookbook"是一本关于使用Python进行时间序列分析的实用手册。这本书旨在帮助读者理解和应用时间序列数据分析的概念和方法。 首先,本书通过介绍基本的时间序列数据结构和特征,使读者对时间序列数据的特点有了更深入的了解。然后,它介绍了Python中常用的时间序列分析库,如Pandas和Numpy,以及它们的基本功能和用法。 接下来,本书详细介绍了时间序列数据的预处理和可视化技术。读者将学习如何处理缺失值、平滑曲线、去除噪声,并进行数据插值和外推。此外,该书还介绍了各种绘图工具,如折线图、柱状图、散点图和热图,以帮助读者更好地理解和展示时间序列数据。 本书的另一个重要主题是时间序列模型的建模和预测。读者将学习如何使用ARIMA模型、指数平滑法和神经网络模型等进行时间序列预测。此外,该书还介绍了如何对模型进行评估和调参,以提高模型的准确性和鲁棒性。 最后,本书还介绍了其他高级的时间序列分析技术,如分布式时间序列分析、多变量时间序列分析和面板数据模型。读者将了解如何应对更复杂的时间序列问题,并利用Python的强大功能进行分析和建模。 总而言之,《Time Series Analysis with Python Cookbook》是一本旨在帮助读者掌握时间序列分析的实用指南。无论是初学者还是有经验的分析师,都能从中获得对时间序列数据分析的深入了解,并学会使用Python的强大功能进行实际应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值