探しているのは、円盤上の均一分布であり、これを単位円(の内部)とする。パラメータ化できます( r 、θ ) だから私たちは持っています 0 ≤ R ≤ 1 そして 0 ≤ θ ≤ 2 π。させることができますθ に関係なく、均一な分布を持っている Rの分布を見つける必要があります R円上に均一な分布を与えます。確率は面積に比例する必要があるので、0 ≤ ≤ B ≤ 1 それ
P(≤ R ≤ B )α πb2- πa2
そして取る
a = 0、
b = 1 与える
FR(r )=r2。次に密度は導関数です
fR(r )= 2 r。の結合密度
R そして
θ その後になる
f(r 、θ )=12個のπ⋅ 2 、R =rπ
これは簡単にシミュレートできます。2つの独立したユニフォームの合計は、「テント」分布と呼ばれることもある三角形(対称)の分布を持っています。テントの左側のみが必要です。これは、テントの上部(モード)の垂直線で分布をミラーリングすることで取得できます。Rでこれをシミュレートすると、次のようになります。
シミュレーションのRコードは次のとおりです。
set.seed(7*11*13)
rleft_tri <- function(n) {
T <- runif(n)+runif(n)
val <- ifelse(T <= 1,T, 2-T)
val
}
rdisk <- function(n) {
val <- cbind( rleft_tri(n), 2*pi*runif(n) )
colnames(val) <- c("R","Theta")
val
}
#
library(plotrix)
par(bg="antiquewhite")
points <- rdisk(10000) plot(c(-1,1),c(-1,1),type="n",axes=FALSE,xlab="",ylab="",xlim=c(-1.1,1.1),ylim=c(-1.1,1.1))
draw.circle(x=c(0,0),y=c(0,0),radius=1,col="aquamarine")
points(with(as.data.frame(points),cbind(R*cos(Theta), R*sin(Theta))),pch=".",col="red",cex=2)
これは@Greg Snowの古い回答の特別なケースであることに注意してください。「左側のテント」の分布はパラメーター付きのベータ分布なので a = 2 、b = 1。しかし、それをシミュレートするための上記のコードは、ベータからシミュレーションするための一般的なコードよりもおそらく高速です(またはCでプログラムされている場合はそうなります)。