Уменьшение размерности SVD для временных рядов различной длины

13

Я использую Singular Value Decomposition в качестве техники уменьшения размерности.

Заданные Nвекторы размерностиD идея состоит в том, чтобы представить элементы в преобразованном пространстве некоррелированных измерений, в котором большая часть информации данных содержится в собственных векторах этого пространства в порядке убывания важности.

Сейчас я пытаюсь применить эту процедуру к данным временных рядов. Проблема в том, что не все последовательности имеют одинаковую длину, поэтому я не могу построить num-by-dimматрицу и применить SVD. Моей первой мыслью было num-by-maxDimзаполнить матрицу нулями, построив матрицу и заполнив пустые пространства нулями, но я не уверен, что это правильный путь.

Мой вопрос: как вам SVD подход к уменьшению размерности к временным рядам разной длины? В качестве альтернативы существуют ли другие подобные методы представления собственного пространства, обычно используемые с временными рядами?

Ниже приведен фрагмент кода MATLAB для иллюстрации идеи:

X = randn(100,4);                       % data matrix of size N-by-dim

X0 = bsxfun(@minus, X, mean(X));        % standarize
[U S V] = svd(X0,0);                    % SVD
variances = diag(S).^2 / (size(X,1)-1); % variances along eigenvectors

KEEP = 2;                               % number of dimensions to keep
newX = U(:,1:KEEP)*S(1:KEEP,1:KEEP);    % reduced and transformed data

(Я пишу в основном в MATLAB, но я достаточно удобен, чтобы читать R / Python / ..)

Amro
источник
Хороший вопрос! Я думаю, что вы можете улучшить заголовок, может быть что-то вроде «пропущенных данных» или «временных рядов разной длины».
Робин Жирар
1
Я бы не назвал это «отсутствующими данными», возможно, «уменьшение размерности SVD для временных рядов различной длины»?
Amro
1
Мне нравится название, которое вы предлагаете!
Робин Жирар
1
это также помогло бы узнать, почему серии имеют разную длину. Например, если они представляют траекторию карандаша во время задания почерка, скажем, смещение X при записи цифры, то вы можете выровнять временной ряд так, чтобы они были одинаковой длины. Также важно знать, какой тип вариаций вы хотите сохранить, а какой нет.
vqv

Ответы:

5

Существует достаточно новая область исследований под названием « Завершение матрицы» , которая, вероятно, делает то, что вы хотите. В этой лекции Эммануэль Кандес дает очень хорошее введение

Робби МакКиллиам
источник
+1 за сайт VideoLecture, я не знал, вы упомянули об этом в вопросе о видео лекциях?
Робин Жирар
Я только недавно читал об этом материале. Мне очень нравится недавняя статья
Кандеса
2

Заполнение нулями это плохо. Попробуйте заполнить повторной выборкой, используя наблюдения из прошлого.

Робин Жирар
источник
+1 репликация / повторная выборка определенно лучше, чем заполнение нулями ... все же я подожду и посмотрю, есть ли другие идеи там :)
Amro
2

Просто мысль: вам может не понадобиться полный SVD для вашей проблемы. Пусть M = USV * будет SVD вашей матрицы d на n ( т. Е. Временные ряды являются столбцами). Для того, чтобы достичь уменьшения размера вы будете использовать матрицы V и S . Вы можете найти их, по диагонали M * M = V (S * S) V * . Тем не менее, потому что вам не хватает несколько значений, вы не можете вычислить M * M . Тем не менее, вы можете оценить это. Его записи являются суммами произведений столбцов М . При вычислении любого из SSP игнорируйте пары, содержащие пропущенные значения. Масштабируйте каждый продукт, чтобы учесть пропущенные значения: то есть, когда SSP включает nk пар, масштабируйте его на n / (nk). Эта процедура является «разумной» оценкой M * M, и вы можете перейти оттуда. Если вы хотите стать более любопытным, возможно , вам помогут несколько методов вменения или Матричное завершение .

(Это может быть выполнено во многих статистических пакетах путем вычисления попарно ковариационной матрицы транспонированного набора данных и применения к нему PCA или факторного анализа.)

Whuber
источник
эта процедура приводит к оценке MTMэто не может быть положительным полуопределенным, что было бы плохо.
Шаббычеф
Это хороший момент, но результат может быть не таким плохим. Надеемся, что оценка M * M достаточно близка к истинному значению, что возмущение собственных значений достаточно мало. Таким образом, проецируя на собственное пространство, соответствующее наибольшим собственным значениям, вы добиваетесь лишь небольшого возмущения правильного решения, все еще достигая искомого уменьшения размера. Возможно, самая большая проблема может быть алгоритмической: так как вы больше не можете предполагать полуопределенность, вам может понадобиться алгоритм более общего назначения, чтобы найти собственную систему.
whuber
1

Вы можете оценить одномерные модели временных рядов для «коротких» рядов и экстраполировать их в будущее, чтобы «выровнять» все ряды.


источник
экстраполяция будет включать в себя гладкость в заполненной части, которая не существует в существующей части. Вы должны добавить случайность ... отсюда повторная сэмплирование (и ремаплинг при экстраполяции кажется хорошей идеей)
Робин Джирард
Экстраполяция модели потребует выборки слагаемого ошибки, что приведет к желаемой случайности.
Оба предложения IMO сводятся к прогнозированию будущих значений из существующих (возможно, модели AR / ARMA?). Я думаю, я все еще надеюсь на решение, которое не включает выборочные значения (таким образом, возможность введения ошибки). Кроме того, оценка таких моделей сама по себе является формой уменьшения размерности :)
Amro
1

Я несколько смущен вашим примером кода, так как кажется, что вы отбрасываете Vпеременную из вычисления newX. Вы ищете модель Xс пониженным рейтингом или вас интересует уменьшенное пространство столбцов X? в последнем случае, я думаю, подход EM-PCA будет работать. Вы можете найти код Matlab под заголовком Вероятностный PCA с пропущенными значениями .

НТН,

shabbychef
источник
Я не пытаюсь вычислить приближение X пониженного ранга, а преобразованный X. Вы видите, что моя цель не фильтровать последовательности с шумом, а найти представление с уменьшенной размерностью (которое будет использоваться для классификации / кластеризации временных рядов ) ... Не могли бы вы немного рассказать о подходе EM-PCA?
Amro