我有一些缺失數據的時間序列數據,我正在滾動窗口上運行一些估計函數。窗口長度不統一,每個變量的開始和結束日期都不相同。我想刪除任何有缺失數據的窗口。窗戶重疊,所以一個單獨的缺失觀察通常會從考慮中移除很多窗戶。我想要的是從每個日期到包含它的窗口的映射。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