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 の目次へジャンプ
● 「統計学関連なんでもあり」の目次へジャンプ
● 直前のページへ戻る