В этом примере показано, как создать объект распределения треугольной вероятности на основе данных выборки и создать случайные числа для использования в моделировании.
Введите вектор данных time, которая содержит наблюдаемый промежуток времени (в секундах), в течение которого 10 различных автомобилей останавливались на автодорожной будке.
time = [6 14 8 7 16 8 23 6 7 15];
Данные показывают, что, в то время как большинство автомобилей остановились на 6-16 секунд, один выброс остановился на 23 секунды.
Оцените параметры треугольного распределения на основе данных образца.
lower = min(time); peak = median(time); upper = max(time);
Треугольное распределение обеспечивает упрощенное представление распределения вероятности, когда данные выборки ограничены. Оцените нижнюю и верхнюю границы распределения, найдя минимальное и максимальное значения данных выборки. Для пикового параметра медиана может обеспечить лучшую оценку режима, чем среднее, поскольку данные включают отклонение.
Создайте объект распределения треугольной вероятности с использованием оценочных значений параметров.
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])

График показывает, что это треугольное распределение скошено вправо. Однако, поскольку оцененное пиковое значение является средним значением выборки, распределение должно быть симметричным относительно пика. Из-за перекоса эта модель может, например, генерировать случайные числа, которые кажутся необычно высокими по сравнению с исходными данными выборки.
Создайте случайные числа из этого распределения, чтобы смоделировать будущий поток трафика через будку.
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 потому что отклонение перекошило распределение вправо. Использование второго по величине значения в качестве параметра верхнего предела может смягчить последствия отклонения и создать набор случайных чисел, более похожих на исходные данные выборки.
Оцените верхнюю границу распределения, используя второе наибольшее значение в выборке данных.
sort_time = sort(time,'descend');
secondLargest = sort_time(2);Создайте новый объект распределения треугольной вероятности с использованием пересмотренных расчетных параметров и постройте график в формате 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])

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