所以我有一个值表
v=0 1 2 3 4 5 6 7 8 9
#times obs.: 5 19 23 21 14 12 3 2 1 0
假设数据符合poisson dist,我应该计算chi平方。平均值u = 3。 我必须在一个bin中将值> = 6分组。
我不确定如何绘制poisson dist。,最重要的是如何控制什么进入bin,如果这是有道理的。
我之前使用histc绘制了一个直方图。但它是随机数我标准化的。每箱的数量都是为我设定的。 我是超级新人...抱歉,如果这个问题很糟糕。
答案 0 :(得分: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&gt; 6的值全部放入一个bin中进行计算,因为它会给你带来非常糟糕的结果。
还有另一种技术:如果使用hist
功能,您可以选择分档 - 而Matlab会自动将超出限制的内容放入最后一个分区。因此,如果您的观察结果位于数组Obs
中,则可以执行以下操作:
h = hist(Obs, 0:6);
figure
bar(0:6, h)
优点是您可以使用数组h
(频率)进行其他计算。
如果你改为
hist(Obs, 0:6)
Matlab将在一个声明中为您绘制图形(但您没有值......)