Генерация данных Используя гибкие семейства распределений

Этот пример показывает, как сгенерировать данные с помощью систем Пирсона и Джонсона дистрибутивов.

Пирсон и системы Джонсона

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

Ввод данных

Следующие параметры задают каждого члена систем Пирсона и Джонсона.

  • Среднее значение — предполагаемый mean

  • Стандартное отклонение — Предполагаемый std

  • Скошенность — предполагаемый skewness

  • Эксцесс — предполагаемый kurtosis

Эти статистические данные могут также быть вычислены с функцией moment. Система Джонсона, в то время как на основе этих четырех параметров, более естественно описана с помощью квантилей, оцененных функцией quantile.

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

Как пример, загрузите данные в carbig.mat, который включает переменную MPG, содержащую измерения расхода бензина для каждого автомобиля.

load carbig
MPG = MPG(~isnan(MPG));
histogram(MPG,15)

Следующие два раздела моделируют распределение с членами систем Пирсона и Джонсона, соответственно.

Генерация данных Используя систему Пирсона

Статистик Карл Пирсон создал систему или семейство, дистрибутивов, который включает уникальное распределение, соответствующее каждой допустимой комбинации среднего значения, стандартного отклонения, скошенности и эксцесса. Если вы вычисляете демонстрационные значения в течение каждого из этих моментов от данных, легко найти распределение в системе Пирсона, которая совпадает с этими четырьмя моментами и сгенерировать случайную выборку.

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

X=γ+δΓ(Z-ξλ)

где Z стандартная нормальная случайная переменная, Γ преобразование, и γ, δ, ξ, и λ масштабные коэффициенты и параметры положения. Четвертый случай, 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

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

| |

Для просмотра документации необходимо авторизоваться на сайте