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

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

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

РЕДАКТИРОВАТЬ: я не хочу, чтобы сюжет Cdf.

2 ответа

Решение

исторический

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

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

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

альтернативный текст

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

Другие вопросы по тегам