다른 길이의 시계열에 대한 SVD 차원 축소


13

특이 값 감소 기술로 특이 값 분해를 사용하고 있습니다.

N차원이 주어진 벡터는 D상관 관계가없는 차원으로 변환 된 공간의 특징을 나타내며,이 공간의 고유 벡터에있는 데이터 정보의 대부분을 중요도가 감소하는 순서로 요약합니다.

이제이 절차를 시계열 데이터에 적용하려고합니다. 문제는 모든 시퀀스의 길이가 같지 않기 때문에 실제로 num-by-dim행렬을 만들고 SVD를 적용 할 수 없다는 것 입니다. 내 첫 번째 생각은 num-by-maxDim행렬을 만들고 빈 공간을 0으로 채워서 행렬을 0으로 채우는 것이었지만 올바른 방법인지는 확실하지 않습니다.

내 질문은 어떻게 다른 길이의 시계열에 대한 차원 축소의 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 / ..도 읽을 수있을 정도로 편안합니다.)


좋은 질문! 제목을 향상시킬 수 있다고 생각합니다. "데이터 누락"또는 "길이가 다른 시계열"같은 것이있을 수 있습니다.
로빈 지라드

1
"데이터 누락", "다른 길이의 시계열에 대한 SVD 차원 축소"라고하지 않습니까?
Amro

1
나는 당신이 제안한 제목을 좋아합니다!
로빈 지라드

1
또한 시리즈의 길이가 다른 이유를 이해 하는 데 도움이됩니다 . 예를 들어, 필기 작업 중 연필의 궤적을 나타내는 경우 (숫자를 쓰는 동안 X 변위를 말하면) 시계열을 동일한 길이가되도록 정렬 할 수 있습니다. 어떤 유형의 변형을 유지하고 관심이 없는지 아는 것도 중요합니다.
vqv

답변:


5

Matrix Completion 이라는 합리적으로 새로운 연구 영역이 있으며 , 아마도 당신이 원하는 것을 할 것입니다. 이 강의 에서 Emmanuel Candes 가 정말 좋은 소개를합니다.


웹 사이트 VideoLecture +1 몰랐습니다. 비디오 강의에 대한 질문에서 언급 했습니까?
로빈 지라드

최근에이 내용 만 읽었습니다. 정말 주제에 Candes과 타오의 최근 종이와 같은 arxiv.org/abs/0903.1476
로비 McKilliam

2

0으로 채우는 것은 좋지 않습니다. 과거의 관측치를 사용하여 리샘플링을 채우십시오.


+1 복제 / 리샘플링은 제로 패딩보다 확실히 낫습니다. 여전히 다른 아이디어가 있는지 기다릴 것입니다. :)
Amro

2

단지 생각 : 문제에 대한 완전한 SVD가 필요하지 않을 수 있습니다. M = USV *를 d x n 행렬 의 SVD라고 하자 ( , 시계열은 열임). 치수 축소를 달성하기 위해 행렬 VS를 사용하게 됩니다. M * M = V (S * S) V * 를 대각선으로 지정하여 찾을 수 있습니다 . 그러나 일부 값이 누락 되었기 때문에 M * M을 계산할 수 없습니다 . 그럼에도 불구하고 추정 할 수 있습니다. 항목은 M 열의 곱의 합입니다.. SSP를 계산할 때는 결 측값과 관련된 쌍을 무시하십시오. 결 측값을 설명하기 위해 각 제품의 크기를 조정하십시오. 즉, SSP가 nk 쌍을 포함 할 때마다 n / (nk)로 크기를 조정하십시오 . 이 절차는 M * M 의 "합리적인"추정기이며 거기서부터 진행할 수 있습니다. 더 멋진 경험을 원한다면 여러 대치 기술 또는 Matrix Completion 이 도움이 될 것입니다.

(이것은 전치 된 데이터 세트의 쌍별 공분산 행렬을 계산하고 PCA 또는 요인 분석을 적용하여 많은 통계 패키지에서 수행 할 수 있습니다.)


MTM

좋은 지적이지만 결과는 그리 나쁘지 않을 수 있습니다. 원하는 것은 M * M의 추정치가 고유 값의 동요가 합리적으로 작다는 실제 값에 충분히 가깝다는 것입니다. 따라서 가장 큰 고유 값에 해당하는 고유 공간으로 투영하면 올바른 솔루션을 약간만 교란하여 원하는 치수를 여전히 줄일 수 있습니다. 아마도 가장 큰 문제는 알고리즘 일 수 있습니다. 더 이상 반 정도를 가정 할 수 없으므로 고유 시스템을 찾기 위해보다 일반적인 알고리즘을 사용해야 할 수도 있습니다.
whuber

1

'짧은'계열에 대한 일 변량 시계열 모델을 추정하고 미래에 외삽하여 모든 계열을 '정렬'할 수 있습니다.


외삽은 기존 부품에 존재하지 않는 채워진 부품의 부드러움을 포함합니다. 당신은 따라서 리샘플링 (과 외삽은 좋은 아이디어가 될 것 같습니다에 resmapling) ... 임의성을 추가 할 필요가
로빈 지라

모델을 외삽하려면 원하는 랜덤 성을 유도하는 오차 항을 샘플링해야합니다.

IMO의 두 제안은 기존 값 (AR / ARMA 모델일까요?)의 미래 가치를 예측하는 것으로 요약됩니다. 나는 여전히 샘플링 값을 포함하지 않는 솔루션을 원하고 있다고 생각한다. (따라서 에러가 발생할 가능성이있다.) 이러한 모델을 추정하는 것 자체는 차원 축소의 형태이다 :)
Amro

1

V의 계산 에서 변수 를 삭제하는 것처럼 보이기 때문에 예제 코드에 다소 혼란 스럽습니다 newX. X감소 된 순위의 제품 으로 모델링하려고 X합니까? 또는 감소 된 열 공간에 관심이 있습니까? 후자의 경우 EM-PCA 접근 방식이 효과적이라고 생각합니다. 누락 된 값이있는 Probabilistic PCA 제목에서 matlab 코드를 찾을 수 있습니다 .

hth,


나는 X의 감소 된 근사값을 계산하려고하지 않고 변환 된 X를 계산하려고한다. 나의 목표는 잡음이있는 시퀀스를 필터링하는 것이 아니라, 감소 된 차원을 가진 표현을 찾는 것이다 (시계열의 분류 / 클러스터링에 사용됨) ) ... EM-PCA 접근법에 대해 좀 더 자세히 설명해 주시겠습니까?
Amro
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.