Извлечение значений распределения Matlab

#matlab #histogram #distribution

#matlab #гистограмма #распределение

Вопрос:

Приведен пример на веб-сайте:

 r = normrnd(10,1,100,1);
histfit(r,6)
  

Для подобранного распределения возможно ли извлечь значения из этого распределения (предположим здесь, что числа не всегда будут нормально распределены)? т. Е. Возможно ли получить значения для подобранной функции или столбцов гистограммы?

Ответ №1:

Если вы посмотрите на histfit код, вы увидите, что он вызывает fitdist , чтобы соответствовать распределению. Таким образом, вы можете получить параметры (mu и sigma) подобранного распределения с помощью

 pd = fitdist(r,'normal');
mu = pd.mu;
sigma = pd.sigma;
  

Чтобы получить значения этого PDF, скажем, в точках x , используйте

 y = normpdf(x,mu,sigma);
  

Комментарии:

1. если у вас есть набор данных типа x = [1 1 2 2 2 2 3] и график для значений [1 2 3] (достаточно простой), результат сильно отличается от histfit, реализованного в том же наборе данных x.

2. @Ams Это просто другая нормализация. normpdf выдает истинный PDF-файл (нормализованный к области 1). histfit выводит PDF-файл в масштабе таким образом, чтобы его площадь совпадала с площадью гистограммы. Вы можете увидеть это в histfit коде (строки 86—89 в R2017b)