• 締切済み

Mathematicaによる乱数生成について

Mathematicaを用いて正規分布に係数をかけた物に従った乱数を生成したいのですが、ヘルプを調べても分からず困っています。 具体的に行いたいことは、 RandomReal[1/3*NormalDistribution[0,10], 100]          ~~~ のような事です。 正規分布の確率密度関数(平均0,分散10)に係数(ここでは1/3)をかけた分布に従う乱数を100個生成したいということです。 どなたか解決方法をご存知の方がいらっしゃいましたらよろしくお願いいたします。

みんなの回答

  • rabbit_cat
  • ベストアンサー率40% (829/2062)
回答No.1

>正規分布の確率密度関数(平均0,分散10)に係数(ここでは1/3)をかけた分布 この分布の意味がわかりません。何をやりたいのかもう少しきちんと教えてください。 確率密度関数は、定義から (-∞,∞) の範囲で積分した値が1になっていないといけません。 なんで、正規分布の確率密度関数に係数をかけたものを、確率密度関数として持つような確率分布は存在しません。

関連するQ&A

  • 規則に従った乱数

    一様乱数を発生させるプログラムはネット上でも入手できます。ある種の確率密度分布に従った乱数を発生させるにはどうしたらいいでしょうか。 例えば0から1の乱数ですが、平均が0.5で分散が0.2のガウス分布に従った乱数を発生させるとしたら0.5に近いところの値が多く出て、0.9のあたりはあまり出ないということになります。そういう乱数です。 そういうものを乱数というのかどうかわかりませんが。 しかし、物理現象は何らかの分布に従う乱数のようなものと考えることができるのではないでしょうか。 よろしくお願いします。

  • 多次元正規乱数が正しく生成されているか確認するには?

    多次元正規乱数に従うサンプルを生成したく,以下の資料を参考にし,プログラムを作成しました。生成したサンプルが本当に要求した多次元正規乱数にしたがっているか確認したいのですが,以下の手順で正しいといえるでしょうか? 例: 平均μ=[1; 2] 分散協分散行列 Σ=[1,0;    0,1]; に従う多次元正規乱数y=[y1,y2]を全部でn=100サンプル生成した. このとき,n=100個のy1の平均が1,n=100個のy2の平均が2となり, n=100個のy1の分散が1,n=100個のy2の分散が1,y1とy2の共分散が0となれば正しく生成できているといってよいでしょうか? この方法で確認したのですが,生成したサンプルが元の平均,共分散から0.1~0.2のずれがあり正しいのか不安です。 参考にした資料: 「多次元正規乱数の作成法」 http://ci.nii.ac.jp/naid/110001186428/ja 「共分散の計算の仕方」 http://www.ge.fukui-nct.ac.jp/~nagamizu/f-3-s.pdf

  • 標準正規分布について

    1)標準正規分布に従う乱数を、平均μ、分散σ^2の正規乱数に変換したい。どのようにしたらいいか。その理由も考えよ。 という問題についてですが 乱数をXとした時 Y = X・σ + μ とする。 というのはわかるのですが(ほぼ公式なので。。。) 理由についてはどう書けばいいのでしょうか? また 2)確率変数Xが(0,1)の範囲で一様分布に従う時、Y=1-Xと変換すれば、Yはまた一様分布となることを示せ。 という問題なのですが Xの密度関数から1-Xの密度関数を求めるということは以前こちらで教えていただいたのですがヘビサイド関数というのが用いられていて解法をよく理解できませんでした。 実際の解法手順等含めまして丁寧に教えていただけませんでしょうか?よろしくお願いいたします。

  • 確率変数Xが平均0、分散1の標準正規分布に従うとき、|X|の確率密度関

    確率変数Xが平均0、分散1の標準正規分布に従うとき、|X|の確率密度関数、平均、分散を求め方と答えを教えてください;; 急ぎの問題で、大変困っておりますので、よろしくお願いします。

  • 以下の問題をお願いします

    さっぱりわからないのでどうか教えてください。 (1)確率変数Xが標準正規分布に従うとき、|X|の密度関数を求めよ (2)確率変数Y=log(X)が平均μ、分散σ^2に従うとき、Xの密度関数、平均、分散を求めよ (3)確率変数Xの平均が存在するとき、 lim(x→∞)[x(1-F(x))]=0 ただし、F(x)はXの分布関数

  • 正規分布の乱数生成

    C言語で正規分布の乱数を発生させたいのですがどうすればいいのでしょうか? 自分なりにネットで検索して調べたのですが void gaussrand() { static double V1, V2, S; static int phase = 0; double X; if(phase == 0) { do { double U1 = (double)rand() / RAND_MAX; double U2 = (double)rand() / RAND_MAX; V1 = 2 * U1 - 1; V2 = 2 * U2 - 1; S = V1 * V1 + V2 * V2; } while(S >= 1 || S == 0); X = V1 * sqrt(-2 * log(S) / S); } else X = V2 * sqrt(-2 * log(S) / S); phase = 1 - phase; } こうありました。 例えば平均50の分散9の正規分布の乱数を1000個発生させて、配列seiki[1000]に代入したいときは、このプログラミングをどのようにすればいいのでしょうか? もちろん、このソースではなく、他のもので説明していただけても全然構いません。 また、もしよろしければ、正規分布の他に、二項分布など他の分布でのデータの生成方法もお教えいただけたら幸いです。 よろしくお願いいたします。

  • 正規乱数から生成される時系列の自己相関について

    平均0、分散0.004の正規乱数を使って時系列を作ります。 イメージとしては株価収益の時系列なんかが当てはまります。 その時系列の自己相関を計測してみました。ラグは1です。 例えば(t,t+1,t+2,t+3,t+4)と、(t+1,t+2,t+3,t+4,t+5)の自己相関などなど。 そうすると、自己相関の計測期間を短くするほど平均がマイナスによる傾向があるのですが、 これには何か理由があるのでしょうか? 正規分布からの乱数ということで、イメージ的には、 同じ方向へ行くも、逆転するも確率的には一緒なのかなという感じなのですが。

  • 確率論の問題について

    (1)「確率変数Xが()(0,a)上の一様分布U(0,a)に従うとき、また()正規分布N(m,v)に従うとき、その標本化Zの分布密度関数を求めよ」 (2)「Xを標準正規分布N(0,1)に従う確率変数であるとする。Y=|X|の密度関数を求めよ。Yの平均と分散を求めよ」 というものなのですが(1)(2)ともにまったく手をつけることができません(泣)アドバイスなどお願いします(泣)

  • 乱数発生の関数。

    確率分布関数が次の表で与えられているとき,この分布に従う乱数を線形補間を使った逆変換によって生成する関数をどうやって作成したらいいか、全くわかりません。線形補間はなんとなくわかるんですが…。どなたか教えてください。 x F(x) 0 0.0024788 1 0.0173513 2 0.0619688 3 0.1512039 4 0.2850565 5 0.4456796 6 0.6063028 7 0.7439798 8 0.8472375 9 0.9160760 10 0.9573791 11 0.9799080 12 0.9911725 13 0.9963715 14 0.9985996 15 0.9994909 16 0.9998251 17 0.9999431 18 0.9999824 19 0.9999948 20 0.9999985 21 0.9999996 22 0.9999999 23 1.0000000

  • 標準正規分布の乱数

    RAND()関数は ((double)rand() / (1.0 + RAND_MAX))と定義します。 中心極限定理により、一様乱数を足し合わせると正規分布に近づくことから、 x = 分散 * (Σ[1~12]RAND() - 6) + 平均 で正規乱数が作れる。標準正規分布は分散1、平均0なのでその乱数は x = Σ[1~12]RAND() - 6 ですよね。この乱数を例えば100個羅列するにはどうしたらいいのでしょうか? もし間違ってたら指摘してください。 参考文献「Cによるシミュレーションプログラム 石川宏」 #include <stdio.h> #include <stdlib.h> #define RAND() ((double)rand() / (1.0 + RAND_MAX)) #define NUMBER 10000 /* 発生させる乱数の数 */ main(void) { int j; double u, x; srand(5); for (j = 0; j <= 11; j++) { u = u + RAND(); } x = u - 6.0; }