RAND 関数による擬似乱数の生成 魚住龍史 * 浜田知久馬東京理科大学大学院工学研究科経営工学専攻 Generating pseudo-random numbers using RAND function Ryuji Uozumi * and Chikuma Hamada Department of Management Science, Graduate School of Engineering, Tokyo University of Science * E-mail : uozumi@ms.kagu.tus.ac.jp
SAS による効率的なシミュレーションプログラミングの実際 RAND 関数による擬似乱数の生成 魚住龍史 Continual reassessment method における MCMC プロシジャの利用加倉井靖之 MCMCプロシジャによる非独立データの解析矢田真城 SASによるシミュレーションを用いた例数設計土居正明
本発表のトピック. 乱数の概要. RAND 関数の概要と擬似乱数の生成例 3. 確率分布の関係を利用した擬似乱数の生成 4. 逆関数法による擬似乱数の生成 5. まとめ 3
本発表のトピック (/5). 乱数の概要. RAND 関数の概要と擬似乱数の生成例 3. 確率分布の関係を利用した擬似乱数の生成 4. 逆関数法による擬似乱数の生成 5. まとめ 4
5 乱数の生成が必要となる場面の例 ) ( ) ( ) ( HR HR z z N )} {log( ) ( HR z z N E z z N 生存時間解析の症例数設計の際の疑問モンテカルロシミュレーションによる検出力の評価魚住等 (009)
Monaco Monte-Carlo 6
Monaco Monte-Carlo von Neumann Fermi Metropolis Ulam 7
乱数表の利用 サイコロの利用 8
物理乱数生成装置の利用 物理乱数生成装置の利用 9
擬似乱数の利用 0
本発表のトピック (/5). 乱数の概要. RAND 関数の概要と擬似乱数の生成例 3. 確率分布の関係を利用した擬似乱数の生成 4. 逆関数法による擬似乱数の生成 5. まとめ
良い擬似乱数とは 良い乱数とは
RAND 関数の概要 Mersenne Twister に基づく擬似乱数の生成 周期が長い : 9937 統計的に良好 : 63 次元空間に均等分布 再現性がある : CALL STREAMINIT Matsumoto & Nishimura (998) data random; call streaminit(seed); /* シードの指定 */ do i= to 0000; /* 生成させる擬似乱数列数 */ =rand( distribution', param-,..., param-k); output; end; run; 3
RAND 関数において指定可能な確率分布 離散型の確率分布二項分布ベルヌーイ分布超幾何分布ポアソン分布負の二項分布幾何分布テーブル分布 連続型の確率分布 正規分布 一様分布 カイ二乗分布 ガンマ分布 対数正規分布 アーラン分布 t 分布 指数分布 F 分布 ワイブル分布 コーシー分布 三角分布 ベータ分布 確率 ( 密度 ) 関数の式 RAND 関数の記述方法は論文集を参照 4
正規分布に従う擬似乱数の生成プログラム data random; call streaminit(03078); do i= to 0000; do case=; =rand('normal',0,);output;end; /* N(0, ) */ do case=; =rand('normal',,);output;end; /* N(, ) */ do case=3; =rand('normal',,0.5);output;end; /* N(, 0.5) */ end; run; 擬似乱数のヒストグラムの作成 proc sgpanel data=random; panelby case / novarname layout=columnlattice; histogram / fill fillattrs=(color=grey) outline scale=percent; colais display=(nolabel noticks) values=(-5 to 5); rowais label='frequency'; run; SGPANEL プロシジャで作成 5
確率密度関数 / 擬似乱数のヒストグラム X ~ N(, ) f ( ) ( ) ep SGPANEL プロシジャで作成 6
本発表のトピック (3/5). 乱数の概要. RAND 関数の概要と擬似乱数の生成例 3. 確率分布の関係を利用した擬似乱数の生成 4. 逆関数法による擬似乱数の生成 5. まとめ 7
指数分布に従う擬似乱数の生成 data random; call streaminit(03078); do i= to 0000; =rand('eponential'); output; end; run; X ~ Ep f ( ) ep( ) 8
指数分布の確率密度関数 X ~ Ep( ) f ( ) ep 9
連続型の確率分布の関係 ( 一部抜粋 ) 0 標準正規分布 正規分布, X i ワイブル分布 a,b a b log X X i a b カイ二乗分布 対数正規分布, log X 指数分布 標準一様分布 ベータ分布 a,b a b 変数変換 or 特別な場合 漸近近似 RAND 関数と PDF 関数でパラメータ表現が異なる 0
指数分布 / ワイブル分布に従う確率密度関数確率分布確率密度関数 (PDF 関数 ) RAND 関数指数分布 PDF( EXPONENTIAL, ) = RAND( EXPONENTIAL ) ワイブル分布 PDF( WEIBULL, a, b) = RAND( WEIBULL, a, b) = RAND( WEIBULL,, ) 0, ep ) ( f 0 ), ep( ) ( f 0, ep ) ( b b a f a a a 0, ep ) (, f b a 0, ep ) ( b b a f a a a
確率密度関数 / 生成させた擬似乱数のヒストグラム X ~ Ep( f ( ) ep( f ( ) ep f ( ) ep( ) f ( ) 0.5ep( 0.5)
本発表のトピック (4/5). 乱数の概要. RAND 関数の概要と擬似乱数の生成例 3. 確率分布の関係を利用した擬似乱数の生成 4. 逆関数法による擬似乱数の生成 5. まとめ 3
逆関数法 y F() ワイブル分布による例 f ( ) a b a a ep b a U ~ U(0,) F( ) U ep b a F ( ) b{ log( U)} / a 0 U X F ~ U(0,) Beta (,) ( U) X b(logu / ) =b*(-log(rand('uniform')))**(/a) a 4
5 対数ロジスティック分布に従う擬似乱数の生成逆関数法による乱数生成 f ) ( U F ) ( / ) ( U U F X U=rand('uniform'); =((U/(-U))/)**(/); =.0, =.0
本発表のトピック (5/5). 乱数の概要. RAND 関数の概要と擬似乱数の生成例 3. 確率分布の関係を利用した擬似乱数の生成 4. 逆関数法による擬似乱数の生成 5. まとめ 6
まとめ RAND 関数による擬似乱数の生成 RAND 関数における擬似乱数生成アルゴリズム RAND 関数において指定できる確率分布 RAND 関数による擬似乱数の生成例 確率分布の関係を利用した RAND 関数による擬似乱数の生成 RAND 関数でサポートされていない確率分布に従う擬似乱数の生成 ( 逆関数法 ) モンテカルロシミュレーションによる評価 7
主要参考文献 Leemis LM, McQueston JT. Univariate distribution relationships. The American Statistician 008; 6: 45-53. Matsumoto M, Nishimura T. Mersenne Twister: A 63 Dimensionally Equidistributed Uniform Pseudo-Random Number Generator. ACM Transactions on Modeling and Computer Simulation 998; 8: 3 30. 魚住龍史, 水澤純基, 浜田知久馬. 生存時間解析における Lakatos の症例数設計法の有用性の評価. SAS ユーザー総会論文集 009, 85 99. 津田孝夫. モンテカルロ法とシミュレーション. 培風館, 995. 東京大学教養学部統計学教室 (99). 自然科学の統計学. 東京大学出版会. 伏見正則 (989). 乱数. 東京大学出版会. 蓑谷千凰彦. 確率統計ハンドブック. 朝倉書店, 003. 8
Thanks for your kind attention!! 9