2014-11-25 2 views
0

Image первый: enter image description hereКак установить максимальное значение для гистограммы

Как вы можете видеть, у меня есть множество нормальных распределений. Была сделана обратная связь с тем, что эти графики должны быть «нормализованы», поскольку я понял, что значения сюжета установлены на какое-то максимальное значение и кривизна графика, установленного так, чтобы соответствовать этому. Цель состоит в том, чтобы сделать эти графики легче сравнивать визуально - я надеюсь, что это имеет смысл. Я использую histfit для этого участка.

Вы знаете какой-либо метод, как я могу сделать эти графики более сопоставимыми таким образом?

EDIT: Поскольку это было отмечено как дубликат, на самом деле это не так. Я действительно не ищу, чтобы плотность вероятности соответствовала гистограмме, я хочу установить максимальное значение для каждой кривой плотности вероятности. Я знаю о рыночных темах, я просто не мог найти своего собеседника.

EDIT2:

Это exercpts из моего кода с решениями, которые они производят:

[f1,x1] = hist(data1); 
[f2,x2] = hist(data2); 
[f3,x3] = hist(data3); 

avg = mean(data1); 
stdev = std(data1); 
VERT1 = sort(data1); 
y1 = exp(- 0.5 * ((VERT1 - avg)/stdev) .^ 2)/(stdev * sqrt(2 * pi)); 
y11 = y1/max(data1); 


avg = mean(data2); 
stdev = std(data2); 
VERT2 = sort(data2); 
y2 = exp(- 0.5 * ((VERT2 - avg)/stdev) .^ 2)/(stdev * sqrt(2 * pi)); 
y22 = y2/max(data2); 

% 
avg = mean(data3); 
stdev = std(data3); 
VERT3 = sort(data3); 
y3 = exp(- 0.5 * ((VERT3 - avg)/stdev) .^ 2)/(stdev * sqrt(2 * pi)); 
y33 = y3/max(data3); 

enter image description here

Прямая ссылка для ясности: http://i.imgur.com/YPrcM3R.jpg

От this explanation я получаю это:

[f1,x1] = hist(data1); 
[f2,x2] = hist(data2); 
[f3,x3] = hist(data3); 


avg = mean(data1); 
stdev = std(data1); 
VERT1 = sort(data1); 
y1 = exp(- 0.5 * ((VERT1 - avg)/stdev) .^ 2)/(stdev * sqrt(2 * pi)); 



avg = mean(data2); 
stdev = std(data2); 
VERT2 = sort(data2); 
y2 = exp(- 0.5 * ((VERT2 - avg)/stdev) .^ 2)/(stdev * sqrt(2 * pi)); 



avg = mean(data3); 
stdev = std(data3); 
VERT3 = sort(data3); 
y3 = exp(- 0.5 * ((VERT3 - avg)/stdev) .^ 2)/(stdev * sqrt(2 * pi)); 


h1 = bar(x1,f1/trapz(x1,f1));hold on; 
h2 = bar(x2,f2/trapz(x2,f2),'r');hold on; 
h3 = bar(x3,f3/trapz(x3,f3),'g');hold on; 
plot(VERT1,y1,'b-');hold on; 
plot(VERT2,y2,'r-');hold on; 
plot(VERT3,y3,'g-');hold off; 

Каких результатов в: enter image description here

Надеется, что это все объясняет.

+2

Вы можете разделить каждый гистограмм на его максимальное значение ... –

+0

Почему вы не можете просто масштабировать их? [нормализация звукового сигнала и возврат к исходному матлабу] (http://stackoverflow.com/q/22894559/2545927) может дать вам несколько советов. – kkuilla

+5

Чтобы нормализовать гистограмму (или pdf), вы должны убедиться, что ее _area_ равно 1. См. Например [здесь] (http://stackoverflow.com/questions/5320677/how-to-normalize-a-histogram-in-matlab) –

ответ

2

У вас есть два графика с ненулевым средним и нестандартными стандартными отклонениями. Такие распределения трудно сравнивать. Что означает нормализация в этом контексте (насколько я думаю), чтобы сделать среднее значение установленной кривой колокола 0 и стандартным отклонением 1. Это может быть достигнуто достаточно просто. Вот это игрушка пример:

clf; 
data1 = random('normal',300,30,100,1); %Randomly generated first dataset 
data2 = random('normal',250,10,100,1); %Randomly generated second dataset 
h1=histfit(data1); %Plot the data 
hold on; 
h2=histfit(data2); 
delete(h1(1)); 
delete(h2(1)); 
set(h2(2),'color','b') 

Это дает:

enter image description here

Для нормализации, просто замените data, что вы фитинг с нормированными данными, как:

h1=histfit((data1-mean(data1))/std(data1)); 
h2=histfit((data2-mean(data2))/std(data2)); 

Для выход: enter image description here

делает сравнение графиков намного чище.

+0

Я получил это в результате: http://imgur.com/ZYYtknp - это понятно, так что спасибо. Это, однако, не нормализация, которую я искал. –

+0

Итак, вы удалили среднее распределение и дисперсию ... В чем смысл результата ?! Большая часть информации исчезла! –

+0

@ Jean-FrançoisCorbett, есть много причин, почему это может быть полезно. Предположим, у меня есть процесс, который у меня есть догадка гауссово, но не знаю. Поместив его в стандартную нормальную форму, я нахожусь в гораздо лучшем положении, чтобы конкретизировать это графически (конечно, правильный путь был бы через графики QQ). На мой взгляд, такие вещи, как эксцесс и асимметрия, гораздо легче увидеть графически в этом формате. Предположим, у меня есть данные о количестве бутылок с коксом и бутылочек для коктейля, потребляемых за день, если я нормализую оба, я, вероятно, буду в лучшей ситуации, чтобы оценить тенденции вокруг среднего. – Nitish

Смежные вопросы