No.09852 特定の相関係数を持つ二変量データ  【のざわ】 2009/05/13(Wed) 18:44

質問します。

よろしくお願いします。

http://aoki2.si.gunma-u.ac.jp/R/gendat2.html

先生の,HPを見て,相関のある二変量データが作成できたのですが
ご説明にあるように,平均値が 0 になります。

相関のあるランダムウオークを作る種として活用しようと思っていたのですが,
平均がゼロだと,順に足していくと,最後に必ず同じところに戻って来てしまいます。

こうならないようにするには,どうしたら良いものでしょうか?

よろしくお願いします。

No.09853 Re: 特定の相関係数を持つ二変量データ  【青木繁伸】 2009/05/13(Wed) 18:51

> 平均値が 0 になります。

必要な平均値ベクトルを加えてやるだけでよいのですかね?でも,全部加えたら,平均値の座標に戻ります,ってことになるだけかな?
あなたの要求を,ランダムウォーク等という応用面の話ではなく,どういう性質をもった乱数が必要かという点から,詳しく説明してみては?
あ,そうそう,平均値だけでなくて,必要なら,分散も調整できますよ。
> nc <- 20
> z <- gendat2(nc, 0.2658)
> # 平均値が (50, 70),不偏分散が (5, 8) であるようにしたいなら
> z2 <- t(t(z)*sqrt(c(5,8))+c(50,70))
> z2
[,1] [,2]
[1,] 51.80678 72.91407
[2,] 48.42650 71.88941
[3,] 47.88889 66.64316
[4,] 47.13888 68.80127
[5,] 49.42134 68.16293
[6,] 52.62303 76.08709
[7,] 46.85106 68.36341
[8,] 49.13415 69.11427
[9,] 50.03059 66.99322
[10,] 54.73266 72.75310
[11,] 51.65787 67.79826
[12,] 49.35044 66.15973
[13,] 48.02856 70.04414
[14,] 52.85027 69.66292
[15,] 49.81816 71.27750
[16,] 49.78272 66.48938
[17,] 51.21742 68.34995
[18,] 46.83841 74.30290
[19,] 53.03316 70.86670
[20,] 49.36909 73.32659
> colMeans(z2)
[1] 50 70
> sd(z2)^2
[1] 5 8

No.09854 Re: 特定の相関係数を持つ二変量データ  【のざわ】 2009/05/13(Wed) 20:49

お世話になります。

以下のように標準偏差と初期値を与えたデータがあり,

a <- rnorm(100)*2 #標準偏差は2
a[1] <- a[1]+100 #初期値は100
for(l in 2:100)
{
a[l] <- a[l-1]+a[l]
}
plot(a,type='l')

これと相関係数を指定し,別の標準偏差と別の初期値を
持った別のデータを作りたいです。

この問題はコレスキー分解を使う問題だと思って参考資料を
探していたら,先生のHPに辿りつき,相関ある正規乱数列までは
綺麗に出来たので喜んでいたら,いつも最後が元に戻るので
おかしいと思って説明をよく読むと,総和が0になると
書いてありました。

という事で,必ずスタート地点に最後は戻ってしまうのですが,
上の例だと総和は0にならないわけです。

かと言って主成分得点をやめて,コレスキー分解だけにすると
今度は,相関行列が思ったような値に作れなくなります。

どうしたら良いものでしょうか?

宜しくお願いいたします。

● 「統計学関連なんでもあり」の過去ログ--- 042 の目次へジャンプ
● 「統計学関連なんでもあり」の目次へジャンプ
● 直前のページへ戻る