Сгенерируйте сопоставленные данные Используя порядковую корреляцию

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

Шаг 1. Сгенерируйте случайные числа Пирсона.

Сгенерируйте 1 000 случайных чисел от двух различных распределений Пирсона, с помощью pearsrnd функция. Первое распределение имеет значения параметров mu равный 0, сигма, равная 1, скос, равный 1, и эксцесс, равный 4. Второе распределение имеет значения параметров mu равный 0, сигма, равная 1, скос, равный 0,75, и эксцесс, равный 3.

rng default  % For reproducibility
p1 = pearsrnd(0,1,-1,4,1000,1);
p2 = pearsrnd(0,1,0.75,3,1000,1);

На данном этапе, p1 и p2 независимые выборки от их соответствующих распределений Пирсона и являются некоррелироваными.

Шаг 2. Постройте случайные числа Пирсона.

Создайте scatterhist постройте, чтобы визуализировать случайные числа Пирсона.

figure
scatterhist(p1,p2)

Гистограммы показывают предельные распределения для p1 и p2. scatterplot показывает совместное распределение для p1 и p2. Отсутствие шаблона к scatterplot показывает тот p1 и p2 независимы.

Шаг 3. Сгенерируйте случайные числа с помощью Гауссовой связки.

Используйте copularnd чтобы сгенерировать 1 000 коррелированых случайных чисел с коэффициентом корреляции равняются –0.8, с помощью Гауссовой связки. Создайте scatterhist постройте, чтобы визуализировать случайные числа, сгенерированные из связки.

u = copularnd('Gaussian',-0.8,1000);
figure
scatterhist(u(:,1),u(:,2))

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

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

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

Используйте sort функционируйте, чтобы отсортировать случайные числа связки от самого маленького до самого большого, и возвратить вектор индексов, описывающих перестроенный порядок чисел.

[s1,i1] = sort(u(:,1));
[s2,i2] = sort(u(:,2));

s1 и s2 содержите числа из первых и вторых столбцов связки, u, отсортированный в порядке от самого маленького до самого большого. i1 и i2 векторы индекса, которые описывают перестроенный порядок элементов в s1 и s2. Например, если первое значение в отсортированном векторном s1 третье значение в исходном неотсортированном векторе, затем первое значение в векторе индекса i1 3.

Шаг 5. Преобразуйте выборки Пирсона с помощью порядковой корреляции Копьеносца.

Создайте два нулевых вектора, x1 и x2, это одного размера с отсортированными векторами связки, s1 и s2. Сортировка значений в p1 и p2 от самого маленького до самого большого. Поместите значения в x1 и x2, в том же порядке как индексы i1 и i2 сгенерированный путем сортировки случайных чисел связки.

x1 = zeros(size(s1));
x2 = zeros(size(s2));

x1(i1) = sort(p1);
x2(i2) = sort(p2);

Шаг 6. Постройте коррелированые случайные числа Пирсона.

Создайте scatterhist постройте, чтобы визуализировать сопоставленные данные Пирсона.

figure
scatterhist(x1,x2)

Гистограммы показывают крайние распределения Пирсона для каждого столбца данных. scatterplot показывает совместное распределение p1 и p2, и указывает, что данные теперь негативно сопоставляются.

Шаг 7. Подтвердите содействующие значения порядковой корреляции Копьеносца.

Подтвердите, что коэффициент порядковой корреляции Копьеносца является тем же самым для случайных чисел связки и коррелированых случайных чисел Пирсона.

copula_corr = corr(u,'Type','spearman')
copula_corr = 2×2

    1.0000   -0.7858
   -0.7858    1.0000

pearson_corr = corr([x1,x2],'Type','spearman')
pearson_corr = 2×2

    1.0000   -0.7858
   -0.7858    1.0000

Порядковая корреляция Копьеносца является тем же самым для связки и случайных чисел Пирсона.

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

| |

Похожие темы