Получить эмпирическое распределение переменной в Matlab?

Я пытаюсь получить эмпирическое распределение двух разных серий, p и q.

Я использовал синтаксис [f1,x]=ecdf(p) а также [f2,x]=ecdf(q), Хотя это две совершенно разные серии, они дают одинаковые значения для f1 а также f2, Я думаю, это из-за matlab сгенерированные узловые точки, x, который выбран по умолчанию и одинаков для двух серий. Как правильно генерировать ecdf?

С p и q определены следующим образом:

p=[3.827880237 3.843230114 3.832979798 3.814851094 3.798070125 3.793802374 3.790420184 3.758288905 3.703854270 3.699633917 3.722435113 3.685122405 3.671987586 3.677439264 3.673511977 3.706842154 3.69299597];

q=[3.832763324 3.848230872 3.835789699 3.819249605 3.802654468 3.801538272 3.800867956 3.763986927 3.711618941 3.703275334 3.744550651 3.688129173 3.673511977 3.681603045 3.679081612 3.716737782 3.702782359];

1 ответ

Вы перезаписываете свои x, которые отличаются, если вы используете следующий код, у вас будут разные кривые.

[f1,x1]=ecdf(p);
[f2,x2]=ecdf(q);

figure; plot(f1, x1, 'b', f2, x2, 'r');

Совокупное распределение отличается, как и ожидалось:

введите описание изображения здесь

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