Rリポジトリ

このページには,講義・セミナー等で用いるスクリプトなどを置いてあります.参考にしていただければ幸いです.Rのエディタに張り付ければ動きます.

プログラミングは本職ではないので,相当な「ひよコード」(という言葉があるのを,先日知りました)ですが,ご容赦ください(インデントとか,コメントとか,適切でないと思われます).

なお,これらのスクリプトを使用して得られた結果に対しては,当方ではいかなる責任も負いかねますので,ご使用にあたっては自己責任にてお願いいたします.


1.Weibull plot: ワイブル確率紙(完全データ)

Rでワイブルプロットを行うスクリプトです.csvファイル(ファイル名はデフォルトではweidata.csvです)にデータセットをおいて,それを読みに行く形式にしています.まだ,打ち切りなどには対応できてません...実行した後,コマンドラインから「weiplot(プロットするデータの列)」を実行してください.


2.Weakest link: 最弱リンクモデルの解説用シミュレーション

独立に同一の分布に従うk個の変数について,その最小値をワイブルプロットするスクリプトです.最弱リンクのイメージをつかむために作成しました.スクリプトの前半に,対数正規乱数とワイブル乱数を発生させる行があります.どちらかをコメントアウトして走らせてください.


3.中心極限定理 その1: 定理の解説用シミュレーション(一様分布より)

「互いに独立で,同一の分布に従う変数の和の分布は正規分布に近づく」という,中心極限定理を直感的に理解するシミュレーションです.0~6の範囲で発生させた一様乱数をk個足したものをn個発生させて,ヒストグラムを描きます.


4.中心極限定理 その2: 定理の解説用シミュレーション(混合分布より)

中心極限定理を直感的に理解するシミュレーション,その2です.0~1の範囲の一様分布と,5~6の範囲の一様分布を,ある確率(mratio)で混合した混合分布からk個の乱数を発生させ,その和を求めます.その数値をn個発生させて,ヒストグラムを描きます.


5.BXII plot: Burr type XII確率紙(完全データ)

Burr type XII分布は,二つの形状パラメータを持つ分布です.1.Weibull plotと同様に,csvファイル(デフォルトではtwostep.csv)にデータセットをおいて,一列分を読み込んで分析します.第1の形状パラメータ(α)を求める第1ステップと,第2の形状パラメータおよび尺度パラメータを求める第2ステップの2段階で分析することから,2ステップ確率プロットと呼んだり,BXII(びーえっくすつー)プロットと呼んでいます.

詳しくは,S. Yokogawa; “Two-step probability plot for parameter estimation of lifetime distribution affected by defect clustering in time-dependent dielectric breakdown”, Japanese Journal of Applied Physics, Vol.56, pp. 07KG02-1-6 (2017).をご覧ください.


6.円周率をもとめるMCシミュレーション

MCシミュレーションでパラメータ推定を行うという感覚を説明するための,簡単なシミュレーションです.1×1の面積の中にランダムに点を発生させ,そのうち,x^2+y^2<1の中に入るものの割合から円周率を求めます(円の1/4の部分だけを考えます). なお,実際に円周率を求める際には,この方法は効率が悪すぎるので使われません.あくまで,「パラメータをシミュレーションで求める」という点を体感するためにお使いください.


7.1次元のMCMCシミュレーション

メトロポリスアルゴリズムによるMCMCを行うシミュレーションです.標準コーシー分布が発生するのが確認できます.初期値は,わざと分布の中心付近から遠いところから始めていますが,すぐに分布の中心付近に集中してゆくのが分かるかと思います.


8.MCMCによる正規分布のパラメータ推定

正規分布に従う観測に対して,メトロポリスアルゴリズムでパラメータの事後分布を発生させ,そこからパラメータの推定値を得るシミュレーションです.こちらも,初期値はわざと分布の中心から外れたところにおいて,開始しています.平均と分散の事後分布を求め,その中央値を推定値として返すようにしています. ヒストグラムは標準化した平均の事後分布ですので,t分布の密度関数を重ね書きしています.


上記のスクリプトは,R3.5.0で作成,動作を確認しています.また,RStudioを使用しています.