狩野@大阪大学です
指定した共分散行列Sigma(相関行列)をもつようなデータを生成するには
次のようにします.
1) x_1, ... x_n を与えられたp-次元のデータベクトルとし,これを適当に変換して,
その標本共分散行列がSigmaに等しくなるようにしたいとします.
2) x_bar と標本共分散行列Sを計算します
3) Sの平方根となる行列S^{1/2}を計算し,その逆行列S^{-1/2}を計算します
4) Sigmaの平方根となる行列Sigma^{1/2}を計算します.
5) 上記のデータベクトルをSigma^{1/2}S^{-1/2}で変換します.すなわち
y_i=Sigma^{1/2}S^{-1/2}x_i (i=1,...,n)
とすると,y_1,...,y_nの標本共分散行列は,与えられたSigmaに等しくなります.
なお,平均ベクトルも与えられた値 a に等しくするには
y_i=Sigma^{1/2}S^{-1/2}(x_i-x_bar)+a (i=1,...,n)
とします.
一般には,行列の平方根とは,固有ベクトルはそのままで固有値の平方根をとったもので
置き換えたものですが,ここでの要求のように,ふたつの系列でひとつは変換したくない
というときは,下三角行列の平方根を作成することになります.
なお,この方法では,x_iが独立であったとしても,y_iは独立にはならないので,この点には
注意が必要です.
○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○
狩野 裕 大阪大学人間科学部
〒565-0871 吹田市山田丘1−2 Phone/Fax:06-6879-8052
http://koko15.hus.osaka-u.ac.jp/~kano/
You can get pdf files of the current articles of Behaviormetrika.
Visit http://wwwsoc.nii.ac.jp/bsj/behaviormetrika_index.html
●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●○●
> すみませんが教えて下さい。
> n次元のベクトルがあるとします。
> このベクトルと、こちらが指定した相関係数を
> もつようなベクトル(群)をつくる方法が知りたいです。
> どうしたらよいでしょうか?
> 特に、SかR用の関数があれば助かります。
>
> 敬具
> -----------------------
> Hiroto Miyoshi
> 三好弘人
> h_m_ (at) po.harenet.ne.jp
>
>
>
ここは心理学研究の基礎メーリングリストに投稿された過去の記事を掲載しているページです。