-PR-
解決済み

モンテカルロ法

  • 困ってます
  • 質問No.81615
  • 閲覧数239
  • ありがとう数1
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 100% (3/3)

モンテカルロ法を使って計算を行う際に、
ある方法を用いて乱数列を発生させ、それを用いて行いました。

この乱数列は50の区分に分けた後、
カイ2乗分布による危険率1%の頻度検定
に合格したものを用いたのですが、
これではモンテカルロ法による計算を行うには
正しいとはいえないとのことでした。

これはなぜなのでしょうか。

確かに、50区分の頻度検定だけでは、
極端な話、周期50の数列がちょうど50区分に分かれて発生していて
結果として一様乱数となっているような場合も考えられます。

それでは、周期が計算に必要な乱数の数に対して十分に大きいとき、
モンテカルロ法として正しいと言えるようになるのでしょうか?

解説をよろしくお願いします。
通報する
  • 回答数1
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.1
レベル14

ベストアンサー率 57% (1014/1775)

最も極端な話、arguistさんの作った「(疑似)乱数列」r[n] が
1,2,3,4,.......,50, 1.5,2.5,3.5, ...., 50.5, 1.25,2.25, ....., 50.25, 1.75,2.75, ...., 50.75, 1.125, ....
だったとしましょうか。
χ二乗検定は完璧にパスしそうですね。周期はない。十分周期が長いわけです。
で、これを使って、50個の要素からなる列x[j] (j=1,2,...,50)から二つのサンプルを取り出すのに
x[r[n]の整数部分], x[r[n+1]の整数部分]
という風にやったとすると、ほとんどいつも、列xの中から隣り合う二つの要素を拾い出すことになります。
x[j]がjに多少とも依存するものであったとすれば、(たとえば、最も極端な場合 x[j] = j だったとすれば)選ばれた二つのサンプルには相関がある。
 そういうわけで、一連の部分列r[n],r[n+1],...,r[n+m-1]に相関があってはまずいわけです。m=2の場合ならX[n]=r[n], Y[n]=r[n+1] として、(X[n],Y[n])を2次元のグラフにプロットしてみれば一目瞭然でしょう。

もちろん、「乱数列」をどう使うかにも依ります。滑らかな関数f(x)の定積分をするためにこの乱数列を用いても多分問題はない。単に等間隔にサンプルを採って平均を求めるんですから、丁度50の倍数の個数のサンプルを採るか、あるいはうんと沢山のサンプルを採れば、大抵正解に近い値が得られるでしょう。
しかし、2変数関数f(x,y)の定積分をしたくてx,yを選ぶのにこの「乱数列」を使っちゃうとダメなのはもうお分かりですね。

 一般に、モンテカルロ法というのは相手にしている関数が多変数である場合、とくにその変数の数が多くて等間隔にサンプリングしてたんじゃとても計算が終わらないや、って場合にこそ有用な方法ですから、部分列r[n],r[n+1],...,r[n+m-1]の無相関性が非常に重要になります。
お礼コメント
arquist

お礼率 100% (3/3)

 なるほど。よくわかりました。
 例えば、1本の乱数列から交互に要素をとって(A列:2n-1番目の数、B列:2n版目の数など)計算をする場合には、A列とB列が無相関であることが重要なわけですね。
 そういえば、連の検定とか系列相関検定とかあったのを思い出しました。
 ありがとうございました。
投稿日時 - 2001-05-29 16:56:56
関連するQ&A
-PR-
-PR-
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このQ&Aにこう思った!同じようなことあった!感想や体験を書こう
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


新大学生・新社会人のパソコンの悩みを解決!

いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ