Как бы вы нормализовали гистограмму, чтобы сумма каждого бина равнялась 1? - PullRequest
2 голосов
/ 14 марта 2011

Как бы вы нормализовали гистограмму A, чтобы сумма каждого бина была 1

Разделив гистограмму на ширину бина, как вы ее рисуете

У меня

dist        = rand(50)    
average     = mean(dist, 1);   
[c,x]       = hist(average, 15);    
normalized  = c/sum(c);
bar(x, normalized, 1)

В этом случае n = 50,

  • Какова формула для получения значений среднего и дисперсии ^ 2?Мы пишем N(mean, (variance^2) / 50), но как?
  • Как построить равномерное и нормальное распределение?.

Гистограмма должна быть близка к нормальному распределению.

1 Ответ

6 голосов
/ 14 марта 2011

Это очень необычный способ нормализации функции плотности вероятности. Я предполагаю, что вы хотите нормализовать так, чтобы площадь под кривой равнялась 1. В этом случае это то, что вы должны сделать.

[c,x]=hist(average,15);
normalized=c/trapz(x,c);
bar(x,normalized)

В любом случае, чтобы ответить на ваш вопрос, вы можете использовать randn для генерации нормального распределения. Теперь вы генерируете матрицу равномерного распределения 50x50 и суммируете по одному измерению для приближения к нормальному гауссову. Это не нужно. Чтобы сгенерировать нормальное распределение 1000 точек, используйте randn(1000,1) или, если вы хотите вектор строки, транспонируйте его или переверните числа. Чтобы сгенерировать гауссово распределение среднего mu и дисперсию sigma2 и построить его pdf, вы можете сделать (пример)

mu=2;
sigma2=3;
dist=sqrt(sigma2)*randn(1000,1)+mu;
[c,x]=hist(dist,50);
bar(x,c/trapz(x,c))

Хотя это можно сделать с помощью специальных функций из набора инструментов статистики, это одинаково просто, просто и не требует дополнительных наборов инструментов.

EDIT

Я пропустил ту часть, где вы хотели узнать, как создать равномерное распределение. rand, по умолчанию выдает случайную величину из равномерного распределения на [0,1]. Чтобы получить р.в. из равномерного распределения между [a, b], используйте a+(b-a)*rand

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...