異なる長さの時系列のSVD次元削減


13

次元削減手法として特異値分解を使用しています。

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 / ..も読むのに十分快適です)


良い質問!タイトルを改善できると思います。どこかで「データの欠落」や「長さの異なる時系列」のようなものがあるかもしれません。
ロビンジラール

1
私はそれを「データの欠落」とは呼びません。おそらく「異なる長さの時系列のSVD次元削減」でしょうか?
アムロ

1
私はあなたが提案するタイトルが好きです!
ロビンジラール

1
また、シリーズの長さが異なる理由を知ることも役立ちます。たとえば、手書きタスク中の鉛筆の軌跡を表している場合、数字を書き出すときのX変位など、同じ長さになるように時系列を揃えることができます。また、どのタイプのバリエーションを保持することに興味があり、何がそうでないかを知ることも重要です。
vqv

回答:


5

Matrix Completionと呼ばれるかなり新しい研究分野があり、おそらくあなたが望むことをします。この講義では、エマニュエル・カンデスによる非常に素晴らしい紹介が与えられます


ウェブサイトVideoLectureの+1、私は知りませんでした、あなたはビデオ講義についての質問でそれを言及しましたか?
ロビンジラール

私は最近このことについて読んでいるだけです。CandesとTaoのトピックarxiv.org/abs/0903.1476
Robby McKilliam

2

ゼロで埋めることは悪いです。過去の観測結果を使用して、リサンプリングを実行してみてください。


1複製は、/リサンプリングは:)ゼロパディングよりも...まだ私は待ってそこに他のアイデアがあるかどうかを確認できます間違いなく良いです
アムロ

2

ただ考えてみてください:あなたはあなたの問題のために完全なSVDを必要としないかもしれません。してみましょうMは = USV *あなたのSVDもDによるn個のマトリックス(すなわち、時系列は列です)。次元削減を達成するには、行列VSを使用します。M * M = V(S * S)V *を対角化することで見つけることができます。ただし、一部の値が欠落しているため、M * Mを計算できません。それにもかかわらず、あなたはそれを推定することができます。そのエントリは、Mの列の積の合計です。。SSPのいずれかを計算する場合、欠損値を含むペアを無視します。欠損値を考慮して各製品を再スケーリングします。つまり、SSPがnkペアを含む場合は、n /(nk)だけ再スケーリングします。 この手順はM * Mの「合理的な」推定量であり、そこから先に進むことができます。もっと面白くしたい場合は、複数の補完手法またはマトリックス補完が役立つでしょう。

(これは、転置されたデータセットのペアワイズ共分散行列を計算し、それにPCAまたは因子分析を適用することにより、多くの統計パッケージで実行できます。)


MTM

それは良い点ですが、結果はそれほど悪くないかもしれません。希望するのは、M * Mの推定値が固有値の摂動が適度に小さい真値に十分に近いことです。したがって、最大固有値に対応する固有空間に射影することにより、正しい解のわずかな摂動のみを達成し、求められている次元削減を実現します。おそらく最大の問題はアルゴリズムにある可能性があります。もはや半正定性を仮定できないため、より汎用的なアルゴリズムを使用して固有システムを見つける必要があるかもしれません。
whuber

1

「短い」シリーズの単変量時系列モデルを推定し、それらを将来に外挿してすべてのシリーズを「整列」することができます。


外挿には、既存のパーツには存在しない塗りつぶされたパーツの滑らかさが含まれます。ランダム性を追加する必要があります...したがって、リサンプリング(および外挿のリマッピングは良いアイデアのようです)
ロビンギラード

モデルを外挿するには、誤差項をサンプリングする必要があります。これにより、望ましいランダム性が誘導されます。

IMOの両方の提案は、既存のものから将来の値を予測することに要約されます(おそらくAR / ARMAモデル?)。私はまだサンプリング値を含まないソリューションを望んでいると思います(したがって、エラーを導入する可能性があります)。そのようなモデルを推定することに加えて、それは次元削減の形です:)
Amro

1

Vの計算から変数を削除したように見えるので、サンプルコードには多少混乱していますnewXXランクを下げた製品としてモデル化しようとしていますか、それとも列スペースを減らしXたいですか?後者の場合、EM-PCAアプローチが機能すると思います。確率値PCAというタイトルのMatlabコードを見つけることができます

hth、


私はXの減少ランク近似ではなく、変換されたXを計算しようとはしていません。私の目標は、ノイズの多いシーケンスをフィルタリングするのではなく、次元の減少した表現を見つけることです(時系列の分類/クラスタリングに使用されます) )... EM-PCAアプローチについて少し詳しく教えてください。
アムロ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.