FC2ブログ

 日々の研究生活での出来事,考えたことなどのメモ。あるいはお知らせ。

  お知らせのナビゲーター   トップページ > スポンサー広告> 統計 > モンテカルロ法によるワイブル乱数の発生  

スポンサーサイト

-- - --/-- [--] - --:--

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

モンテカルロ法によるワイブル乱数の発生

2009 - 03/20 [Fri] - 14:22

 ワイブル分布は製品の寿命をモデル化する際によく用いられますが,今日はこの分布から観測値を発生させる方法について考えてみます。まず,ワイブル分布のpdf(確率密度関数)ですが,それは以下のような形で与えられています。このときxの台は0<x<∞です。



 このような複雑な密度関数から乱数を発生させるのは難しそうに見えますが,以下のような便利な定理を利用すれば,実はとても簡単なのです。

********************************************************************
<定理>
 区間(0,1)の一様分布にしたがう確率変数Uを考える。このとき連続的な分布関数Fによって定義される確率変数X = F-1(U)は,関数Fが表す分布にしたがう。
********************************************************************

 この定理は一様乱数さえあれば,任意の分布からの乱数発生が行えるという大変便利なものなのですが,上記の定理が利用できるのは分布の逆関数がクローズドフォームで得られるときに限ります。なので,もしその分布の逆関数が代数的に計算不可能なら,上記の定理の代わりに『受容・棄却サンプリング』を利用しなければなりません。

 しかし,幸いにも今回はクローズドフォームで分布関数の逆関数が求まります。まずワイブル分布のpdfより,そのcdf(累積分布関数)は以下のようになります。



 このcdfより逆関数を求めると,



となりますので,θの値を決定して一様乱数をuに代入してやればワイブル分布から観測値が発生できるというわけです。以下に統計パッケージRを用いた,ワイブル分布から観測値を発生させる関数を示しておきます。

<ワイブル乱数発生のための関数(R用)>


Weibull<-function(n,theta){
u <- runif(n)
x <- ((-1)*(theta^3)*(log(1-u)))^(1/3)
return(x)
}


 これを実際に使用する場合は以下のようにします。なお,ここではn=10,θ=3としています。

<Rによるワイブル乱数の発生>

> Weibull(10,3)
[1] 3.880583 1.367621 3.188247 1.375268 2.074450
[6] 3.617344 2.854109 3.502729 4.190585 2.357751
スポンサーサイト

コメントの投稿





管理者にだけ表示を許可する

トラックバック

http://tarotwork.blog40.fc2.com/tb.php/16-2baee52e

 | HOME | 

プロフィール

管理者

 専門は心理統計学で構造方程式モデリングを中心に探索的分析法の研究をしています。

 ・著書:5冊
 ・翻訳:2冊
 ・査読論文:4本
 ・紀要論文:2本
 ・報告書等:2本
 ・国際発表:5回
 ・国内発表:12回

最近の記事+コメント

カテゴリ

全記事一覧表示

過去の記事

カウンタ

現在の閲覧者数

カレンダー

07 | 2018/08 | 09
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 -

ブログ内検索

リンク

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。