確率シミュレーション
樋口さぶろお
龍谷大学理工学部数理情報学科
計算科学☆演習 II L04(2014-05-02 Fri)
今日の目標
1
C でランダムウォークの座標の標本期待値を計
母/標本 平均値と分散 Quiz解説
ここまで来たよ
1
母
/標本 平均値と分散 Quiz 解説
2
確率シミュレーション
ランダムウォーカーの座標の母分布
確率シミュレーション
母/標本 平均値と分散 Quiz解説
L03-S1
Quiz解答:標本平均値・標本分散・標本標準偏差
1 m= 1
5
∑5
i=1
xi= 10.
2 s2= 5−11 ((−1)2+ 02+ 32+ 22+ (−4)2) = 152.
3 s= (152)1/2=
√30 2 . L03-S2
Quiz解答:ランダムウォークの到達点の座標の母平均値・母分散
1 E(R(t)) =p·(+1) +q·0 =p.
2 E((R(t))2) =p·(+1)2+q·02=p.
V(R(t)) = E((R(t))2)−E(R(t))2=p−p2=pq.
3 σR(t) =√pq.
母/標本 平均値と分散 Quiz解説
L03-S3
Quiz
解答
:ランダムウォーカーの到達点の座標の母平均・母分散
1
µ = E(R(t)) = (−1) ·
59+ 0 ·
19+ (+1) ·
39= −
29.
2
E((R(t))
2) = ( − 1)
2·
59+ 0
2·
19+ (+1)
2·
39=
89. E(R(t))
2= ( −
29)
2. σ
2= V(R(t)) = E((R(t))
2) − E(R(t))
2=
6881.
次のように直接に計算しても同じ結果になる . V(R(t)) = E((R(t) − µ)
2) =
(( − 1) − ( −
29))
2·
59+ (0 − ( −
29))
2·
19+ ((+1) − ( −
29))
2·
39.
3
σ
R(t)=
√68 81
=
2√17 9
.
4
一般に E(X(T )) = T · E(R(t)). T = 20 とすると , E(X(20)) = 20E(R(t)) = −
409.
5
一般に V(X(T)) = T · V(R(t)). T = 20 とすると , V(X(20)) = 20V(R(t)) =
136081.
6
σ
X(20)= (V(X(20))))
1/2= (
136081)
1/2=
49√
85
確率シミュレーション ランダムウォーカーの座標の母分布
ここまで来たよ
1
母
/標本 平均値と分散
Quiz解説
2
確率シミュレーション
ランダムウォーカーの座標の母分布
確率シミュレーション
確率シミュレーション ランダムウォーカーの座標の母分布
( 復習 ) ランダムウォーカーの座標 X(T ) の母平均値と母分散
X(t + 1) = X(t) + R(t + 1), X(0) = 0
X(T) = 0 +
∑T t=1
R(t).
R(t) (t = 1, 2, . . . , T ) は独立同分布 , E(R(t)) = µ,V(R(t)) = σ
2とする .
X(T)の母平均値
E(X(T )) = T × µ.
X(T)
の母分散
R(t)が互いに独立なので V(X(T )) = T × σ
2.
X(T)の母標準偏差
σ
X(T)= √
T × σ.
確率シミュレーション ランダムウォーカーの座標の母分布
ってことは , 確率分布の時間変化はこんな感じ ?
いつでもこんな長方形 ? 待て中心極限定理
確率シミュレーション ランダムウォーカーの座標の母分布
L04-Q1
Quiz(離散的なランダムウォークの確率・平均値・分散・標準偏差) ランダムウォークを表す次の数列を考える .
X(t + 1) = X(t) + R(t + 1), X(0) = 0.
ただし , R(t + 1) は独立同分布に従い , 確率 p で R = − 3, 確率 1 − p で R = +1 の値をとる (0 < p < 1). 次のうち正しいものの記号をすべて答 えよう .
1
X(t) は t に比例する .
2
X(t) の母平均値は t に比例する .
3
X(t) の母分散は t に比例する .
4
e
X(t)の期待値は t に比例する .
5
X(t) の母標準偏差は t に比例する .
確率シミュレーション 確率シミュレーション
ここまで来たよ
1
母
/標本 平均値と分散
Quiz解説
2
確率シミュレーション
ランダムウォーカーの座標の母分布
確率シミュレーション
確率シミュレーション 確率シミュレーション
ランダムウォークのこんな問題 ?
R 確率
0 q = 1 − p =
131 p =
23座標 X(t) について , 以下を厳密に求めよう . または推定しよう . E(X(2)), E(e
X(2)), X(2) > 1 の確率
E(X(102)), E(e
X(102)), X(102) > 51 の確率 厳密 →
母ナントカの計算
推定 →
確率シミュレーションで標本から推定
(
復習
)確率も期待値でかける
条件「 X(T ) > 1 」が成立する確率 =E(1
[1より大](X(T ))).
1[条件]
(x) =
{1 (x に対して条件が成立する )
0 (x に対して条件が成立しない )
確率シミュレーション 確率シミュレーション
( 方法 1) ランダムウォークの公式を使う E(X(2)), E(e
X(2)), X(2) > 0 の確率
E(X(102)), E(e
X(102)), X(102) > 0 の確率
ランダムウォークの
X (t) の 2 次式以下
はこれで .
確率シミュレーション 確率シミュレーション
( 方法 2) 母分布から手計算 E(X(2)), E(e
X(2)), X(2) > 0 の確率
E(X(102)), E(e
X(102)), X(102) > 0 の確率 X(1) の母分布
R = X(1) 確率
0 q = 1 − p =
131 p =
23X(2) の母分布
X(2) 確率 R(0) + R(1) 0
13·
130 + 0
1
13·
23+
23·
130 + 1 or 1 + 0 2
23·
231 + 1
E(e
X(2)) =
黒板で
X(2) が 1 以下である確率 =E(1
[1以下](X(2))) =
黒板で
確率シミュレーション 確率シミュレーション
( 方法 3) 確率シミュレーション : 標本を作って推定する ( 方法 2) の調子で , 手計算の得意な人ならいくらでも .
⇝X(102) とか やってられるか ! 待て次週 .
E(X(2)), E(e
X(2)), X(2) > 0 の確率 E(X(102)), E(e
X(102)), X(102) > 0 の確率
擬似乱数を使ってサイズ N の標本 X(T )
(1), X (T )
(2), . . . , X(T )
(N)を 作って , 母期待値 E(f(X(T ))) を標本期待値
f (X(T)) = 1 N
∑N n=1
f (X(T )
(n))
確率シミュレーション 確率シミュレーション
X(T) をいきなり返す int getrandomT(double y) を書くのはたい へん…
時間発展 (= 漸化式 ) を適用して 1 項ずつ計算しちゃえ →
シミュレーション
確率シミュレーション
確率的現象を , 擬似乱数を使ってそのままコンピュータ上で再現し
(simulate), くり返し実行して標本抽出し , 何かの母期待値を推定すること .
とりあえずなんでも計算 ( ていうか
推定
) できちゃう 要
コンピュータ or 奴隷
確率シミュレーション 確率シミュレーション
X(T ) の標本抽出
1 /∗1∗/
2 f o r( n ){
3 /∗2∗/
4 f o r( t ){
5 /∗3∗/
6 x=x+g e t r a n d o m ( g e t u n i f o r m ( ) ) ;
7 /∗4∗/
8 }
9 /∗5∗/
10 }
11 /∗6∗/
問 : srand(seed), x=0, printf("%d",x) はどこ ?
確率シミュレーション 確率シミュレーション
出力
X(t)
(n)t:
時刻 , 漸化式の t 項め
(n):
サンプル内通し番号
t = 0 t = 1 · · · t = T n = 1 X(0)
(1)X(1)
(1)· · · X(T)
(1)n = 2 X(0)
(2)X(1)
(2)· · · X(T)
(2).. . .. . .. . .. . .. .
n = N X(0)
(N)X(1)
(N)· · · X(T )
(N)確率シミュレーション 確率シミュレーション
t = 0 t = 1 · · · t = T n = 1 X(0)
(1)X(1)
(1)· · · X(T)
(1)n = 2 X(0)
(2)X(1)
(2)· · · X(T)
(2).. . .. . .. . .. . .. .
n = N X(0)
(N)X(1)
(N)· · · X(T )
(N)確率の推定
確率の推定値 =
1[条件](R) = 1 N
∑N n=1
1[条件]
(R
(n))
個のうち条件が成立している’データの個数
確率シミュレーション 確率シミュレーション
Excel を使わないで標本期待値の計算
f (X(T)) = 1 N
∑N n=1
f (X(T )
(n))
1 /∗1∗/
2 f o r( n ){
3 /∗2∗/
4 f o r( t ){
5 /∗3∗/
6 x=x+g e t r a n d o m ( g e t u n i f o r m ( ) ) ;
7 /∗4∗/
8 }
9 /∗5∗/
10 }
11 /∗6∗/
sum1=0, sum1+=f(x), printf(”%f”,(double)sum1/nmax)?
確率シミュレーション 確率シミュレーション
1[条件]
(X(T )) のこと考えると…
sum1 は
count1
と名付けたほうがいいかも .
確率シミュレーション 確率シミュレーション
到着点だけじゃなくて経路のサンプル
例題
x = 10 から出発したランダムウォーカーが , 0 ≤ t ≤ 20 のいずれかの瞬 間に , 領域 x ≤ 0 にいる確率
破産
の確率
これまで : サンプルは最終時刻の位置 X(T ) を集めたもの
この例 : サンプルは経路 (X(0), X(1), . . . , X(t), . . . , X(T )) を集めた もの
t = 0 t = 1 · · · t = T n = 1 X(0)
(1)X(1)
(1)· · · X(T)
(1)n = 2 X(0)
(2)X(1)
(2)· · · X(T)
(2).. . .. . .. . .. . .. .
n = N X(0)
(N)X(1)
(N)· · · X(T )
(N)確率シミュレーション 確率シミュレーション
ラグランジュ表現 : ウォーカーが g = 2 人いたら ?
例題
x = 0, 10 から出発した g = 2 人のランダムウォーカーが , 0 ≤ t ≤ 20 の 期間に衝突する (= 同時刻に同地点にいることが 1 回以上起きる ) 確率は ? int x; → int x[2];
ラグランジュ表現
1 /∗1∗/
2 f o r( n ){
3 /∗2∗/
4 f o r( t ){
5 /∗3∗/
6 x=x+g e t r a n d o m ( g e t u n i f o r m ( ) ) ;
7 /∗4∗/
確率シミュレーション 確率シミュレーション
L04-Q2
Quiz(確率シミュレーション)
ランダムウォークを表す次の数列を考える .
X(t + 1) = X(t) + R(t + 1), X(0) = 0.
t = 0 に x = 0 から出発するランダムウォーカーが , t = 20 に x = 0 に ちょうど戻ってくる確率を , 確率シミュレーションで推定しよう . ただし , R(t + 1) は整数値をとる確率変数で , int
getrandom(getuniform()) の返り値として実現されている .
答の記述では , getrandom, getuniform の宣言や定義は省略して , main
だけ書けばよい . サンプルサイズ int nmax は与えられているとしてよ
い . 入力は乱数のシードのみ .
確率シミュレーション 確率シミュレーション
講義のプチテスト
2014-05-16金2, 90分, 30ピーナッツ,参照相談なし.紙のテスト.
過去問は公開してるけど,のりは毎年違う. 2014は2013よりかなり範囲狭い はず.下の出題計画, Quiz,予習復習問題,演習課題をやり直すことをお奨め します.
出題計画(2014-05-09金ごろにメールで修正,確定します). Excel関係のもの
はありません. また, 2014-05-09金の講義,14水の演習で初めて出てくる事項 は含みません.
▶ 離散的な確率変数が与えられたとき母平均値,母分散,母標準偏差,母期待値, 条件を満たす確率を手計算で求める
▶ ランダムウォークが与えられたとき,時刻tの座標X(t)の母平均値,母分散,母 標準偏差,母期待値,条件を満たす確率を手計算で求める
▶ 標本が与えられたとき母平均値,母分散,母標準偏差,母期待値,条件を満たす 確率を推定する
▶ 母集団,標本,標本抽出,推定の意味を説明する(選択肢問題)
▶ 乱数生成の仕組み,シードの意味. srand, randの機能を説明する(記述問題or 選択肢問題)
▶ ランダムウォークの座標の標本抽出のプログラムを書く 穴埋め
確率シミュレーション 確率シミュレーション