johnsrnd

Система Джонсона случайных чисел

Синтаксис

r = johnsrnd(quantiles,m,n)
r = johnsrnd(quantiles)
[r,type] = johnsrnd(...)
[r,type,coefs] = johnsrnd(...)

Описание

r = johnsrnd(quantiles,m,n) возвращает m-by- n матрица случайных чисел, полученная из распределения в системе Джонсона, которая удовлетворяет спецификации квантиля, заданной quantiles. quantiles является четырехэлементным вектором квантилей для желаемого распределения, которые соответствуют стандартным нормальным квантилям [-1,5 -0,5 0,5 1,5]. Другими словами, вы задаете распределение, из которого можно нарисовать случайные значения путем обозначения квантилей, которые соответствуют совокупным вероятностям [0,067 0,309 0,691 0,933]. quantiles может также быть 2-by- 4 матрица, первая строка которой содержит четыре стандартных нормальных квантиля, и вторая строка которой содержит соответствующие квантилы необходимого распределения. Стандартные нормальные величины должны располагаться равномерно.

Примечание

Потому что r является случайной выборкой, ее выборочные величины обычно несколько отличаются от заданных распределительных величин.

r = johnsrnd(quantiles) возвращает скалярное значение.

r = johnsrnd(quantiles,m,n,...) или r = johnsrnd(quantiles,[m,n,...]) возвращает m-by- nоколо-... массив.

[r,type] = johnsrnd(...) возвращает тип заданного распределения в системе Джонсона. type является 'SN', 'SL', 'SB', или 'SU'. Задайте m и n чтобы нуль идентифицировать тип распределения, не генерируя случайных значений.

Четыре типа распределения в системе Джонсона соответствуют следующим преобразованиям нормальной случайной переменной:

  • 'SN' - Преобразование тождеств (нормальное распределение)

  • 'SL' - Экспоненциальное преобразование (lognormal distribution)

  • 'SB' - Логистическое преобразование (ограниченное)

  • 'SU' - Гиперболическое преобразование синуса (неограниченное)

[r,type,coefs] = johnsrnd(...) возвращает коэффициенты coefs преобразования, которое определяет распределение. coefs является [gamma, eta, epsilon, lambda]. Если z является стандартной нормальной случайной переменной и h является одним из преобразований, определенных выше, r = lambda*h((z-gamma)/eta)+epsilon является случайным вариантом от типа распределения, соответствующего h.

Примеры

свернуть все

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

Сгенерируйте случайные значения с длинными хвостами, чем стандартный нормальный.

rng default;  % For reproducibility
r = johnsrnd([-1.7 -.5 .5 1.7],1000,1);
figure;
qqplot(r);

Figure contains an axes. The axes with title QQ Plot of Sample Data versus Standard Normal contains 3 objects of type line.

Сгенерируйте случайные значения с перекосом вправо.

r = johnsrnd([-1.3 -.5 .5 1.7],1000,1);
figure;
qqplot(r);

Figure contains an axes. The axes with title QQ Plot of Sample Data versus Standard Normal contains 3 objects of type line.

Сгенерируйте случайные значения, которые хорошо соответствуют некоторым выборочным данным в правом хвосте.

load carbig;
qnorm = [.5 1 1.5 2];
q = quantile(Acceleration, normcdf(qnorm));
r = johnsrnd([qnorm;q],1000,1);
[q;quantile(r,normcdf(qnorm))]
ans = 2×4

   16.7000   18.2086   19.5376   21.7263
   16.6986   18.2220   19.9078   22.0918

Определите тип распределения и коэффициенты.

[r,type,coefs] = johnsrnd([qnorm;q],0)
r =

     []
type = 
'SU'
coefs = 1×4

    1.0920    0.5829   18.4382    1.4494

Введенный в R2006a