Сгенерируйте случайные числа с помощью треугольного распределения

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

Шаг 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])

Figure contains an axes. The axes with title Time Spent at Tollbooth contains an object of type line.

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

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

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

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])

Figure contains an axes. The axes with title Time Spent at Tollbooth contains an object of type line.

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

Шаг 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. Они также ближе к медиане выборки, чем случайные числа, сгенерированные распределением, которое использовало выбросы для оценки его верхнего предела. Этот пример не удаляет выбросы из выборочных данных при вычислении медианы. Другие опции оценки параметра включают удаление выбросов из выборочных данных в целом или использование среднего значения или режима выборочных данных в качестве пикового значения.

См. также

| |

Похожие темы