Your SlideShare is downloading. ×
0
第27回R勉強会@東京(#TokyoR)   で学ぶ『逆(変換|関数)法』    @teramonagi
自己紹介• @teramonagi• 乱数を撒くお仕事• C++・R・python・VBA・F#• 数理物理・データ分析季節の変わり目ですね。  ご自愛ください。                        2
もくじ• 乱数を撒くお仕事からの逆変換法• 教科書的な逆変換法の説明• Rで学ぶ逆変換法• まとめ                    3
自己紹介• @teramonagi•乱数を撒くお仕事• C++・R・python・VBA・F#季節の変わり目ですね。  ご自愛ください。                        4
乱数を撒くお仕事           5
乱数を撒くお仕事           6
撒かれる乱数?          7
おじちゃん!乱数はどこから仕入れ てくるの?         8
八百屋・・・?          9
魚屋・・・?         10
雑貨屋・・・?          11
困ったわね…どこから乱数を仕入れればいいのかしら…            12
君らエンジニア    じゃろう?無けれ    ば作りなさい!CEOのアドバイス           13
乱数作り方、いろいろ逆変換法   マルコフ連鎖       モンテカルロ法合成法       棄却採択法重畳法               14
(今回の)前提条件[0,1]の一様乱数はある         || メルセンヌ・ツイスター         ||       runif() 15
[0,1]の一様乱数(runif)    60    40count    20        0            0.00   0.25   0.50   0.75   1.00                             ...
逆変換法とは   [0,1]の乱数(例:0.1153…, 0.892…, 0.722…)    u          変換              1                     FXFX      からの乱数         ...
逆変換法とは   [0,1]の乱数(例:0.1153…, 0.892…, 0.722…)    u                          1          変換         FX正規                    ...
逆変換法とは1. [0,1]区間の一様乱数 u を取得         12. x  FX u として x を計算    3. x は累積分布関数 FXからの乱数[0,1)の乱数                      変換     ...
(例)逆変換法で指数分布• 累積分布関数 FX x 1  e              x• 累積分布関数の逆関数を計算              u : FX x   1  e  x                 ...
(例)逆変換法で指数分布1. rand.exponential <- function(lambda, u)2. {3.   - 1.0/lambda * log(1-u)4. }5. #λ=0.5とした指数分布に従う10000個生成6. x ...
(例)逆変換法で指数分布          0.5                      Rで作った頻度分布 VS 実際の密度関数          0.4          0.3density          0.2         ...
何でこれでいいんだろう?     23
もくじ• 乱数を撒くお仕事からの逆変換法• 教科書的な逆変換法の説明• Rで学ぶ逆変換法• まとめ                    24
計算機シミュレーションのための     確率分布乱数生成法2.2.1 逆関数法(Inverse Transform method)                                       25
パターン認識と機械学習 下   11.1.1 標準的な分布                   26
Rによるモンテカルロ法入門    2.1.2 逆変換                27
自然科学の統計学 11.4.1 逆関数法               28
そんなテキストらによくある証明                Pr X  x   Pr FX  U   x                       1 PrU  FX x   FX x         ...
(昔の俺)お手上げ        30
Yahoo知恵袋にも仲間が!                 31
もう少し直感的な説明が欲しいわね       32
もくじ• 乱数を撒くお仕事からの逆変換法• 教科書的な逆変換法の説明• Rで学ぶ逆変換法• まとめ                    33
お題 カジノにいるSEが作るルーレット(二択)      34
ルーレットの設定(当選確率)      50% 50%あたりはずれ                35
うちのカジノで使うからさ~逆変換法でちょいちょいっと作ってよ!ちょいちょいっと!        36
ええと・・・「0~1」までの数値をあたり・はずれ共に50%になるように変換するにはどうしたら・・・                37
逆変換法的に考えて・・・   [0,1]の乱数(例:0.1153…, 0.892…, 0.722…)    u          変換              1                     FX  あたり:50%  はずれ:5...
単純に考えて・・・ あたり       はずれ0.0      0.5      1.0                    39
アルゴリズム的に考えて・・・     あたり if 0.0  u  0.5         ,結果       はずれ, if 0.5  u  1.0u~Uniform(0,1)                     ...
R的に考えて・・・1.#uは一様乱数(runifの結果)2.example.1 <- function(u)3.{4. if(u < 0.5){5.    "あたり"6. }7. else{8.    "はずれ"9. }10.}        ...
こんな感じでPLOTしてます1. library(grid)2. library(ggplot2)3. sampling <- function(size, generator)4. {5.    data.frame(table(sapply...
徹夜でコーディング43
10回回した結果6                         Result4                              あたり2                             はずれ0    あたり       ...
100回回した結果40                        Result                               あたり20                               はずれ0     あたり  ...
1000回回した結果500400                     Result300                          あたり200                             はずれ100 0      あ...
大体50%ずつの確率になってるね!いいじゃないか!儲けさせてもらったよ!        47
今月末は還元祭だから確率いじってよ!逆変換法でちょいちょいだろ!ちょいちょい!        48
ルーレットの設定(当選確率)      30%あたり         70%はずれ                  49
ええと・・・「0~1」までの数値をから、あたり70%・はずれが30%になるように変換するにはどうしたら・・・                50
単純に考えて・・・  あたり         はずれ0.0         0.7 1.0                  51
アルゴリズム的に考えて・・・     あたり if 0.0  u  0.7          ,結果       はずれ, if 0.7  u  1.0u~Uniform(0,1)                    ...
R的に考えて・・・1.example.2 <- function(u)2.{3. if(u < 0.7){4.    "あたり"5. }6. else{7.    "はずれ"8. }9.}                            ...
徹夜でコーディング54
1000回回した結果600                        Result400                          あたり200                          はずれ 0      あたり    ...
大体あたり70%・はずれ30%の確率になってるね!いいじゃないか!        56
プロジェクトの終了        57
束の間の休息…      58
But…更なる嵐の予感…       59
新アトラクション導入!くじ引き(三択)      60
新しくくじ引き入れるからさ~逆変換法でちょいちょいっと頼むわ!ちょいちょいっと!        61
くじ引きの設定    33% 33%青赤緑     33%              62
ええと・・・「0~1」までの数値をから、青33%・赤33% ・緑33%で出るように変換するにはどうしたら・・・                  63
逆変換法的に考えて・・・   [0,1]の乱数(例:0.1153…, 0.892…, 0.722…)    u          変換              1                     FX   青: 33%赤:33%, ...
単純に考えて・・・  青       赤       緑0.0   0.333… 0.666…   1.0       (1/3)  (2/3)    65
アルゴリズム的に考えて・・・                              1    青            , if  0  u                                3         ...
R的に考えて・・・1.example.3 <- function(u)2.{3. if(u < 1/3){4.    "青"5. }else if((1/3 <= 13 u) & (u < 2/3)){                    1...
徹夜でコーディング68
1000回回した結果300                    Result                            青200                            赤100                   ...
いいね!   70
もっと儲けたいからさ~くじに細工してくれる?なぁに逆変換法でちょいちょいだろ?      71
くじ引きの設定       10%青   70% 20%赤緑              72
ええと・・・「0~1」までの数値をから、青10%・赤20%・緑70%で出るように変換するにはどうしたら・・・                 73
逆変換法的に考えて・・・   [0,1]の乱数(例:0.1153…, 0.892…, 0.722…)    u          変換              1                     FX    青: 10% 赤:20%...
単純に考えて・・・青 赤            緑0 0.1   0.3        1.0 (10%) (30%)        75
アルゴリズム的に考えて・・・   青, if 0.0  u  0.1くじ 赤, if 0.1  u  0.3   緑, if 0.3  u  1.0u~Uniform(0,1)        76
R的に考えて・・・1.example.4 <- function(u)2.{3. if(u < 0.1){4.    "青"5. }else if((0.1 <= 13 u) & (u < 0.3)){                    1...
徹夜でコーディング78
1000回回した結果600                    Result                            青400                            赤200                   ...
儲かりすぎて笑いが止まらないよ!ハハハッハ!!       80
あのちょいちょい野郎がいる限り僕のデスマは止まらない・・・なんとか先回りしないと!              81
アルゴリズム的に考えて・・・   青, if 0.0  u  0.1くじ 赤, if 0.1  u  0.3   緑, if 0.3  u  1.0u~Uniform(0,1)        82
赤, if 0.1  u  0.3                   83
0.1や0.3って数字はどこから来たのかしら・・・            84
赤, if 0.1  u  0.3                   85
青が出る確率(10%)+   赤が出る確率(20%)   赤, if 0.1  u  0.3青が出る確率(10%)                      86
アルゴリズム的に考えて・・・   青, if 0.0  u  0.1くじ 赤, if 0.1  u  0.3   緑, if 0.3  u  1.0u~Uniform(0,1)        87
緑, if 0.3  u  1.0                   88
青が出る確率(10%)+    赤が出る確率(20%)+    緑が出る確率(70%)青が出る確率(10%)+赤が出る確率(20%)    緑, if 0.3  u  1.0                       89
何か法則性がありそうだな…      90
アルゴリズム的に考えて・・・   青, if 0.0  u  0.1くじ 赤, if 0.1  u  0.3   緑, if 0.3  u  1.0u~Uniform(0,1)        91
結果を文字式へ        x1 , if 0.0  u  0.1 X      x2 , if 0.1  u  0.3        x3 , if 0.3  u  1.0u~Uniform(0,1)        ...
確率を文字式へ        x1   , if 0  u  Px1  X      x2   , if Px1   u  Px1   Px2         x3   , if Px1   Px2 ...
x1   , if 0  u  Px1 x2   , if Px1   u  Px1   Px2 x3   , if Px1   Px2   u  Px1   Px2   Px3 ...
和の記号(Σ)を使って書く                                     x        0              1     , if   Pxi   u   Pxi     1  i...
和の記号(Σ)を使って書く                                                 x        0           1        , if   Pxi   u   Pxi...
素晴らしい洞察力!でわ、これを一般化してみよう!        97
題材くじ引き(N択)   98
x1        くじ引きの設定        x2x3      x4x5      x6x7      x8x9      x10x11     x12x13     x14x15     x16x17     x18x19     x2...
単純に考えて・・・x1 x2 x3 x4 x5 x6 xN 1 xN                ・・・                ・・・0                      1.0                       ...
N択くじの2番目結果は?x                 21    2  i1                         2                                      , if   Px...
N択くじのn番目結果は?x                   n 1    n  i1                          n                                        , if ...
Nを∞にすると・・・離散         連続 xn         xP x     px dx           
Nを∞にすると・・・x             n  i1             n 1                           i 1                                n         ...
FX x   pxdx  u            x                     1    両辺に          F   X かける    x  F u   1                X...
逆変換法とは(再掲)1. [0,1]区間の一様乱数 u を取得         12. x  FX u として x を計算    3. x は累積分布関数 FXからの乱数[0,1)の乱数                      変換 ...
逆変換法とは(再掲)1. [0,1]区間の一様乱数 u を取得         12. x  FX u として x を計算    3. x は累積分布関数 FXからの乱数[0,1)の乱数                      変換 ...
ぎゃ、逆変換法じゃねーか!          108
Congratulation!!!               109
まとめ二択・三択の練習問題   一般化 N択のくじ引き   N→∞  逆変換法       110
Upcoming SlideShare
Loading in...5
×

Rで学ぶ逆変換(逆関数)法

15,175

Published on

第27回R勉強会@東京(#TokyoR)用のトーク資料。R言語を用いて乱数生成法の1つである逆変換方について解説。

Published in: Technology
0 Comments
31 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
15,175
On Slideshare
0
From Embeds
0
Number of Embeds
15
Actions
Shares
0
Downloads
65
Comments
0
Likes
31
Embeds 0
No embeds

No notes for slide

Transcript of "Rで学ぶ逆変換(逆関数)法"

  1. 1. 第27回R勉強会@東京(#TokyoR) で学ぶ『逆(変換|関数)法』 @teramonagi
  2. 2. 自己紹介• @teramonagi• 乱数を撒くお仕事• C++・R・python・VBA・F#• 数理物理・データ分析季節の変わり目ですね。 ご自愛ください。 2
  3. 3. もくじ• 乱数を撒くお仕事からの逆変換法• 教科書的な逆変換法の説明• Rで学ぶ逆変換法• まとめ 3
  4. 4. 自己紹介• @teramonagi•乱数を撒くお仕事• C++・R・python・VBA・F#季節の変わり目ですね。 ご自愛ください。 4
  5. 5. 乱数を撒くお仕事 5
  6. 6. 乱数を撒くお仕事 6
  7. 7. 撒かれる乱数? 7
  8. 8. おじちゃん!乱数はどこから仕入れ てくるの? 8
  9. 9. 八百屋・・・? 9
  10. 10. 魚屋・・・? 10
  11. 11. 雑貨屋・・・? 11
  12. 12. 困ったわね…どこから乱数を仕入れればいいのかしら… 12
  13. 13. 君らエンジニア じゃろう?無けれ ば作りなさい!CEOのアドバイス 13
  14. 14. 乱数作り方、いろいろ逆変換法 マルコフ連鎖 モンテカルロ法合成法 棄却採択法重畳法 14
  15. 15. (今回の)前提条件[0,1]の一様乱数はある || メルセンヌ・ツイスター || runif() 15
  16. 16. [0,1]の一様乱数(runif) 60 40count 20 0 0.00 0.25 0.50 0.75 1.00 16
  17. 17. 逆変換法とは [0,1]の乱数(例:0.1153…, 0.892…, 0.722…) u 変換 1 FXFX からの乱数 x 17
  18. 18. 逆変換法とは [0,1]の乱数(例:0.1153…, 0.892…, 0.722…) u 1 変換 FX正規 指数分布 二項 分布 分布 x 18
  19. 19. 逆変換法とは1. [0,1]区間の一様乱数 u を取得 12. x  FX u として x を計算 3. x は累積分布関数 FXからの乱数[0,1)の乱数 変換 FX からの乱数(例:0.1153…, 0.892…, 0.722…) 1 u FX x 19
  20. 20. (例)逆変換法で指数分布• 累積分布関数 FX x 1  e   x• 累積分布関数の逆関数を計算 u : FX x   1  e  x 1 log1  u  Xに xついて解く  F 1 X u    1 log1  u  20
  21. 21. (例)逆変換法で指数分布1. rand.exponential <- function(lambda, u)2. {3. - 1.0/lambda * log(1-u)4. }5. #λ=0.5とした指数分布に従う10000個生成6. x <- sapply(runif(10000), function(u)rand.exponential(0.5,u))7. #plot8. qplot(x, geom = "blank") +9. geom_histogram(aes(y=..density..),fill="bisque",colour="black") +10. stat_function(fun=dexp,color="red",size=1,arg=list(rate=0.5)) +11. scale_x_continuous(limits = c(0, 10)) 21
  22. 22. (例)逆変換法で指数分布 0.5 Rで作った頻度分布 VS 実際の密度関数 0.4 0.3density 0.2 0.1 0.0 0.0 2.5 5.0 7.5 10.0 x 22
  23. 23. 何でこれでいいんだろう? 23
  24. 24. もくじ• 乱数を撒くお仕事からの逆変換法• 教科書的な逆変換法の説明• Rで学ぶ逆変換法• まとめ 24
  25. 25. 計算機シミュレーションのための 確率分布乱数生成法2.2.1 逆関数法(Inverse Transform method) 25
  26. 26. パターン認識と機械学習 下 11.1.1 標準的な分布 26
  27. 27. Rによるモンテカルロ法入門 2.1.2 逆変換 27
  28. 28. 自然科学の統計学 11.4.1 逆関数法 28
  29. 29. そんなテキストらによくある証明 Pr X  x   Pr FX U   x  1 PrU  FX x   FX x  29
  30. 30. (昔の俺)お手上げ 30
  31. 31. Yahoo知恵袋にも仲間が! 31
  32. 32. もう少し直感的な説明が欲しいわね 32
  33. 33. もくじ• 乱数を撒くお仕事からの逆変換法• 教科書的な逆変換法の説明• Rで学ぶ逆変換法• まとめ 33
  34. 34. お題 カジノにいるSEが作るルーレット(二択) 34
  35. 35. ルーレットの設定(当選確率) 50% 50%あたりはずれ 35
  36. 36. うちのカジノで使うからさ~逆変換法でちょいちょいっと作ってよ!ちょいちょいっと! 36
  37. 37. ええと・・・「0~1」までの数値をあたり・はずれ共に50%になるように変換するにはどうしたら・・・ 37
  38. 38. 逆変換法的に考えて・・・ [0,1]の乱数(例:0.1153…, 0.892…, 0.722…) u 変換 1 FX あたり:50% はずれ:50% x 38
  39. 39. 単純に考えて・・・ あたり はずれ0.0 0.5 1.0 39
  40. 40. アルゴリズム的に考えて・・・ あたり if 0.0  u  0.5 ,結果   はずれ, if 0.5  u  1.0u~Uniform(0,1) 40
  41. 41. R的に考えて・・・1.#uは一様乱数(runifの結果)2.example.1 <- function(u)3.{4. if(u < 0.5){5. "あたり"6. }7. else{8. "はずれ"9. }10.} 41
  42. 42. こんな感じでPLOTしてます1. library(grid)2. library(ggplot2)3. sampling <- function(size, generator)4. {5. data.frame(table(sapply(runif(size), unction(u)generator(u)),dnn=c("Result")))6. }7. plot.bar <- function(x,colors)8. {9. ggplot() +10. geom_bar(data=x, aes(x=Result, y=Freq,fill=Result),width=.8) +11. theme(12. legend.key.size=unit(2,"cm"),13. legend.text =element_text(size=20),14. legend.title=element_text(size=20),15. axis.text.x =element_text(size=25),16. axis.text.y =element_text(size=25),17. axis.title.x=element_text(size=25),18. axis.title.y=element_blank()19. ) +20. scale_fill_manual(values=colors)21. }22. plot.bar(sampling(10,example.1),c("#4F81BD","#C0504D")) 42
  43. 43. 徹夜でコーディング43
  44. 44. 10回回した結果6 Result4 あたり2 はずれ0 あたり はずれ Result 44
  45. 45. 100回回した結果40 Result あたり20 はずれ0 あたり はずれ Result 45
  46. 46. 1000回回した結果500400 Result300 あたり200 はずれ100 0 あたり はずれ Result 46
  47. 47. 大体50%ずつの確率になってるね!いいじゃないか!儲けさせてもらったよ! 47
  48. 48. 今月末は還元祭だから確率いじってよ!逆変換法でちょいちょいだろ!ちょいちょい! 48
  49. 49. ルーレットの設定(当選確率) 30%あたり 70%はずれ 49
  50. 50. ええと・・・「0~1」までの数値をから、あたり70%・はずれが30%になるように変換するにはどうしたら・・・ 50
  51. 51. 単純に考えて・・・ あたり はずれ0.0 0.7 1.0 51
  52. 52. アルゴリズム的に考えて・・・ あたり if 0.0  u  0.7  ,結果   はずれ, if 0.7  u  1.0u~Uniform(0,1) 52
  53. 53. R的に考えて・・・1.example.2 <- function(u)2.{3. if(u < 0.7){4. "あたり"5. }6. else{7. "はずれ"8. }9.} 53
  54. 54. 徹夜でコーディング54
  55. 55. 1000回回した結果600 Result400 あたり200 はずれ 0 あたり はずれ Result 55
  56. 56. 大体あたり70%・はずれ30%の確率になってるね!いいじゃないか! 56
  57. 57. プロジェクトの終了 57
  58. 58. 束の間の休息… 58
  59. 59. But…更なる嵐の予感… 59
  60. 60. 新アトラクション導入!くじ引き(三択) 60
  61. 61. 新しくくじ引き入れるからさ~逆変換法でちょいちょいっと頼むわ!ちょいちょいっと! 61
  62. 62. くじ引きの設定 33% 33%青赤緑 33% 62
  63. 63. ええと・・・「0~1」までの数値をから、青33%・赤33% ・緑33%で出るように変換するにはどうしたら・・・ 63
  64. 64. 逆変換法的に考えて・・・ [0,1]の乱数(例:0.1153…, 0.892…, 0.722…) u 変換 1 FX 青: 33%赤:33%, 緑: 33% x 64
  65. 65. 単純に考えて・・・ 青 赤 緑0.0 0.333… 0.666… 1.0 (1/3) (2/3) 65
  66. 66. アルゴリズム的に考えて・・・  1 青 , if  0  u    3 1 2 くじ 赤 , if   u   3 3 緑 , if  3  u  1 2   u~Uniform(0,1) 66
  67. 67. R的に考えて・・・1.example.3 <- function(u)2.{3. if(u < 1/3){4. "青"5. }else if((1/3 <= 13 u) & (u < 2/3)){ 16. "赤" 37. }else if((2/3 <= u) & (u < 1.0)){8. "緑"9. }10.} 67
  68. 68. 徹夜でコーディング68
  69. 69. 1000回回した結果300 Result 青200 赤100 緑 0 青 赤 緑 Result 69
  70. 70. いいね! 70
  71. 71. もっと儲けたいからさ~くじに細工してくれる?なぁに逆変換法でちょいちょいだろ? 71
  72. 72. くじ引きの設定 10%青 70% 20%赤緑 72
  73. 73. ええと・・・「0~1」までの数値をから、青10%・赤20%・緑70%で出るように変換するにはどうしたら・・・ 73
  74. 74. 逆変換法的に考えて・・・ [0,1]の乱数(例:0.1153…, 0.892…, 0.722…) u 変換 1 FX 青: 10% 赤:20%, 緑: 70% x 74
  75. 75. 単純に考えて・・・青 赤 緑0 0.1 0.3 1.0 (10%) (30%) 75
  76. 76. アルゴリズム的に考えて・・・ 青, if 0.0  u  0.1くじ 赤, if 0.1  u  0.3 緑, if 0.3  u  1.0u~Uniform(0,1) 76
  77. 77. R的に考えて・・・1.example.4 <- function(u)2.{3. if(u < 0.1){4. "青"5. }else if((0.1 <= 13 u) & (u < 0.3)){ 16. "赤" 37. }else if((0.3 <= u) & (u < 1.0)){8. "緑"9. }10.} 77
  78. 78. 徹夜でコーディング78
  79. 79. 1000回回した結果600 Result 青400 赤200 緑 0 青 赤 緑 Result 79
  80. 80. 儲かりすぎて笑いが止まらないよ!ハハハッハ!! 80
  81. 81. あのちょいちょい野郎がいる限り僕のデスマは止まらない・・・なんとか先回りしないと! 81
  82. 82. アルゴリズム的に考えて・・・ 青, if 0.0  u  0.1くじ 赤, if 0.1  u  0.3 緑, if 0.3  u  1.0u~Uniform(0,1) 82
  83. 83. 赤, if 0.1  u  0.3 83
  84. 84. 0.1や0.3って数字はどこから来たのかしら・・・ 84
  85. 85. 赤, if 0.1  u  0.3 85
  86. 86. 青が出る確率(10%)+ 赤が出る確率(20%) 赤, if 0.1  u  0.3青が出る確率(10%) 86
  87. 87. アルゴリズム的に考えて・・・ 青, if 0.0  u  0.1くじ 赤, if 0.1  u  0.3 緑, if 0.3  u  1.0u~Uniform(0,1) 87
  88. 88. 緑, if 0.3  u  1.0 88
  89. 89. 青が出る確率(10%)+ 赤が出る確率(20%)+ 緑が出る確率(70%)青が出る確率(10%)+赤が出る確率(20%) 緑, if 0.3  u  1.0 89
  90. 90. 何か法則性がありそうだな… 90
  91. 91. アルゴリズム的に考えて・・・ 青, if 0.0  u  0.1くじ 赤, if 0.1  u  0.3 緑, if 0.3  u  1.0u~Uniform(0,1) 91
  92. 92. 結果を文字式へ x1 , if 0.0  u  0.1 X x2 , if 0.1  u  0.3 x3 , if 0.3  u  1.0u~Uniform(0,1) 92
  93. 93. 確率を文字式へ x1 , if 0  u  Px1  X x2 , if Px1   u  Px1   Px2  x3 , if Px1   Px2   u  Px1   Px2   Px3 u~Uniform(0,1) 93
  94. 94. x1 , if 0  u  Px1 x2 , if Px1   u  Px1   Px2 x3 , if Px1   Px2   u  Px1   Px2   Px3  94
  95. 95. 和の記号(Σ)を使って書く   x 0 1 , if   Pxi   u   Pxi  1  i1 i 1  x  2  i1 1 2  , if   Pxi   u   Pxi  i 1    x 2 3 , if   Pxi   u   Pxi  3  i1 i 1  95
  96. 96. 和の記号(Σ)を使って書く   x 0 1 , if   Pxi   u   Pxi  1  i1 i 1  x  2  i1 1 2 , if   Pxi   u   Pxi  i 1   x  2 3 , if   pi  u   pi 自分の番号(2)から1引いた数値 3  i1 i 1  (1)と同じ番号(2)で和をとる 96
  97. 97. 素晴らしい洞察力!でわ、これを一般化してみよう! 97
  98. 98. 題材くじ引き(N択) 98
  99. 99. x1 くじ引きの設定 x2x3 x4x5 x6x7 x8x9 x10x11 x12x13 x14x15 x16x17 x18x19 x20x21 x22x23 x24x25 x26x27 …x_N-1 xN 99
  100. 100. 単純に考えて・・・x1 x2 x3 x4 x5 x6 xN 1 xN ・・・ ・・・0 1.0 100
  101. 101. N択くじの2番目結果は?x  21 2  i1 2  , if   Pxi   u   Pxi  i 1 自分の番号から1引いた数値と同じ番号で和をとる 101
  102. 102. N択くじのn番目結果は?x  n 1 n  i1 n  , if   Pxi   u   Pxi  i 1 自分の番号から1引いた数値と同じ番号で和をとる 102
  103. 103. Nを∞にすると・・・離散 連続 xn xP x  px dx  
  104. 104. Nを∞にすると・・・x  n  i1 n 1 i 1 n  , if   Pxi   u   Pxi    x x    x , if   pxdx  u   pxdx     104
  105. 105. FX x   pxdx  u x 1 両辺に F X かける x  F u  1 X 105
  106. 106. 逆変換法とは(再掲)1. [0,1]区間の一様乱数 u を取得 12. x  FX u として x を計算 3. x は累積分布関数 FXからの乱数[0,1)の乱数 変換 FX からの乱数(例:0.1153…, 0.892…, 0.722…) 1 u FX x 106
  107. 107. 逆変換法とは(再掲)1. [0,1]区間の一様乱数 u を取得 12. x  FX u として x を計算 3. x は累積分布関数 FXからの乱数[0,1)の乱数 変換 FX からの乱数(例:0.1153…, 0.892…, 0.722…) 1 u FX x 107
  108. 108. ぎゃ、逆変換法じゃねーか! 108
  109. 109. Congratulation!!! 109
  110. 110. まとめ二択・三択の練習問題 一般化 N択のくじ引き N→∞ 逆変換法 110
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×