![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Arcsine DistributionBoost , Math Toolkit 2.5.0 , Distributions
|
![]() |
Note |
---|---|
Всегда естьдвазначения длярежима, приx_minи приx_max, по умолчанию 0 и 1, поэтому вместо этого мы поднимаем исключениедомен_error. На этих крайностях PDF-файлы бесконечны, а CDF-файлы равны нулю или единству. |
Распределение арки полезно для описанияСлучайных прогулок, (включая пьяные прогулки)Брауновское движение,процессы Вайнера,испытания Бернуллии их применение для решения фондового рынка и другихразрушительных азартных игр.
Случайная вариацияxограниченаx_minиx_max(для нашего «стандартного» распределения 0 и 1), и обычно представляет собой некоторую фракцию. Для любых другихx_minиx_maxфракция может быть получена изxс использованием
фракция = (x - x_min) / (x_max - x_min)
Самый простой пример — бросать головы и хвосты справедливой монетой и моделировать риск проигрыша или выигрыша. Ходячие (молекулы, пьяные...), движущиеся слева или справа от центральной линии, являются еще одним распространенным примером.
Случайная вариацияx— это доля времени, затраченного на «победную» сторону. Если половина времени тратится на «победную» сторону (а другая половина — на «потерянную»), тоx = 1/2.
Для большого количества бросков это моделируется (стандартным [0,1]) распределением арки, и PDF можно рассчитать таким образом:
std::cout << pdf(as, 1. / 2) << std::endl; // 0.637 // pdf has a minimum at x = 0.5
Из графика PDF ясно, чтоx= ½ этоминимумкривой, так что этонаименее вероятныйсценарий. (Это очень нелогично, учитывая, что справедливые ставки должныв конечном итогестать равными). Оказывается, чтов конечном итогене просто очень длинный, нобесконечный!
наиболее вероятныесценарии крайности, гдеx= 0 илиx= 1.
Если доля времени слева равна a¼, то это только немного более вероятно, потому что кривая довольно плоская.
std::cout << pdf(as, 1. / 4) << std::endl; // 0.735
Если мы рассмотрим честные игры с подбрасыванием монет, которые проводятся в течение 100 дней (гипотетически непрерывно, чтобы быть «в ограниченном количестве»), человек, выигравший после 5-го дня, не изменится в фракции 0,144 случаев.
Мы можем легко вычислить эту настройкуx= 5./100 = 0,05
std::cout << cdf(as, 0.05) << std::endl; // 0.144
Точно так же мы можем вычислить из доли 0,05/2 = 0,025 (половину уменьшенной, потому что мы рассматриваем как победителей, так и проигравших), соответствующей 1 - 0,025 или 97,5% игроков, (ходок, частиц...) натой же сторонепроисхождения.
std::cout << 2 * cdf(as, 1 - 0.975) << std::endl; // 0.202
(Использование комплемента дает немного больше ясности и позволяет избежать потенциальной потери точности, когдаxблизко к единице, см.почему комплементы?).
std::cout << 2 * cdf(complement(as, 0.975)) << std::endl; // 0.202
или мы можем изменить расчет, предположив долю времени с одной стороны, скажем, долю 0,2,
std::cout << quantile(as, 1 - 0.2 / 2) << std::endl; // 0.976 std::cout << quantile(complement(as, 0.2 / 2)) << std::endl; // 0.976
Резюме: Каждый раз, когда мы бросаем, шансы равны, поэтому в среднем у нас одинаковое изменение выигрыша и проигрыша.
Но этонеправдадля отдельной игры, где один будетв основном в плохом или хорошем патче.
Для большинства людей это противоречит здравому смыслу, но математика ясна, и игроки продолжают предоставлять доказательства.
Мораль: Если вы проиграли, покиньте игру. (Потому что шансы восстановиться к хорошему патчу невелики).
Следствие: Уходите, пока вы впереди?
Рабочий пример находится наarcsine_example.cpp, включая вывод образца.
Распределение арки сx_min = 0иx_max = 1является особым случаемБета-распределенияс α = 1/2 и β = 1/2.
Это распределение реализуется с использованием sqrt, sine, cos и arc sine и cos тригонометрических функций, которые обычно точны для несколькихмашинных эпсилон. Но все значения страдают отпотери значимости или ошибки отменыдля значенийx, близких кx_max. Например, для стандартного [0, 1] распределения дугкак, pdf симметричен относительно случайной вариацииx = 0,5, так что можно было бы ожидать<pdf(as,0.01)==
pdf(as,0.99)
>. Но по мере приближенияхк единству возрастаетпотеря значимости. Чтобы противодействовать этому, варианты комплемента CDF и квантиля реализуются с альтернативными выражениями, используя, потому что-1вместогреха-1. Пользователи должны видетьпочему дополнения?для указания того, когда следует избегать потери точности с помощью комплементов.
Результаты были протестированы на нескольких точных значениях пятен, вычисленныхWolfram Alpha, например:
N[PDF[arcsinedistribution[0, 1], 0.5], 50] 0.63661977236758134307553505349005744813783858296183
В следующей таблицеaиbявляются параметрамиx_minи #160; иx_max,xявляется случайной величиной,pявляется вероятностью и его дополнениемq = 1-p.
Функция |
Записки об осуществлении |
---|---|
поддержка |
x & #8712; [a, b), по умолчанию x & #8712; [0, 1] |
f(x; a, b) = 1/(π⋅√(x - a)⋅(b - x)) |
|
cdf |
F(x) = 2/π⋅sin-1(√(x - a)/(b - a)) |
cdf дополнения |
2/(π⋅cos-1(√(x - a)/(b - a))) |
квантиль |
-a⋅sin2(½π⋅p) + a + b⋅sin2(½π⋅p) |
квантиль от дополнения |
-a⋅cos2(½π⋅p) + a + b⋅cos2(½π⋅q) |
означает |
& #189; (a+b) |
медиана |
& #189; (a+b) |
Режим |
x & #8712; [a, b], так поднимает домен_error (возвращение NaN). |
Разница |
(b - a)2/ 8 |
Неровность |
0 |
Избыток куртоза |
-3/2 |
Куртоз |
kurtosis_excess + 3 |
Квантиль был рассчитан с использованием выражения, полученного с помощьюWolfram Alphaдля инвертирования формулы для CDF таким образом.
solve [p - 2/pi sin^-1(sqrt((x-a)/(b-a))) = 0, x]
который интерпретируется как
Solve[p - (2 ArcSin[Sqrt[(-a + x)/(-a + b)]])/Pi == 0, x, MaxExtraConditions -> Automatic]
и произведенное в результате выражение
x = -a sin^2((pi p)/2)+a+b sin^2((pi p)/2)
Спасибо Вольфраму за предоставленную услугу.
Статья Arcsine Distribution раздела Math Toolkit 2.5.0 Distributions может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
:: Главная :: Distributions ::
реклама |