Как я могу отобразить эмпирический PDF моих векторных данных 100x1 в Matlab? - PullRequest
3 голосов
/ 29 сентября 2010

У меня есть данные размером 100x1. Как я могу показать его эмпирический PDF в Matlab? Кроме того, если я хочу сравнить PDF трех векторов на одном графике, то как это сделать?

Прямо сейчас я использую файл pdfplot.m для построения моего эмпирического файла PDF, однако, когда я хочу сравнить 3 распределения с помощью 'hold on', то, во-первых, он не работает, а во-вторых, все распределения в том же цвете. Спасибо!

РЕДАКТИРОВАТЬ: Я не хочу строить cdf.

Ответы [ 2 ]

12 голосов
/ 30 сентября 2010

То, что вы ищете, это Оценка плотности ядра (также известная как Parzen windows ). Он реализован в функции KSDENSITY в наборе инструментов статистики:

data = randn(100,1);
ksdensity(data)

alt text

Приведенная выше запись в Википедии содержит пример MATLAB с использованием функции передачи на FEX

4 голосов
/ 29 сентября 2010

истор

hist(data)

или, если вы хотите больше контроля над тем, как он представлен, используйте:

[n,x] = hist(data);
plot(x,n,'rx-'); %# just an example, plot the pdf with red x's and a line, 
                 %# instead of bars
figure;
plot(x, cumsum(n)/sum(n)); %# plot the CDF
...