Случайные значения, соответствующие кривой наилучшего соответствия

#random #statistics #probability #test-data

#Случайный #Статистика #вероятность #тестовые данные

Вопрос:

Я рассматриваю возможность генерации тестовых данных с интересными распределениями.

Я понимаю методы генерации равномерного распределения и нормального распределения, но как я могу преобразовать произвольную функцию во взвешенную функцию распределения? Моя терминология может быть здесь неточной — я не буду возражать против исправлений.

Например, предположим, что у меня есть функция с течением времени, которая обычно увеличивается, но периодически циклически. «Активность», которая обычно увеличивается в течение года, но еженедельные циклы с резким спадом по выходным.

Функция может быть алгебраической, но было бы полезно, если бы она могла быть любой функцией (императивной (?) с дискретными / прерывистыми диапазонами (?)).

Если кривая активности из примера f(t) , я мог бы просто получить f(t) среднее значение и предоставить фиксированное стандартное отклонение, но как мне выбрать t , если оно тоже нуждается в распределении? Я не хочу перебирать T , я просто хочу выбирать T случайным образом с соответствующими распределениями.

Таким образом, функция TestActivityGenerator() принимает параметры для кривых, скажем, между абсолютным диапазоном дат, другой кривой по неделям и другой кривой по часам в день, и выдает даты и времени в соответствующих распределениях. Результаты не генерируются в каком-либо определенном порядке.

Другим сценарием может быть: генератор действительных чисел, который, скажем, в 1,652 раза с большей вероятностью выдаст простое число, чем составное. Никаких трюков с этим — есть тривиальные способы сделать это, но я ищу общее решение.

Спасибо!

Редактировать: я изменил формулировку заголовка, чтобы взглянуть на проблему под другим углом — как мы можем вернуться от кривой наилучшего соответствия к случайным выборкам, которые соответствуют этой кривой. Если у меня есть гистограмма данных фондового рынка, как я могу генерировать данные, которые распределяются аналогично реальным данным. Не просто попарно — значения, которые в среднем равны одному и тому же значению для каждого t , потому что они не пройдут другие тесты на случайность.

Комментарии:

1. Я не совсем понимаю, что вы пытаетесь сделать. Можете ли вы привести конкретный пример? В общем, вы можете превратить любой дискретный набор значений в вероятности, разделив каждое значение на сумму всех значений.

2. Спасибо @frankc. Предполагается, что действие является примером. Представьте, что каждая запись строки с отметкой даты и времени равна одной единице действия. Я хочу сгенерировать более 1 миллиона строк активности, которые распределяются последовательно с f (t). Возможно, я упускаю тривиальное решение.

3. Я все еще не совсем уверен, что понимаю, но является ли основной проблемой то, что вы ожидаете цикличности / сезонности в своих данных и хотите повторить это? Если да, то почему бы не выполнить выборку из разных функций распределения в зависимости от даты, для которой вы генерируете данные?

4. Это было бы хорошо, если бы у меня была дата . Я мог бы определить количество активности даты за день. Но у меня нет даты, и я не хочу повторять даты. Я хочу, чтобы даты (и время) выбирались случайным образом с описанным смещением из диапазона, скажем, с 2000 по 2010 год.

5. так почему бы просто не выбрать дату сначала из некоторого распределения. Затем сопоставьте эту дату с одним из какого-либо другого набора других распределений на основе ваших предполагаемых циклов?