Submit Search
Upload
Rで学ぶ逆変換(逆関数)法
•
54 likes
•
40,510 views
Nagi Teramo
Follow
第27回R勉強会@東京(#TokyoR)用のトーク資料。R言語を用いて乱数生成法の1つである逆変換方について解説。
Read less
Read more
Technology
Report
Share
Report
Share
1 of 110
Download now
Download to read offline
Recommended
Stan超初心者入門
Stan超初心者入門
Hiroshi Shimizu
Stanコードの書き方 中級編
Stanコードの書き方 中級編
Hiroshi Shimizu
階層モデルの分散パラメータの事前分布について
階層モデルの分散パラメータの事前分布について
hoxo_m
1 4.回帰分析と分散分析
1 4.回帰分析と分散分析
logics-of-blue
ベイズファクターとモデル選択
ベイズファクターとモデル選択
kazutantan
負の二項分布について
負の二項分布について
Hiroshi Shimizu
階層ベイズと自由エネルギー
階層ベイズと自由エネルギー
Hiroshi Shimizu
ブートストラップ法とその周辺とR
ブートストラップ法とその周辺とR
Daisuke Yoneoka
Recommended
Stan超初心者入門
Stan超初心者入門
Hiroshi Shimizu
Stanコードの書き方 中級編
Stanコードの書き方 中級編
Hiroshi Shimizu
階層モデルの分散パラメータの事前分布について
階層モデルの分散パラメータの事前分布について
hoxo_m
1 4.回帰分析と分散分析
1 4.回帰分析と分散分析
logics-of-blue
ベイズファクターとモデル選択
ベイズファクターとモデル選択
kazutantan
負の二項分布について
負の二項分布について
Hiroshi Shimizu
階層ベイズと自由エネルギー
階層ベイズと自由エネルギー
Hiroshi Shimizu
ブートストラップ法とその周辺とR
ブートストラップ法とその周辺とR
Daisuke Yoneoka
MCMCによる回帰分析@ベイズセミナー
MCMCによる回帰分析@ベイズセミナー
Takashi Yamane
PRML 1.6 情報理論
PRML 1.6 情報理論
sleepy_yoshi
PRMLの線形回帰モデル(線形基底関数モデル)
PRMLの線形回帰モデル(線形基底関数モデル)
Yasunori Ozaki
階層ベイズとWAIC
階層ベイズとWAIC
Hiroshi Shimizu
最急降下法
最急降下法
Akira Miyazawa
2 3.GLMの基礎
2 3.GLMの基礎
logics-of-blue
RStanとShinyStanによるベイズ統計モデリング入門
RStanとShinyStanによるベイズ統計モデリング入門
Masaki Tsuda
金融業界でよく使う統計学
金融業界でよく使う統計学
Nagi Teramo
統計的因果推論 勉強用 isseing333
統計的因果推論 勉強用 isseing333
Issei Kurahashi
ノンパラベイズ入門の入門
ノンパラベイズ入門の入門
Shuyo Nakatani
第8章 ガウス過程回帰による異常検知
第8章 ガウス過程回帰による異常検知
Chika Inoshita
「統計的学習理論」第1章
「統計的学習理論」第1章
Kota Matsui
AHC-Lab M1勉強会 論文の読み方・書き方
AHC-Lab M1勉強会 論文の読み方・書き方
Shinagawa Seitaro
状態空間モデルの考え方・使い方 - TokyoR #38
状態空間モデルの考え方・使い方 - TokyoR #38
horihorio
猫でも分かりたい線形回帰の自由度
猫でも分かりたい線形回帰の自由度
YukinoriKambe
Rパッケージ“KFAS”を使った時系列データの解析方法
Rパッケージ“KFAS”を使った時系列データの解析方法
Hiroki Itô
PRML輪読#2
PRML輪読#2
matsuolab
2 4.devianceと尤度比検定
2 4.devianceと尤度比検定
logics-of-blue
DARM勉強会第3回 (missing data analysis)
DARM勉強会第3回 (missing data analysis)
Masaru Tokuoka
幾何を使った統計のはなし
幾何を使った統計のはなし
Toru Imai
OpenGLと行列
OpenGLと行列
miyosuda
OpenGLと行列
OpenGLと行列
miyosuda
More Related Content
What's hot
MCMCによる回帰分析@ベイズセミナー
MCMCによる回帰分析@ベイズセミナー
Takashi Yamane
PRML 1.6 情報理論
PRML 1.6 情報理論
sleepy_yoshi
PRMLの線形回帰モデル(線形基底関数モデル)
PRMLの線形回帰モデル(線形基底関数モデル)
Yasunori Ozaki
階層ベイズとWAIC
階層ベイズとWAIC
Hiroshi Shimizu
最急降下法
最急降下法
Akira Miyazawa
2 3.GLMの基礎
2 3.GLMの基礎
logics-of-blue
RStanとShinyStanによるベイズ統計モデリング入門
RStanとShinyStanによるベイズ統計モデリング入門
Masaki Tsuda
金融業界でよく使う統計学
金融業界でよく使う統計学
Nagi Teramo
統計的因果推論 勉強用 isseing333
統計的因果推論 勉強用 isseing333
Issei Kurahashi
ノンパラベイズ入門の入門
ノンパラベイズ入門の入門
Shuyo Nakatani
第8章 ガウス過程回帰による異常検知
第8章 ガウス過程回帰による異常検知
Chika Inoshita
「統計的学習理論」第1章
「統計的学習理論」第1章
Kota Matsui
AHC-Lab M1勉強会 論文の読み方・書き方
AHC-Lab M1勉強会 論文の読み方・書き方
Shinagawa Seitaro
状態空間モデルの考え方・使い方 - TokyoR #38
状態空間モデルの考え方・使い方 - TokyoR #38
horihorio
猫でも分かりたい線形回帰の自由度
猫でも分かりたい線形回帰の自由度
YukinoriKambe
Rパッケージ“KFAS”を使った時系列データの解析方法
Rパッケージ“KFAS”を使った時系列データの解析方法
Hiroki Itô
PRML輪読#2
PRML輪読#2
matsuolab
2 4.devianceと尤度比検定
2 4.devianceと尤度比検定
logics-of-blue
DARM勉強会第3回 (missing data analysis)
DARM勉強会第3回 (missing data analysis)
Masaru Tokuoka
幾何を使った統計のはなし
幾何を使った統計のはなし
Toru Imai
What's hot
(20)
MCMCによる回帰分析@ベイズセミナー
MCMCによる回帰分析@ベイズセミナー
PRML 1.6 情報理論
PRML 1.6 情報理論
PRMLの線形回帰モデル(線形基底関数モデル)
PRMLの線形回帰モデル(線形基底関数モデル)
階層ベイズとWAIC
階層ベイズとWAIC
最急降下法
最急降下法
2 3.GLMの基礎
2 3.GLMの基礎
RStanとShinyStanによるベイズ統計モデリング入門
RStanとShinyStanによるベイズ統計モデリング入門
金融業界でよく使う統計学
金融業界でよく使う統計学
統計的因果推論 勉強用 isseing333
統計的因果推論 勉強用 isseing333
ノンパラベイズ入門の入門
ノンパラベイズ入門の入門
第8章 ガウス過程回帰による異常検知
第8章 ガウス過程回帰による異常検知
「統計的学習理論」第1章
「統計的学習理論」第1章
AHC-Lab M1勉強会 論文の読み方・書き方
AHC-Lab M1勉強会 論文の読み方・書き方
状態空間モデルの考え方・使い方 - TokyoR #38
状態空間モデルの考え方・使い方 - TokyoR #38
猫でも分かりたい線形回帰の自由度
猫でも分かりたい線形回帰の自由度
Rパッケージ“KFAS”を使った時系列データの解析方法
Rパッケージ“KFAS”を使った時系列データの解析方法
PRML輪読#2
PRML輪読#2
2 4.devianceと尤度比検定
2 4.devianceと尤度比検定
DARM勉強会第3回 (missing data analysis)
DARM勉強会第3回 (missing data analysis)
幾何を使った統計のはなし
幾何を使った統計のはなし
Similar to Rで学ぶ逆変換(逆関数)法
OpenGLと行列
OpenGLと行列
miyosuda
OpenGLと行列
OpenGLと行列
miyosuda
ディジタル信号処理 課題解説(その3) 2014年度版
ディジタル信号処理 課題解説(その3) 2014年度版
dsp_kyoto_2014
Gurobi python
Gurobi python
Mikio Kubo
Rのoptim関数でロバスト回帰(LMSとLAV)
Rのoptim関数でロバスト回帰(LMSとLAV)
wada, kazumi
ウェーブレット木の世界
ウェーブレット木の世界
Preferred Networks
数学教材(中間発表)
数学教材(中間発表)
Mizuguchi1205
回帰
回帰
Shin Asakawa
生物統計特論3資料 2006 ギブス MCMC isseing333
生物統計特論3資料 2006 ギブス MCMC isseing333
Issei Kurahashi
6 Info Theory
6 Info Theory
melvincabatuan
情報オリンピック夏合宿発表
情報オリンピック夏合宿発表
Kazuma Mikami
ディジタル信号処理の課題解説 その3
ディジタル信号処理の課題解説 その3
noname409
代数トポロジー入門
代数トポロジー入門
Tatsuki SHIMIZU
Lispでやる記号微分
Lispでやる記号微分
Keiichi Watanabe
ARC#003D
ARC#003D
nullmineral
Java数値(浮動小数点)課題勉強会
Java数値(浮動小数点)課題勉強会
Tetsuya Yoshida
Or seminar2011final
Or seminar2011final
Mikio Kubo
統計的学習の基礎 5章前半(~5.6)
統計的学習の基礎 5章前半(~5.6)
Kota Mori
Deep learning _linear_algebra___probablity___information
Deep learning _linear_algebra___probablity___information
takutori
シンギュラリティを知らずに機械学習を語るな
シンギュラリティを知らずに機械学習を語るな
hoxo_m
Similar to Rで学ぶ逆変換(逆関数)法
(20)
OpenGLと行列
OpenGLと行列
OpenGLと行列
OpenGLと行列
ディジタル信号処理 課題解説(その3) 2014年度版
ディジタル信号処理 課題解説(その3) 2014年度版
Gurobi python
Gurobi python
Rのoptim関数でロバスト回帰(LMSとLAV)
Rのoptim関数でロバスト回帰(LMSとLAV)
ウェーブレット木の世界
ウェーブレット木の世界
数学教材(中間発表)
数学教材(中間発表)
回帰
回帰
生物統計特論3資料 2006 ギブス MCMC isseing333
生物統計特論3資料 2006 ギブス MCMC isseing333
6 Info Theory
6 Info Theory
情報オリンピック夏合宿発表
情報オリンピック夏合宿発表
ディジタル信号処理の課題解説 その3
ディジタル信号処理の課題解説 その3
代数トポロジー入門
代数トポロジー入門
Lispでやる記号微分
Lispでやる記号微分
ARC#003D
ARC#003D
Java数値(浮動小数点)課題勉強会
Java数値(浮動小数点)課題勉強会
Or seminar2011final
Or seminar2011final
統計的学習の基礎 5章前半(~5.6)
統計的学習の基礎 5章前半(~5.6)
Deep learning _linear_algebra___probablity___information
Deep learning _linear_algebra___probablity___information
シンギュラリティを知らずに機械学習を語るな
シンギュラリティを知らずに機械学習を語るな
More from Nagi Teramo
第86回R勉強会@東京 LT資料
第86回R勉強会@東京 LT資料
Nagi Teramo
Rでを作る
Rでを作る
Nagi Teramo
Reproducebility 100倍 Dockerマン
Reproducebility 100倍 Dockerマン
Nagi Teramo
healthplanetパッケージで体組成データを手に入れて健康な体も手に入れる
healthplanetパッケージで体組成データを手に入れて健康な体も手に入れる
Nagi Teramo
闇と向き合う
闇と向き合う
Nagi Teramo
機械の体を手に入れるのよ、鉄郎!!!
機械の体を手に入れるのよ、鉄郎!!!
Nagi Teramo
続わかりやすいパターン認識11章(11.1 - 11.4)
続わかりやすいパターン認識11章(11.1 - 11.4)
Nagi Teramo
5分でわかるかもしれないglmnet
5分でわかるかもしれないglmnet
Nagi Teramo
Ultra Lightning Talk × 3
Ultra Lightning Talk × 3
Nagi Teramo
F#談話室(17)
F#談話室(17)
Nagi Teramo
RFinanceJはじめました
RFinanceJはじめました
Nagi Teramo
東京R非公式おじさんが教える本当に気持ちいいパッケージ作成法
東京R非公式おじさんが教える本当に気持ちいいパッケージ作成法
Nagi Teramo
お前の逐モン、GETだぜ!
お前の逐モン、GETだぜ!
Nagi Teramo
Trading volume mapping R in recent environment
Trading volume mapping R in recent environment
Nagi Teramo
~knitr+pandocではじめる~『R MarkdownでReproducible Research』
~knitr+pandocではじめる~『R MarkdownでReproducible Research』
Nagi Teramo
とある金融屋の統計技師が時系列解析してみた
とある金融屋の統計技師が時系列解析してみた
Nagi Teramo
可視化周辺の進化がヤヴァイ~rChartsを中心として~
可視化周辺の進化がヤヴァイ~rChartsを中心として~
Nagi Teramo
「plyrパッケージで君も前処理スタ☆」改め「plyrパッケージ徹底入門」
「plyrパッケージで君も前処理スタ☆」改め「plyrパッケージ徹底入門」
Nagi Teramo
Tokyo.R 白熱教室「これからのRcppの話をしよう」
Tokyo.R 白熱教室「これからのRcppの話をしよう」
Nagi Teramo
レプリカ交換モンテカルロ法で乱数の生成
レプリカ交換モンテカルロ法で乱数の生成
Nagi Teramo
More from Nagi Teramo
(20)
第86回R勉強会@東京 LT資料
第86回R勉強会@東京 LT資料
Rでを作る
Rでを作る
Reproducebility 100倍 Dockerマン
Reproducebility 100倍 Dockerマン
healthplanetパッケージで体組成データを手に入れて健康な体も手に入れる
healthplanetパッケージで体組成データを手に入れて健康な体も手に入れる
闇と向き合う
闇と向き合う
機械の体を手に入れるのよ、鉄郎!!!
機械の体を手に入れるのよ、鉄郎!!!
続わかりやすいパターン認識11章(11.1 - 11.4)
続わかりやすいパターン認識11章(11.1 - 11.4)
5分でわかるかもしれないglmnet
5分でわかるかもしれないglmnet
Ultra Lightning Talk × 3
Ultra Lightning Talk × 3
F#談話室(17)
F#談話室(17)
RFinanceJはじめました
RFinanceJはじめました
東京R非公式おじさんが教える本当に気持ちいいパッケージ作成法
東京R非公式おじさんが教える本当に気持ちいいパッケージ作成法
お前の逐モン、GETだぜ!
お前の逐モン、GETだぜ!
Trading volume mapping R in recent environment
Trading volume mapping R in recent environment
~knitr+pandocではじめる~『R MarkdownでReproducible Research』
~knitr+pandocではじめる~『R MarkdownでReproducible Research』
とある金融屋の統計技師が時系列解析してみた
とある金融屋の統計技師が時系列解析してみた
可視化周辺の進化がヤヴァイ~rChartsを中心として~
可視化周辺の進化がヤヴァイ~rChartsを中心として~
「plyrパッケージで君も前処理スタ☆」改め「plyrパッケージ徹底入門」
「plyrパッケージで君も前処理スタ☆」改め「plyrパッケージ徹底入門」
Tokyo.R 白熱教室「これからのRcppの話をしよう」
Tokyo.R 白熱教室「これからのRcppの話をしよう」
レプリカ交換モンテカルロ法で乱数の生成
レプリカ交換モンテカルロ法で乱数の生成
Recently uploaded
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Toru Tamaki
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
sn679259
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Toru Tamaki
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
WSO2
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
CRI Japan, Inc.
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
atsushi061452
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Recently uploaded
(10)
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Rで学ぶ逆変換(逆関数)法
1.
第27回R勉強会@東京(#TokyoR)
で学ぶ『逆(変換|関数)法』 @teramonagi
2.
自己紹介 • @teramonagi • 乱数を撒くお仕事 •
C++・R・python・VBA・F# • 数理物理・データ分析 季節の変わり目ですね。 ご自愛ください。 2
3.
もくじ • 乱数を撒くお仕事からの逆変換法 • 教科書的な逆変換法の説明 •
Rで学ぶ逆変換法 • まとめ 3
4.
自己紹介 • @teramonagi •乱数を撒くお仕事 • C++・R・python・VBA・F# 季節の変わり目ですね。
ご自愛ください。 4
5.
乱数を撒くお仕事
5
6.
乱数を撒くお仕事
6
7.
撒かれる乱数?
7
8.
おじちゃん! 乱数はどこ から仕入れ てくるの?
8
9.
八百屋・・・?
9
10.
魚屋・・・?
10
11.
雑貨屋・・・?
11
12.
困ったわね…どこか ら乱数を仕入れれ ばいいのかしら…
12
13.
君らエンジニア
じゃろう?無けれ ば作りなさい! CEOのアドバイス 13
14.
乱数作り方、いろいろ 逆変換法
マルコフ連鎖 モンテカルロ法 合成法 棄却採択法 重畳法 14
15.
(今回の)前提条件 [0,1]の一様乱数はある
|| メルセンヌ・ツイスター || runif() 15
16.
[0,1]の一様乱数(runif)
60 40 count 20 0 0.00 0.25 0.50 0.75 1.00 16
17.
逆変換法とは
[0,1]の乱数 (例:0.1153…, 0.892…, 0.722…) u 変換 1 FX FX からの乱数 x 17
18.
逆変換法とは
[0,1]の乱数 (例:0.1153…, 0.892…, 0.722…) u 1 変換 FX 正規 指数 分布 二項 分布 分布 x 18
19.
逆変換法とは 1. [0,1]区間の一様乱数 u
を取得 1 2. x FX u として x を計算 3. x は累積分布関数 FXからの乱数 [0,1)の乱数 変換 FX からの乱数 (例:0.1153…, 0.892…, 0.722…) 1 u FX x 19
20.
(例)逆変換法で指数分布 • 累積分布関数 FX
x 1 e x • 累積分布関数の逆関数を計算 u : FX x 1 e x 1 log1 u Xに x ついて解く F 1 X u 1 log1 u 20
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. #plot 8. 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.
(例)逆変換法で指数分布
0.5 Rで作った頻度分布 VS 実際の密度関数 0.4 0.3 density 0.2 0.1 0.0 0.0 2.5 5.0 7.5 10.0 x 22
23.
何でこれでい いんだろう?
23
24.
もくじ • 乱数を撒くお仕事からの逆変換法 • 教科書的な逆変換法の説明 •
Rで学ぶ逆変換法 • まとめ 24
25.
計算機シミュレーションのための
確率分布乱数生成法 2.2.1 逆関数法(Inverse Transform method) 25
26.
パターン認識と機械学習 下
11.1.1 標準的な分布 26
27.
Rによるモンテカルロ法入門
2.1.2 逆変換 27
28.
自然科学の統計学 11.4.1 逆関数法
28
29.
そんなテキストらによくある証明
Pr X x Pr FX U x 1 PrU FX x FX x 29
30.
(昔の俺)お手上げ
30
31.
Yahoo知恵袋にも仲間が!
31
32.
もう少し直感的な 説明が欲しいわね
32
33.
もくじ • 乱数を撒くお仕事からの逆変換法 • 教科書的な逆変換法の説明 •
Rで学ぶ逆変換法 • まとめ 33
34.
お題 カジノにいるSEが作る ルーレット(二択)
34
35.
ルーレットの設定(当選確率)
50% 50% あたり はずれ 35
36.
うちのカジノで使う からさ~逆変換法 でちょいちょいっと 作ってよ!ちょい ちょいっと!
36
37.
ええと・・・「0~1」まで の数値をあたり・はず れ共に50%になるよう に変換するにはどうし たら・・・
37
38.
逆変換法的に考えて・・・
[0,1]の乱数 (例:0.1153…, 0.892…, 0.722…) u 変換 1 FX あたり:50% はずれ:50% x 38
39.
単純に考えて・・・ あたり
はずれ 0.0 0.5 1.0 39
40.
アルゴリズム的に考えて・・・
あたり if 0.0 u 0.5 , 結果 はずれ, if 0.5 u 1.0 u~Uniform(0,1) 40
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.
こんな感じで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
44.
10回回した結果 6
Result 4 あたり 2 はずれ 0 あたり はずれ Result 44
45.
100回回した結果 40
Result あたり 20 はずれ 0 あたり はずれ Result 45
46.
1000回回した結果 500 400
Result 300 あたり 200 はずれ 100 0 あたり はずれ Result 46
47.
大体50%ずつの確 率になってるね! いいじゃないか! 儲けさせてもらっ たよ!
47
48.
今月末は還元祭だ から確率いじって よ!逆変換法で ちょいちょいだろ! ちょいちょい!
48
49.
ルーレットの設定(当選確率)
30% あたり 70% はずれ 49
50.
ええと・・・「0~1」まで の数値をから、あたり 70%・はずれが30%に なるように変換するに はどうしたら・・・
50
51.
単純に考えて・・・ あたり
はずれ 0.0 0.7 1.0 51
52.
アルゴリズム的に考えて・・・
あたり if 0.0 u 0.7 , 結果 はずれ, if 0.7 u 1.0 u~Uniform(0,1) 52
53.
R的に考えて・・・ 1.example.2 <- function(u) 2.{ 3.
if(u < 0.7){ 4. "あたり" 5. } 6. else{ 7. "はずれ" 8. } 9.} 53
54.
徹夜でコーディング54
55.
1000回回した結果 600
Result 400 あたり 200 はずれ 0 あたり はずれ Result 55
56.
大体あたり70%・ はずれ30%の確 率になってるね! いいじゃないか!
56
57.
プロジェクトの終了
57
58.
束の間の休息…
58
59.
But… 更なる嵐の予感…
59
60.
新アトラクション導入! くじ引き(三択)
60
61.
新しくくじ引き入れ るからさ~逆変換 法でちょいちょ いっと頼むわ! ちょいちょいっと!
61
62.
くじ引きの設定
33% 33% 青 赤 緑 33% 62
63.
ええと・・・「0~1」まで の数値をから、青 33%・赤33% ・緑33%で 出るように変換するに はどうしたら・・・
63
64.
逆変換法的に考えて・・・
[0,1]の乱数 (例:0.1153…, 0.892…, 0.722…) u 変換 1 FX 青: 33% 赤:33%, 緑: 33% x 64
65.
単純に考えて・・・ 青
赤 緑 0.0 0.333… 0.666… 1.0 (1/3) (2/3) 65
66.
アルゴリズム的に考えて・・・
1 青 , if 0 u 3 1 2 くじ 赤 , if u 3 3 緑 , if 3 u 1 2 u~Uniform(0,1) 66
67.
R的に考えて・・・ 1.example.3 <- function(u) 2.{ 3.
if(u < 1/3){ 4. "青" 5. }else if((1/3 <= 13 u) & (u < 2/3)){ 1 6. "赤" 3 7. }else if((2/3 <= u) & (u < 1.0)){ 8. "緑" 9. } 10.} 67
68.
徹夜でコーディング68
69.
1000回回した結果 300
Result 青 200 赤 100 緑 0 青 赤 緑 Result 69
70.
いいね!
70
71.
もっと儲けたい からさ~くじに 細工してくれ る?なぁに逆変 換法でちょい ちょいだろ?
71
72.
くじ引きの設定
10% 青 70% 20% 赤 緑 72
73.
ええと・・・「0~1」まで の数値をから、青 10%・赤20%・緑70%で 出るように変換するに はどうしたら・・・
73
74.
逆変換法的に考えて・・・
[0,1]の乱数 (例:0.1153…, 0.892…, 0.722…) u 変換 1 FX 青: 10% 赤:20%, 緑: 70% x 74
75.
単純に考えて・・・ 青 赤
緑 0 0.1 0.3 1.0 (10%) (30%) 75
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.
R的に考えて・・・ 1.example.4 <- function(u) 2.{ 3.
if(u < 0.1){ 4. "青" 5. }else if((0.1 <= 13 u) & (u < 0.3)){ 1 6. "赤" 3 7. }else if((0.3 <= u) & (u < 1.0)){ 8. "緑" 9. } 10.} 77
78.
徹夜でコーディング78
79.
1000回回した結果 600
Result 青 400 赤 200 緑 0 青 赤 緑 Result 79
80.
儲かりすぎて笑い が止まらないよ! ハハハッハ!!
80
81.
あのちょいちょい野郎 がいる限り僕のデスマ は止まらない・・・なん とか先回りしないと!
81
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.
赤, if 0.1
u 0.3 83
84.
0.1や0.3って 数字はどこか ら来たのかし ら・・・
84
85.
赤, if 0.1
u 0.3 85
86.
青が出る確率(10%)+
赤が出る確率(20%) 赤, if 0.1 u 0.3 青が出る確率(10%) 86
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.
緑, if 0.3
u 1.0 88
89.
青が出る確率(10%)+
赤が出る確率(20%)+ 緑が出る確率(70%) 青が出る確率(10%)+ 赤が出る確率(20%) 緑, if 0.3 u 1.0 89
90.
何か法則性が ありそうだな…
90
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.
結果を文字式へ
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.
確率を文字式へ
x1 , if 0 u Px1 X x2 , if Px1 u Px1 Px2 x3 , if Px1 Px2 u Px1 Px2 Px3 u~Uniform(0,1) 93
94.
x1
, if 0 u Px1 x2 , if Px1 u Px1 Px2 x3 , if Px1 Px2 u Px1 Px2 Px3 94
95.
和の記号(Σ)を使って書く
x 0 1 , if Pxi u Pxi 1 i1 i 1 x 2 i1 1 2 , if Pxi u Pxi i 1 x 2 3 , if Pxi u Pxi 3 i1 i 1 95
96.
和の記号(Σ)を使って書く
x 0 1 , if Pxi u Pxi 1 i1 i 1 x 2 i1 1 2 , if Pxi u Pxi i 1 x 2 3 , if pi u pi 自分の番号(2)から1引いた数値 3 i1 i 1 (1)と同じ番号(2)で和をとる 96
97.
素晴らしい洞察力! でわ、これを一般化 してみよう!
97
98.
題材 くじ引き(N択)
98
99.
x1
くじ引きの設定 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21 x22 x23 x24 x25 x26 x27 … x_N-1 xN 99
100.
単純に考えて・・・ x1 x2 x3
x4 x5 x6 xN 1 xN ・・・ ・・・ 0 1.0 100
101.
N択くじの2番目結果は? x
21 2 i1 2 , if Pxi u Pxi i 1 自分の番号から1引いた数値と 同じ番号で和をとる 101
102.
N択くじのn番目結果は? x
n 1 n i1 n , if Pxi u Pxi i 1 自分の番号から1引いた数値と 同じ番号で和をとる 102
103.
Nを∞にすると・・・ 離散
連続 xn x P x px dx
104.
Nを∞にすると・・・ x
n i1 n 1 i 1 n , if Pxi u Pxi x x x , if px'dx' u px'dx' 104
105.
FX x
px'dx' u x 1 両辺に F X かける x F u 1 X 105
106.
逆変換法とは(再掲) 1. [0,1]区間の一様乱数 u
を取得 1 2. x FX u として x を計算 3. x は累積分布関数 FXからの乱数 [0,1)の乱数 変換 FX からの乱数 (例:0.1153…, 0.892…, 0.722…) 1 u FX x 106
107.
逆変換法とは(再掲) 1. [0,1]区間の一様乱数 u
を取得 1 2. x FX u として x を計算 3. x は累積分布関数 FXからの乱数 [0,1)の乱数 変換 FX からの乱数 (例:0.1153…, 0.892…, 0.722…) 1 u FX x 107
108.
ぎゃ、逆変換法 じゃねーか!
108
109.
Congratulation!!!
109
110.
まとめ 二択・三択の練習問題
一般化 N択のくじ引き N→∞ 逆変換法 110
Download now