スライド窓を使って取り出したそれぞれの部分時系列のベクトルは、値そのままではなく長さ1のベクトルに正規化している。
では、正規化しないで生のまま計算したらどうなるだろう。
結果は下図のとおり。左特異ベクトルの上位に [-0.707, 0, -0.707] と [0, 1, 0] が現れるのは同じだが、特異値に差があり前者が√2倍大きい。 1,0,1 も 0,1,0 も同じ回数あるのに前者の特異値が大きいので結果がおかしいことが分かる。

では、正規化しないで生のまま計算したらどうなるだろう。
結果は下図のとおり。左特異ベクトルの上位に [-0.707, 0, -0.707] と [0, 1, 0] が現れるのは同じだが、特異値に差があり前者が√2倍大きい。 1,0,1 も 0,1,0 も同じ回数あるのに前者の特異値が大きいので結果がおかしいことが分かる。

import numpy as np x = np.array([[1,0,1],[0, 1, 0],[1,0,1],[0,1,0]]).T print (x) u1,s1,v1 = np.linalg.svd(x, full_matrices=True) print (u1) print (s1)