exponenta event banner

Распространение ядра

Обзор

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

Модуль оценки плотности ядра

Оценщиком плотности ядра является оценочный pdf случайной величины. Для любых действительных значений x формула оценки плотности ядра задается

f ^ h (x) =1nh∑i=1nK (x xih),

где x1, x2,..., xn - случайные выборки из неизвестного распределения, n - размер выборки, K (·) - функция сглаживания ядра, h - полоса пропускания.

Функция сглаживания ядра

Функция сглаживания ядра определяет форму кривой, используемой для создания pdf. Подобно гистограмме, распределение ядра строит функцию для представления распределения вероятности с использованием данных выборки. Но в отличие от гистограммы, которая помещает значения в дискретные ячейки, распределение ядра суммирует функции сглаживания компонентов для каждого значения данных, чтобы получить гладкую непрерывную кривую вероятности. На следующих графиках показано визуальное сравнение гистограммы и распределения ядра, сгенерированного на основе одних и тех же данных выборки.

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

SixMPG = [13;15;23;29;32;34];
figure
histogram(SixMPG)

Figure contains an axes. The axes contains an object of type histogram.

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

Альтернативно, распределение ядра строит pdf, создавая индивидуальную кривую плотности вероятности для каждого значения данных, затем суммируя гладкие кривые. Этот подход создает одну плавную непрерывную функцию плотности вероятности для набора данных.

figure
pdSix = fitdist(SixMPG,'Kernel','BandWidth',4);
x = 0:.1:45;
ySix = pdf(pdSix,x);
plot(x,ySix,'k-','LineWidth',2)

% Plot each individual pdf and scale its appearance on the plot
hold on
for i=1:6
    pd = makedist('Normal','mu',SixMPG(i),'sigma',4);
    y = pdf(pd,x);
    y = y/6;
    plot(x,y,'b:')
end
hold off

Figure contains an axes. The axes contains 7 objects of type line.

Меньшие пунктирные кривые - это распределения вероятностей для каждого значения в данных выборки, масштабированные в соответствии с графиком. Большая сплошная кривая является общим распределением ядра SixMPG данные. Функция сглаживания ядра относится к форме тех меньших кривых компонентов, которые имеют нормальное распределение в этом примере.

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

% Set plot specifications
hname = {'normal' 'epanechnikov' 'box' 'triangle'};
colors = {'r' 'b' 'g' 'm'};
lines = {'-','-.','--',':'};

% Generate a sample of each kernel smoothing function and plot
data = [0];
figure
for j=1:4
    pd = fitdist(data,'kernel','Kernel',hname{j});
    x = -3:.1:3;
    y = pdf(pd,x);
    plot(x,y,'Color',colors{j},'LineStyle',lines{j})
    hold on
end
legend(hname)
hold off

Figure contains an axes. The axes contains 4 objects of type line. These objects represent normal, epanechnikov, box, triangle.

Чтобы понять влияние различных функций сглаживания ядра на форму результирующей оценки pdf, сравните графики данных о пробеге (MPG) от carbig.mat используя каждую доступную функцию ядра.

load carbig
% Set plot specifications
hname = {'normal' 'epanechnikov' 'box' 'triangle'};
colors = {'r' 'b' 'g' 'm'};
lines = {'-','-.','--',':'};

% Generate kernel distribution objects and plot
figure
for j=1:4
    pd = fitdist(MPG,'kernel','Kernel',hname{j});
    x = -10:1:60;
    y = pdf(pd,x);
    plot(x,y,'Color',colors{j},'LineStyle',lines{j})
    hold on
end
legend(hname)
hold off

Figure contains an axes. The axes contains 4 objects of type line. These objects represent normal, epanechnikov, box, triangle.

Каждая кривая плотности использует одни и те же входные данные, но применяет другую функцию сглаживания ядра для создания pdf. Оценки плотности примерно сопоставимы, но форма каждой кривой незначительно изменяется. Например, ядро коробки создает менее гладкую кривую плотности, чем остальные.

Пропускная способность

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

% Create kernel distribution objects
load carbig
pd1 = fitdist(MPG,'kernel');
pd2 = fitdist(MPG,'kernel','BandWidth',1);
pd3 = fitdist(MPG,'kernel','BandWidth',5);

% Compute each pdf
x = -10:1:60;
y1 = pdf(pd1,x);
y2 = pdf(pd2,x);
y3 = pdf(pd3,x);

% Plot each pdf
plot(x,y1,'Color','r','LineStyle','-')
hold on
plot(x,y2,'Color','k','LineStyle',':')
plot(x,y3,'Color','b','LineStyle','--')
legend({'BandWidth = Default','BandWidth = 1','BandWidth = 5'})
hold off

Figure contains an axes. The axes contains 3 objects of type line. These objects represent BandWidth = Default, BandWidth = 1, BandWidth = 5.

Полоса пропускания по умолчанию, теоретически оптимальная для оценки плотностей для нормального распределения [1], создает достаточно гладкую кривую. Указание меньшей полосы пропускания создает очень грубую кривую, но показывает, что в данных могут быть два основных пика. Определение большей полосы пропускания создает кривую, почти идентичную функции ядра, и является настолько гладкой, что скрывает потенциально важные характеристики данных.

Ссылки

[1] Боуман, А. У. и А. Аззалини. Применяемые методы сглаживания для анализа данных. Нью-Йорк: Oxford University Press Inc., 1997.

См. также

|

Связанные темы