Учитывая функцию random()
, которая возвращает значение с плавающей точкой, равномерно распределенное между 0 и 1.Как выглядит случайное() * random() распределение?
Что тип распределения функции random() * random()
?
Учитывая функцию random()
, которая возвращает значение с плавающей точкой, равномерно распределенное между 0 и 1.Как выглядит случайное() * random() распределение?
Что тип распределения функции random() * random()
?
# test.py
import numpy as np
import matplotlib.pyplot as plt
N = 10**6
plt.hist(np.random.uniform(size=N) * np.random.uniform(size=N), bins=50, normed=True)
plt.show()
Запуск python test.py
производит:
Тип Product Distribution, он не является однородным.
Преобразование у = х * х. x имеет функцию распределения вероятностей fx (x) = 1 в диапазоне 0 < = x < = 1. Кумулятивная функция распределения x тогда Fx (x) = x в том же диапазоне.
КОР у есть Fy (у < = Y) = Fx (SQRT (Y)) = SQRT (Y), 0 < < = Y = 1.
Теперь дифференцироваться, чтобы получить FY (у) = 1/(2 * sqrt (y)) в том же диапазоне.
РЕДАКТИРОВАТЬ:
выше решение предполагает, что «случайное() * случайная()» использует ту же величину в зависимости для каждого розыгрыша. Если вместо этого вы хотите, чтобы умноженные значения были независимыми друг от друга, математика более активна, но по-прежнему приемлема.
Теперь
y1 = x1 * x2, где FX1 (х1) = 1 на 0 < = x1 < = 1 и аналогично для x2.
Предполагая независимость между x1 и x2, совместная PDF является
fx1x2 (x1, x2) = FX1 (x1) * fx2 (x2).
Внесите дополнительную переменную y2, чтобы иметь дело с преобразованием двух-переменных совместных PDF-файлов. Для хороших вычислений пусть y2 = x2.
Таким образом, наша система
g1 (x1, x2) = x1 * x2
g2 (x1, x2) = x2
Как и в более простом случае, нам нужно инвертировать функцию , в настоящее время, решая как для y1 и y2:
h2 (y1, y2) = х2 (= Y2)
h1 (y1, y2) = у1/х2 = у1/у2
Нам понадобится якобиеву
J = (PG1/РХ1) (PG2/PX2) - (PG1/PX2) (PG2/x1)
, где "р" является частной производной.
Таким образом, в нашем случае
J = (x2) (1) - (x1), (0) = x2.
Формула преобразования (из любого интро Исчисление на основе текста вероятности) является
fy1y2 (y1, y2) = fx1x2 (x1, x2)/J
что в нашем случае упрощается до
1/y2 на интервале 0 < = y1/y2 < = 1 и 0 < = y2 < = 1.
Наконец, чтобы получить fy1 (y1) мы интегрируем совместное распределение по нежелательному переменной y2, принимая заботиться, чтобы остаться в правильном диапазоне у1/у2 < = 1 или y1 = y2 <, так как у2> = 0.
FY1 (у1) = Интеграл от y1 до 1 из (1/у2) йу2 = -ln (y1) на интервале 0 < = у1 < = 1.
Обратите внимание, что в обоих случаях распределение продукта взвешивают в пользу меньших значений, так как фракция (0 = < < х = 1) раз фракцию - меньшая фракция.