时间序列笔记-自相关

笔记说明

在datacamp网站上学习“ Time Series with R ”track
“Introduction to Time Series Analysis”课程 做的对应笔记。
学识有限,错误难免,还请不吝赐教。
如无特殊说明,笔记中所使用数据均来自datacamp课程

自协方差与自相关

自相关(autocorrelation or lagged correlation)用于评估时间序列数据是否依赖于其过去的数据。
假设时间序列是弱平稳的: Y_t与Y_{t+h} 之间的相关系数记为 ρ(h) ,函数ρ称为自相关函数(autocorrelation function, ACF)
与之类似,自协方差函数用 γ(h) 表示

用acf()函数计算自相关系数

acf(..., lag.max =1, plot = FALSE)函数可以用来计算lag为1的自相关系数:

acf(x, lag.max = 1, plot = F)

acf()函数输出中lag为1的自相关系数为0.758

可以看出我们手动计算的结果和acf()函数计算的结果略有不同。这是因为acf()使用的是用n作为分母的计算版本而手动计算利用cov()函数使用的是用n-h(这里h=1)作为分母的计算版本。
acf()函数以n作为分母的计算方法算出的自相关系数是有偏的,但是在时间序列分析中更常用(preferred)。

验证两种计算方法相差一个因子:(n-h)/n

# Confirm that difference factor is (n-1)/n
cor(x_t1, x_t0) * (n-1)/n
acf(x, lag.max = 1, plot = F)[1][[1]]

cor(x_t1, x_t0) * (n-1)/n输出结果为0.7579445.
acf(x, lag.max = 1, plot = F)[1][[1]]输出结果为0.7579761
看来除了课程中提到的计算版本分母不同以外这两种计算方法还有其他的差异导致计算结果在考虑到分母问题以后仍然有一点点微小的不同。

关于acf()函数的更多内容

acf(..., lag.max = ..., plot = FALSE)函数会计算h=0,1,2...直到lag.max参数指定值对应的自相关系数。
此外,acf()函数的plot选项默认为TRUE,可以生成自相关图,自相关图会显示各lag值对应的自相关系数,并用蓝色水平虚线表示自相关系数为0的95%置信区间边界线,如果自相关系数在两条虚线以内则表明自相关系数没有统计学意义。
例子数据:x显示出强持续性(persistence),即时间序列的值与前一测量值呈现出强相关性;y具有周期性,周期大约为4;z则没有明确的模式。