Сгенерируйте случайные числа Используя треугольное распределение

Этот пример показывает, как создать треугольное распределение вероятностей, основанное на объектах на выборочных данных, и сгенерировать случайные числа для использования в симуляции.

Шаг 1. Введите выборочные данные.

Введите вектор данных time, который содержит наблюдаемый отрезок времени (в секундах) что 10 различных автомобилей, остановленных в магистральной городской тюрьме.

time = [6 14 8 7 16 8 23 6 7 15];

Данные показывают что, в то время как большинство автомобилей, остановленных на 6 - 16 секунд, один выброс, остановленный на 23 секунды.

Шаг 2. Оцените параметры распределения.

Оцените параметры треугольного распределения от выборочных данных.

lower = min(time);
peak = median(time);
upper = max(time);

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

Шаг 3. Создайте объект распределения вероятностей.

Создайте треугольный объект распределения вероятностей использование предполагаемых значений параметров.

pd = makedist('Triangular','a',lower,'b',peak,'c',upper)
pd = 
  TriangularDistribution

A = 6, B = 8, C = 23

Вычислите и постройте PDF треугольного распределения.

x = 0:.1:230;
y = pdf(pd,x);
plot(x,y)
title('Time Spent at Tollbooth')
xlabel('Time (seconds)')
xlim([0 30])

График показывает, что это треугольное распределение скашивается направо. Однако, поскольку предполагаемое пиковое значение является демонстрационной медианой, распределение должно быть симметричным о пике. Из-за ее скоса эта сила модели, например, генерирует случайные числа, которые кажутся необычно высокими когда по сравнению с начальными выборочными данными.

Шаг 4. Генерация случайных чисел.

Сгенерируйте случайные числа от этого распределения, чтобы моделировать будущий поток трафика через городскую тюрьму.

rng('default');  % For reproducibility
r = random(pd,10,1)
r = 10×1

   16.1265
   18.0987
    8.0796
   18.3001
   13.3176
    7.8211
    9.4360
   12.2508
   19.7082
   20.0078

Возвращенные значения в r являются временем в секундах, которые следующие 10 моделируемых автомобилей проводят в городской тюрьме. Эти значения кажутся высокими по сравнению со значениями в исходном векторе данных time, потому что выброс скосил распределение направо. Используя второе по высоте значение, когда параметр верхнего предела может смягчить последствия выброса и сгенерировать набор случайных чисел, более подобных начальным выборочным данным.

Шаг 5. Пересмотрите оцененные параметры.

Оцените верхний контур распределения с помощью второго по величине значения в выборочных данных.

sort_time = sort(time,'descend');
secondLargest = sort_time(2);

Шаг 6. Создайте новый объект распределения и постройте PDF.

Создайте новый треугольный объект распределения вероятностей использование пересмотренных предполагаемых параметров и постройте его PDF.

figure
pd2 = makedist('Triangular','a',lower,'b',peak,'c',secondLargest);
y2 = pdf(pd2,x);
plot(x,y2,'LineWidth',2)
title('Time Spent at Tollbooth')
xlabel('Time (seconds)') 
xlim([0 30])

График показывает, что это треугольное распределение все еще немного скашивается направо. Однако это намного более симметрично о пике, чем распределение, которое использовало максимальное значение выборочных данных, чтобы оценить верхний предел.

Шаг 7. Сгенерируйте новые случайные числа.

Сгенерируйте новые случайные числа от пересмотренного распределения.

rng('default'); % For reproducibility
r2 = random(pd2,10,1)
r2 = 10×1

   12.1501
   13.2547
    7.5937
   13.3675
   10.5768
    7.3967
    8.4026
    9.9792
   14.1562
   14.3240

Эти новые значения более тесно напоминают тех в исходном векторе данных time. Они также ближе к демонстрационной медиане, чем случайные числа, сгенерированные распределением, которое использовало выброс, чтобы оценить его верхний предел. Этот пример не удаляет выброс из выборочных данных при вычислении медианы. Другие опции для оценки параметра включают выбросы удаления от выборочных данных в целом или использование среднего значения или режима выборочных данных как пиковое значение.

Смотрите также

| |

Похожие темы