数学、特にモンテカルロ法の理論における分散減少法(ぶんさんげんしょうほう、: variance reduction)は推定の精度を改善するのに用いられる手法であり、与えられたシミュレーション、計算量(computational effort)に応じて適用し得る[1]。シミュレーションの出力値となる確率変数は、その結果の精度を左右する量である分散と結び付いている。シミュレーションを統計上効果的に、つまり、注目している確率変数の出力がより高い精度・より狭い信頼区間となるようにするために、分散減少法が利用できる場合がある。代表的なものに共通乱数法、対称変量法英語版制御変量法英語版重点サンプリング法英語版層化抽出法がある。ブラックボックスモデルを使ったシミュレーションに対しては、部分空間シミュレーション法英語版ラインサンプリング法英語版が用いられることもある。これらの項目の下位区分に、様々な特化型の技法が存在する。例えば、粒子輸送シミュレーションでは広範にわたって「ウェイト・ウインドウ法(weight windows)」や「セルインポータンス法(splitting/Russian roulette)」の技法が用いられるが、これらは重点サンプリング法の一形式である。

単位正方形内にランダムに生成される点の分散は層化抽出法によって減少させることができる。

共通乱数法編集

共通乱数法(Common Random Numbers, CRN)は、(系の単一の設定(configuration)に注目するのではなく)複数の設定間の比較をする際に適用できる、頻用され有用な手法である。correlated samplingmatched streamsmatched pairs とも呼ばれる。

共通乱数法では乱数列を同期(synchronization)させる。同一の乱数列を全ての設定に対して共通に用い、また発生する各乱数を全ての設定で同一の用途に用いるということである。例えば待ち行列理論において銀行の窓口係の2通りの配置を比較する場合であれば、各配置での N 番目の顧客のランダムな到着時刻を、共通の乱数列から生じる乱数を用いてそれぞれ発生させる。

共通乱数法の原理編集

   とを、第1の設定と第2の設定とで独立に反復した j 回目の出力結果とし、今

 

を推定したいとする。各設定について出力を n 回実行し

 

とおくと   であり、   の不偏推定量である。

確率変数列  独立同分布なので、

 

乱数列を共有せず、それぞれに別個のものを用いる場合は Cov(X1j, X2j) = 0 だが、X1X2 との間に正の相関をもたらす(Cov(X1j, X2j) > 0)ような要素をうまく導入することができれば、上式の通り分散を減少させられる。

共通の乱数列によって相関が負になる(Cov(X1j, X2j) < 0)場合、この手法は逆効果、つまり意に反して分散を増大させてしまい得ることもわかる[2]

関連項目編集

脚注編集

  1. ^ Botev, Z.; Ridder, A. (2017). “Variance Reduction”. Wiley StatsRef: Statistics Reference Online: 1–6. doi:10.1002/9781118445112.stat07975. 
  2. ^ The Method of Common Random Numbers: An Example”. Wolfram Demonstrations Project. 2016年3月29日閲覧。

参考文献編集

  • Hammersley, J. M.; Handscomb, D. C. (1964). Monte Carlo Methods. London: Methuen. ISBN 0-416-52340-4 
  • Kahn, H.; Marshall, A. W. (1953). “Methods of Reducing Sample Size in Monte Carlo Computations”. Journal of the Operational Research Society 1 (5): 263–271. doi:10.1287/opre.1.5.263. 
  • MCNP — A General Monte Carlo N-Particle Transport Code, Version 5 Los Alamos Report LA-UR-03-1987