2017-02-01 4 views
1

私は分布からの描画をシミュレートする必要がある確率変数$ X $のpdf $ f(x)= 4x^3 $を持っています。

私のソリューションは、PDF(第一の問題)からの累積分布関数を見つけることで構成されています

> pdf <- function(x){4*x^3} 
> cdf <- integrate(pdf,lower=0,upper=x) 
Error in integrate(pdf, lower = 0, upper = x) : object 'x' not found 

私はCDFする$ U $を得れば、私はX = F^-1(U)$を設定します$。私は、pdfが$ \ alpha = 4 $と$ \ beta = 1 $のベータ分布に従っていることに気付きました。

inverse beta functionで$ F^-1 $を見つけるのが最善でしょうか? Rのベータ関数の逆関数を簡単に見つける方法はありますか?

+1

'pdf'をベータ版と指定しているので、' rbeta'を使ってサンプルしてください。 –

+0

パーフェクト!だから 'rbeta(1、shape1 = 4、shape2 = 1)'?与えられたpdfが既知の分布に従わない場合。ランダムな変数(R)から描画をシミュレートするにはどうすればよいですか? – ozarka

+0

ヘルプファイル '?rbeta'を参照して、同じパラメータ化を使用していることを確認してください。任意のpdfについて、解析的に解けなければ、常に拒否サンプリングを使用することができます。 –

答えて

0

pdfがベータ版であることがわかったので、サンプルとしてrbetaを使用してください。

s1 <- rbeta(5000,4,1) 

分布が非標準で解析的に解決できない場合は、拒否サンプリングを使用できます。あなたのpdfがベータであることを知らず、積分/逆算の仕方はわかりません。

私たちはあなたを私たちのPDF下

dp <- pdf(p) 

を濃度値を計算し、ランダムに比例して拒否に/

s2 <- p[runif(50000) < dp/max(dp)] 

を受け入れる私たちの提案分布から

p <- runif(50000) 

を描く

pdf <- function(x) 4*x^3 # on [0,1] 

ファーストthを見つけるはずですヒストグラム、または好ましくはqqプロットを用いて、s1およびs2の分布を比較することができる。

関連する問題