我有一些缺失数据的时间序列数据,我正在滚动窗口上运行一些估计函数。窗口长度不统一,每个变量的开始和结束日期都不相同。我想删除任何有缺失数据的窗口。窗户重叠,所以一个单独的缺失观察通常会从考虑中移除很多窗户。我想要的是从每个日期到包含它的窗口的映射。Matlab中高效的滚动窗口识别
目前,我有一个逻辑矩阵,其中每一天都有一行,然后每一列代表窗口中具有真值的窗口之一。然后,我可以将该矩阵分配给表示缺失数据的行,并且无论哪列包含任何真值都是无效窗口。问题是逻辑矩阵变大(10k x 10k〜100mb),可能会有很多。我可以转换为稀疏解决大小问题,但当窗口很长时,要移除的窗口的计算变得非常慢。
这听起来不像是一个应该是资源密集型(内存或计算)的问题,有没有更好的方法?
编辑:让我添加一个例子,这样可能会更清晰一些。假设所有的日期范围在1到100之间.Windows是1:10,2:11,3:12等等直到91:100(这些是统一的,但这个例子并不重要)。我有一个从5到25的系列,但有17的NaN。
那一个NaN击倒了十个窗口(8:17到17:26)。我想从观察17到8:17的窗口进行有效的映射。很显然,当窗户长度一致时,这很容易,但当窗户不规则时,什么是有效的方法?
我不明白。`(date> = begin(i)&& data
2011-02-17 23:03:16
@Oli我添加了一个例子,希望让事情更清楚。 – MatlabSorter 2011-02-18 02:22:26