繁体   English   中英

自相关不规则时间序列R

[英]Autocorrelation irregular time series R

我必须计算不规则(即非等间隔)时间序列value(time)的自相关

time[hr] value

1    3
2    5
3    7
5    9
7    16
12    17    
13    19
16    25
19    27
21    30

使用acf函数可以仅指定滞后(即点数)

acf(df$value,lag.max = 10,type = "correlation",plot = FALSE, na.action = na.pass)

然而,在我的情况下,这并不对应于确定的时间间隔。

我想要的是计算指定时间间隔(例如3 hr )的自相关函数。

有什么帮助吗?

谢谢

澄清一下, lag.max参数决定了 2 个系列之间的最大时移(lag),而不是要使用的点数(即,您将 x_t 与 x_t-h 进行比较; lag.max是 h 的最大值)。 在您的示例中,您总共有 10 个数据点,因此如果您假设您至少需要 3 个数据点来估计它们的相关性,那么lag.max=7最多。

听起来您可能有来自连续时间函数的样本,但 ACF 是在离散时间间隔上定义的。 因此,要使用acf()您需要首先用NA填充未观察到的时间,此时时间延迟将以小时表示(即,您想要的)。

假设你上面的数据在 data.frame df ,那么

df2 <- data.frame(time=seq(min(df$time), max(df$time)), value=NA)
df2[df$time,"value"] <- df$value
acf(df2$value, lag.max=10, type="cor", plot=FALSE, na.action=na.pass)

# Autocorrelations of series ‘df2$value’, by lag
#
#     0      1      2      3      4      5      6      7      8      9     10 
# 1.000  0.716  0.665  0.415  0.166  0.194  0.046  0.007  0.029  0.008 -0.041 

正如@Ben Bolker建议在天文科学中找到此类数据一样,最近发表了一篇论文: https ://www.aanda.org/articles/aa/pdf/2019/07/aa35560-19.pdf。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM