【发布时间】:2017-01-03 13:22:02
【问题描述】:
我有每日时间序列数据,我想计算该数据的 5 天平均值,同时检索每个 5 天平均值的相应开始日期。例如:
x = [732099 732100 732101 732102 732103 732104 732105 732106 732107 732108];
y= [1 5 3 4 6 2 3 5 6 8];
x 和 y 实际上的大小为 92x1。
首先,当这个时间序列数据不能被 5 整除时,我如何计算 5 天平均值?最终,我想计算“跳跃平均值”,其中平均值不是连续计算的(例如,6 月 1 日至 5 日、6 月 6 日至 10 日等)。
我尝试过以下操作:
Pentad_avg = mean(reshape(y(1:90),5,[]))'; %manually adjusted to be divisible by 5
Pentad_dt = x(1:5:90); %select every 5th day for time
但是,Pentad_dt 给了我日期 01-Jun-2004 和 06-Jun-2004 作为输出。而且,这让我想到了第二点。
我正在寻找与另一个时间序列的 5 天平均值相对应的 x 和 y 的 5 天平均值。第二个时间序列具有从 2004 年 6 月 15 日到 2004 年 8 月 29 日(而不是从 2004 年 6 月 1 日开始)的 5 天平均数据。最终,我如何调整这两个时间序列之间的日期和 5 天平均值?
【问题讨论】:
-
不太清楚为什么被五整除很重要。不管怎样,看看这个:mathworks.com/help/finance/tsmovavg.html
-
我有兴趣推导出一个 5 天的平均值来消除每日时间序列数据中发现的一些可变性。 @MadPhysicist
-
我得到了那个部分。我的问题和建议仍然有效。
-
我可以手动更改除法。更紧迫的问题是两个时间序列在时间上的同步。不确定财务功能是否适用于此处的地球物理数据。
-
见stackoverflow.com/a/26003330/3798640,设置N = 5
标签: matlab datetime time-series match average