Пусть следует равномерному распределению, а - нормальному распределению. Что можно сказать о ? Есть ли для этого дистрибутив?Y X
Я нашел соотношение двух нормалей со средним нулем Коши.
Пусть следует равномерному распределению, а - нормальному распределению. Что можно сказать о ? Есть ли для этого дистрибутив?Y X
Я нашел соотношение двух нормалей со средним нулем Коши.
Ответы:
Пусть случайная величина с pdf f ( x ) :
где я предположил (это гнездо стандартного случая Uniform ( 0 , 1 ) ). [Различные результаты будут получены, если, скажем, параметр a < 0 , но процедура точно такая же. ]
Далее, пусть и W = 1 / Y с pdf g ( w ) :
Затем мы ищем pdf произведения , скажем, h ( v ) , которое определяется как:
где я использую mathStatica «s TransformProduct
функцию для автоматизации сурового gritties, и где Erf
обозначает функцию ошибки: http://reference.wolfram.com/language/ref/Erf.html
Все сделано.
Сюжеты
Вот два сюжета PDF:
Монте-Карло чек
Вот краткая проверка Монте-Карло для случая Plot 2, просто чтобы убедиться, что ошибки не возникли:
,σ=1,а=0,b=1
Синяя линия - это эмпирический PDF-файл Монте-Карло, а красная пунктирная линия - это теоретический PDF-файл выше. Выглядит хорошо :)
Можно найти распределение из первых принципов, гдеX∼U[0,1]иY∼N(μ,σ2). Рассмотрим кумулятивную функцию вероятностиZ:
Рассмотрим два случая и Y < 0 . Если Y > 0 , то X . Аналогично, если Y < 0, то X .
Вышеупомянутый интеграл можно оценить, используя следующую последовательность преобразований:
Этот ответ может быть проверен путем моделирования. Следующий скрипт в R выполняет эту задачу.
n <- 1e7
mu <- 2
sigma <- 4
X <- runif(n)
Y <- rnorm(n, mean=mu, sd=sigma)
Z <- X/Y
# Constrain range of Z to allow better visualization
Z <- Z[Z>-10]
Z <- Z[Z<10]
# The actual density
hist(Z, breaks=1000, xlim=c(-10,10), prob=TRUE)
# The theoretical density
r <- seq(from=-10, to=10, by=0.01)
p <- sigma/sqrt(2*pi)*( exp( -mu^2/(2*sigma^2)) - exp(-(1/r-mu)^2/(2*sigma^2)) ) + mu*( pnorm((1/r-mu)/sigma) - pnorm(-mu/sigma) )
lines(r,p, col="red")
Вот несколько графиков для проверки:
set.seed(1);x=rbeta(10000000,1,1)/rnorm(10000000,7);hist(x,n=length(x)/50000)
runif
runif
? Это кажется более идиоматичным и, кажется, также быстрее)
hist(x,n=length(x),xlim=c(-10,10))
) (около 96% распределения, похоже, находится в этих пределах)