如何估计两个周期性时间序列之间的相位差?

机器算法验证 时间序列 傅里叶变换
2022-03-11 23:47:14

我有 2 个每日时间序列,每个 6 年。虽然嘈杂,但它们都明显是周期性的(频率约为 1 年),但似乎是异相的。我想估计这些时间序列之间的相位差。

我考虑过将 asin(2π365tb) 形式的曲线拟合到每个时间序列,并且只是比较 b 的两个不同值,但我怀疑还有更多优雅(而且严谨!)的方法来做到这一点(也许使用傅里叶变换?)。如果可能的话,我还希望对我的相位差估计中的不确定性有某种了解。

更新

两个时间序列的图

阴影区域为 95% CI。

两个时间序列之间的样本互相关: 两个时间序列之间的样本互相关

1个回答

这是交叉光谱分析非常适合的问题。接下来,您有一个使用消费者价格(差异)和石油价格的代码示例,并估计相干性(粗略地,被频带打破的平方相关系数)和相位(以弧度为单位的滞后,再次按频带)。

Crudo <- dget(file="Crudo.dge")
IPC <- dget(file="ipc2001.dge")[,1]
dIPC <- diff(IPC)
datos <- ts.union(dIPC,
           Crudo)
datos <- window(datos,
           start=c(1979,1),
           end=c(2002,1))
sp <- spectrum(datos,
           main="Petróleo e IPC",
           spans=rep(3,5))
par(mfrow=c(2,1))
plot(sp,plot.type="coh")
plot(sp,plot.type="phase")

这些是最后一条指令生成的图表。您可能可以根据您的设置进行调整。 在此处输入图像描述