时间序列分析与应用
第一章 时间序列特征


参考书 “Time Series Analysis and Its Applications (4th ed.)” by Robert H. Shumway and Davis S. Stoffer



文章目录

  • 环境准备
  • 一、均值和自协方差函数
  • 二、平稳时间序列
  • 三、 经典时序建模方法
  • 四、 超前序列和滞后序列
  • 五 绘制时序图R示例



环境准备

安装R conda install -c r r-essentials频道是Navigator和conda查找包的位置。(source)具有相同名称的包可能存在于多个通道上。如果希望从默认通道以外的其他通道安装,则指定要使用哪个通道的一种方法是使用conda install -c channel_name package_name语法。 另请阅读this以获取使用通道的安装过程的描述.
同时使用R和pythonconda install rpy2 安装R package conda install -c r r-dplyr pip切换源 pip install package -i url豆瓣 http://pypi.douban.com/simple/
阿里云 http://mirrors.aliyun.com/pypi/simple/
清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/
中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/
华中科技大学 http://pypi.hustunique.com/

一、均值和自协方差函数

mean公式
时间序列与机器学习pdf_统计学

ACVF(Autocovariance function)
时间序列与机器学习pdf_r语言_02

ACF(Autocorrelation function)
时间序列与机器学习pdf_时间序列_03

时间序列与机器学习pdf_r语言_04的性质:

时间序列与机器学习pdf_时间序列与机器学习pdf_05
时间序列与机器学习pdf_时间序列与机器学习pdf_06
时间序列与机器学习pdf_r语言_07
时间序列与机器学习pdf_统计学_08
时间序列与机器学习pdf_r语言_09
时间序列与机器学习pdf_时序模型_10

二、平稳时间序列

strict stationary
时间序列与机器学习pdf_时间序列_11

weak stationary
时间序列与机器学习pdf_时间序列_12
时间序列与机器学习pdf_时间序列与机器学习pdf_13
时间序列与机器学习pdf_统计学_14

对于平稳时间序列,acvf可简写作
时间序列与机器学习pdf_时间序列_15

平稳过程的例子:
(1)white noise
(2)3点的移动平均时间序列与机器学习pdf_时间序列_16
非平稳过程的例子:
(1)signal+noise 时间序列与机器学习pdf_时间序列_17
(2)Random walk with a drift

三、 经典时序建模方法

(1)假定该随机过程可拆分为
确定性的趋势
季节组分
平稳的随机组分

(2)估计模型参数: OLS
(3)检查模型拟合优度:AIC、BIC
(4)预测
可选的方法:Box and Jenkins

四、 超前序列和滞后序列

差分算子:
时间序列与机器学习pdf_统计学_18
时间序列与机器学习pdf_时序模型_19

滞后算子:
时间序列与机器学习pdf_r语言_20

五 绘制时序图R示例

画两条TS在一张大图,两行一列两个小图形式排列

plot.ts(time_series_to_be_plotted, 
 		plot.type = “multiple”, nc = 1, main = ts_title)

画两条TS在一张图

plot.ts(time_series_to_be_plotted, 
		plot.type=“single”, main=ts_title, col=colors_name, 
		ylab=“amplitudes”) 
legend(“bottomright”, time_series_name, col=colors_name, lty=1)

构造一个分段时序

s_i_fun = function(t) ifelse(t<=125, 0, 10*exp(-(t-125)/25)*cos(2*pi*t/4))
omega_fun = function(t) rnorm(length(t))

t_index = 1:250
set.seed(19460614)
x_i = ts(s_i_fun(t_index) + omega_fun(t_index))

R语言中::双冒号的作用
要使用某个包里的函数,通常做法是先加载(library)包,再调用函数。
最新加载的包的namespace会成为最新的enviroment,某些情况下可能影响函数的结果。

package name::functionname的用法
一是可以在需要用某个函数时临时直接加载包,不用事先library。另一点更重要的是尽可能减少library带来的附带作用,这一点在开发R包时影响较大。而这种写法的副作用,是会稍微慢上那么几毫秒,在需要反复循环使用一个函数时对效率有影响,其他时候除了写起来麻烦一点,基本没有显见的副作用。