Ядерное распределение является непараметрическим представлением функции плотности вероятности (PDF) случайной переменной. Можно использовать ядерное распределение, когда параметрическое распределение не может правильно описать данные, или, когда это необходимо, постараться не делать предположения о распределении данных. Ядерное распределение задано функцией сглаживания и значением полосы пропускания, которые управляют гладкостью получившейся кривой плотности.
Средством оценки плотности ядра является предполагаемая PDF случайной переменной. Для любых вещественных значений x формулой средства оценки плотности ядра дают
откуда x1, x2, …, xn является случайными выборками неизвестного распределения, n является объемом выборки, функция сглаживания ядра, и h является полосой пропускания.
Функция сглаживания ядра задает форму кривой, используемой, чтобы сгенерировать PDF. Подобно гистограмме ядерное распределение создает функцию, чтобы представлять вероятностное распределение с помощью выборочных данных. Но различающийся гистограмма, которая помещает значения в дискретные интервалы, ядерное распределение, суммирует функции сглаживания компонента для каждого значения данных, чтобы произвести сглаженную, непрерывную кривую вероятности. Следующие графики показывают визуальное сравнение гистограммы и ядерного распределения, сгенерированного от тех же выборочных данных.
Гистограмма представляет вероятностное распределение путем установления интервалов и размещения каждого значения данных в соответствующий интервал.
SixMPG = [13;15;23;29;32;34]; figure histogram(SixMPG)
Из-за этого подхода количества интервала гистограмма производит функцию плотности дискретной вероятности. Эта сила быть неподходящим для определенных приложений, таким как генерация случайных чисел от подходящего распределения.
В качестве альтернативы ядерное распределение создает PDF путем создания отдельной кривой плотности вероятности для каждого значения данных, затем подведения итогов плавных кривых. Этот подход создает одну сглаженную, непрерывную функцию плотности вероятности для набора данных.
figure pdSix = fitdist(SixMPG,'Kernel','Width',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
Меньшие пунктирные кривые являются вероятностными распределениями для каждого значения в выборочных данных, масштабировал для соответствия графику. Большая твердая кривая является полным ядерным распределением 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
Чтобы изучить эффект различных функций сглаживания ядра на форме получившейся оценки 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
Каждая кривая плотности использует те же входные данные, но применяет различную функцию сглаживания ядра, чтобы сгенерировать PDF. Оценки плотности примерно сопоставимы, но форма каждой кривой варьируется немного. Например, ядро поля производит кривую плотности, которая меньше является гладкой, чем другие.
Выбор значения полосы пропускания управляет гладкостью получившейся кривой плотности вероятности. Этот график показывает оценку плотности для MPG
данные, с помощью нормальной функции сглаживания ядра с тремя различными полосами пропускания.
% Create kernel distribution objects load carbig pd1 = fitdist(MPG,'kernel'); pd2 = fitdist(MPG,'kernel','Width',1); pd3 = fitdist(MPG,'kernel','Width',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
Полоса пропускания по умолчанию, которая теоретически оптимальна для оценки плотности для нормального распределения [1], производит довольно плавную кривую. Определение меньшей полосы пропускания производит очень грубую кривую, но показывает, что может быть два главных peaks в данных. Определение большей полосы пропускания производит кривую, почти идентичную функции ядра, и так является гладким этим, это затеняет потенциально важные функции данных.
[1] Лучник, A. W. и А. Аццалини. Прикладные методы сглаживания для анализа данных. Нью-Йорк: Oxford University Press Inc., 1997.
ksdensity
| KernelDistribution