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