У меня есть данные временных рядов с некоторыми отсутствующими данными, для которых я выполняю некоторую функцию оценки по скользящим окнам.Длина окон не одинакова, и у каждой переменной разные даты начала и окончания.Я хочу удалить все окна, в которых есть недостающие данные.Окна перекрываются, поэтому одно пропущенное наблюдение часто удаляет множество окон из рассмотрения.То, что я хочу, - это отображение каждой даты в окна, которые ее содержат.
В настоящее время у меня есть логическая матрица, в которой есть строка для каждого возможного дня, а затем каждый столбец представляет одно из окон с истинными значениями длядни этого окна.Затем я могу подставить эту матрицу в строки, представляющие отсутствующие данные, и те столбцы, которые содержат какие-либо истинные значения, являются недействительными окнами.Проблема в том, что логическая матрица становится большой (10k x 10k ~ 100 МБ) и их может быть много.Я могу преобразовать в разреженный, который решает проблему размера, но вычисление того, какие окна для удаления, становится очень медленным, когда окна длинные.
Это не пахнет как проблема, которая должна быть ресурсоемкой (любая памятьили вычисления), есть ли лучший способ?
Редактировать: Позвольте мне добавить пример, так что это может быть немного яснее.Допустим, полный набор дат находится в диапазоне от 1 до 100. Окна от 1:10, 2:11, 3:12 и т. Д. До 91: 100 (они одинаковы, но для примера это не имеет значения).У меня есть серия, которая работает с 5 до 25, но имеет NaN на 17.
Этот NaN выбивает десять окон (с 8:17 до 17:26).Я хочу эффективное отображение от наблюдения 17 до окон 8:17.Понятно, что довольно просто, когда окна имеют одинаковую длину, но какой эффективный метод, если окна нерегулярные?