Я обдумываю создание тестовых данных с интересными распределениями.
Я понимаю методы генерации равномерного и нормального распределения, но как я могу преобразовать произвольную функцию в функцию взвешенного распределения?Моя терминология здесь может быть неправильной - я не буду возражать против исправлений.
Например, скажем, у меня есть функция с течением времени, которая обычно увеличивается, но периодически повторяется.«Активность», которая обычно увеличивается в течение года, но еженедельные циклы с резким спадом по выходным.
Функция может быть алгебраической, но было бы полезно, если бы она могла быть любой функцией (императивной (?) С дискретной/ прерывистые диапазоны (?)).
Если кривая активности из примера равна f(t)
, я мог бы просто сделать f(t)
средним и обеспечить фиксированное стандартное отклонение, но как я выбрал t
если это тоже нуждается в распространении?Я не хочу перебирать T
, я просто хочу выбирать из T
случайным образом с соответствующими распределениями.
Таким образом, функция TestActivityGenerator () принимает параметры для кривых между, скажем,диапазон абсолютных дат, еще одна кривая по неделям и еще одна кривая по часам дня, и она выплевывает DateTimes в правильных распределениях.Результаты не генерируются в каком-либо определенном порядке.
Другой сценарий может быть: генератор вещественных чисел, который, скажем, в 1,665 раза больше выплевывает простое число, чем составное.Никаких хитростей в этом нет - есть тривиальные способы сделать это, но я ищу общее решение.
Спасибо!
Редактировать: я изменил формулировку названия навзгляните на проблему под другим углом - как мы можем вернуться от кривой наилучшего соответствия к случайным выборкам, которые согласуются с этой кривой?Если у меня есть гистограмма данных фондового рынка, как я могу генерировать данные, которые распространяются аналогично реальным данным.Не только попарные значения, которые усредняют одно и то же значение для каждого t
, потому что они не пройдут другие тесты на случайность.