2013-02-17 2 views
-1

Поэтому у меня есть таблица значенийвычисление x2 из Пуассона распределенных данных

v=0 1 2 3 4 5 6 7 8 9 
#times obs.: 5 19 23 21 14 12 3 2 1 0 

Я должен вычислить хи квадрат предполагая, что данные соответствует Пуассоново расст. со средним u = 3. Мне нужно группировать значения> = 6 в одном ящике.

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

Я построил гистограмму с использованием histc раньше ... но это было со случайными числами, которые я нормализовал. Сумма в каждом ящике была установлена ​​для меня. Я супер новый ... извините, если этот вопрос сосет.

+0

Какой язык это? (Что такое 'mat'?) –

+0

Извините, я был смущен тем, что положить для тега. Я использую студенческий выпуск MATLAB. –

ответ

0

Вы используете bar для построения гистограммы в MATLAB.

Так это то, что вы делаете:

v=0:9; 
f=[5 19 23 21 14 12 3 2 1 0]; 
fc=f(find(v<6));  % copy elements where v<=6 into a new array 
fc(end+1)=sum(f(v=>6)); % append the sum of elements where v=>6 to that array 
figure 
bar(v(v<=6), fc); 

Это должно сделать трюк ...

Теперь вы фактически не спросить о хи квадрат расчета. Я бы попросил вас не ставить значения v> 6 все в один бит для этого вычисления, так как это даст вам очень плохой результат.

Существует еще одна методика: если вы используете функцию hist, вы можете выбрать бункеры - и Matlab автоматически поместит предметы, превышающие пределы в последний бит. Так что, если ваши наблюдения были в массиве Obs, вы можете делать то, что было предложено с:

h = hist(Obs, 0:6); 
figure 
bar(0:6, h) 

Преимущество заключается в том, что у вас есть массив h доступны (частот) для других расчетов.

Если вы вместо

hist(Obs, 0:6) 

Matlab будет построить график для вас в одном операторе (но не имеют значения ...)

+0

Это не сработало. Это ошибка, которую я получил: попытка выполнить панель SCRIPT как функцию: /Пользователи/emilywelk/Desktop/OCE 260/Набор проблем 4/bar.m Ошибка в тупидере (строка 8) bar (v (v < = 6), fc); –

+0

Кажется, у вас есть сценарий, определенный в вашем пути с именем 'bar' (путь, указанный в сообщении об ошибке), который переопределяет встроенную функцию. Измените имя файла и повторите попытку ... – Floris

+0

Спасибо! @Floris –

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