Этот пример показывает, как сгенерировать данные с помощью систем распределений Пирсона и Джонсона.
Как описано в Работе с Распределениями вероятностей, выбор соответствующего параметрического семейства распределений для моделирования ваших данных может быть основан на априорном или апостериорном знании процесса производства данных, но выбор часто бывает трудным. Системы Пирсона и Джонсона могут сделать такой выбор ненужным. Каждая система является гибким параметрическим семейством распределений, которое включает широкую область значений форм распределения, и часто можно найти распределение в одной из этих двух систем, которое обеспечивает хорошее соответствие вашим данным.
Вход данных
Следующие параметры определяют каждый представитель систем Пирсона и Джонсона.
Эта статистика также может быть вычислена с помощью moment
функция. Система Джонсона, основанная на этих четырех параметрах, более естественно описывается с помощью квантилей, оцененных quantile
функция.
The pearsrnd
и johnsrnd
функции берут входные параметры, определяющие распределение (параметры или квантили, соответственно), и возвращают тип и коэффициенты распределения в соответствующей системе. Обе функции также генерируют случайные числа из заданного распределения.
В качестве примера загрузите данные в carbig.mat
, который включает переменную MPG
содержит измерения пробега газа для каждого автомобиля.
load carbig
MPG = MPG(~isnan(MPG));
histogram(MPG,15)
Следующие два раздела моделируют распределение с представителями систем Пирсона и Джонсона, соответственно.
Статистик Карл Пирсон разработал систему или семейство распределений, которая включает в себя уникальное распределение, соответствующее каждой действительной комбинации среднего, стандартного отклонения, перекоса и куртоза. Если вы вычисляете значения выборки для каждого из этих моментов из данных, легко найти распределение в системе Пирсона, которое совпадает с этими четырьмя моментами, и сгенерировать случайную выборку.
Система Пирсона встраивает семь основных типов распределения вместе в одну параметрическую среду. Он включает общие распределения, такие как normal и распределения, простые преобразования стандартных распределений, таких как сдвинутое и масштабированное бета-распределение и обратное гамма-распределение, и одно распределение - тип IV - это не простое преобразование какого-либо стандартного распределения.
Для заданного набора моментов существуют распределения, которых нет в системе, которые также имеют те же первые четыре момента, и распределение в системе Пирсона может быть плохо соответствующим вашим данным, особенно если данные являются мультимодальными. Но система действительно охватывает широкую область значений форм распределения, включая как симметричные, так и наклонные распределения.
Чтобы сгенерировать выборку из распределения Пирсона, которая тесно соответствует MPG
данные, просто вычислите четыре выборочных момента и обработайте их как параметры распределения.
moments = {mean(MPG),std(MPG),skewness(MPG),kurtosis(MPG)}; rng('default') % For reproducibility [r,type] = pearsrnd(moments{:},10000,1);
Необязательный второй выход от pearsrnd
указывает, какой тип распределения в системе Пирсона соответствует комбинации моментов.
type
type = 1
В этом случае pearsrnd
определил, что данные лучше всего описаны с помощью распределения Пирсона типа I, которое является сдвинутым, масштабированным бета-распределением.
Проверьте, что выборка напоминает исходные данные, наложив эмпирические совокупные функции распределения.
ecdf(MPG); [Fi,xi] = ecdf(r); hold on; stairs(xi,Fi,'r'); hold off
Статистик Норман Джонсон разработал другую систему распределений, которая также включает уникальное распределение для каждой допустимой комбинации среднего, стандартного отклонения, перекоса и куртоза. Однако, поскольку более естественно описывать распределения в системе Джонсона с помощью квантилей, работа с этой системой отличается от работы с системой Пирсона.
Система Джонсона основана на трех возможных преобразованиях нормальной случайной переменной плюс тождества преобразование. Три нетривиальных случая известны как SL
, SU
, и SB
, соответствующий экспоненциальным, логистическим и гиперболическим синусоидальным преобразованиям. Все три могут быть написаны как
где является стандартной нормальной случайной переменной, является преобразованием, и , , , и являются параметрами шкалы и местоположения. Четвертый случай, SN
, - преобразование тождеств.
Чтобы сгенерировать выборку из распределения Джонсона, которая соответствует MPG
сначала задайте четыре величины, в которые должны быть преобразованы четыре равномерно разнесенные стандартные нормальные величины -1,5, -0,5, 0,5 и 1,5. То есть вы вычисляете выборочные квантования данных для совокупных вероятностей 0,067, 0,309, 0,691 и 0,933.
probs = normcdf([-1.5 -0.5 0.5 1.5])
probs = 1×4
0.0668 0.3085 0.6915 0.9332
quantiles = quantile(MPG,probs)
quantiles = 1×4
13.0000 18.0000 27.2000 36.0000
Затем обработайте эти квантили как параметры распределения.
[r1,type] = johnsrnd(quantiles,10000,1);
Необязательный второй выход от johnsrnd
указывает, какой тип распределения в системе Джонсона соответствует квантилям.
type
type = 'SB'
Можно проверить, что выборка напоминает исходные данные, наложив эмпирические совокупные функции распределения.
ecdf(MPG); [Fi,xi] = ecdf(r1); hold on; stairs(xi,Fi,'r'); hold off
В некоторых приложениях может быть важно лучше соответствовать квантилям в некоторых областях данных, чем в других. Для этого задайте четыре стандартных нормальных величины с равномерными интервалами, при которых вы хотите соответствовать данным, вместо значений по умолчанию -1,5, -0,5, 0,5 и 1,5. Например, вы можете больше заботиться о том, чтобы соответствовать данным в правом хвосте, чем в левом, и поэтому вы задаете стандартные нормальные величины, которые подчеркивают правый хвост.
qnorm = [-.5 .25 1 1.75]; probs = normcdf(qnorm); qemp = quantile(MPG,probs); r2 = johnsrnd([qnorm; qemp],10000,1);
Однако, хотя новая выборка лучше соответствует исходным данным в правом хвосте, она намного хуже соответствует левому хвосту.
[Fj,xj] = ecdf(r2); hold on; stairs(xj,Fj,'g'); hold off