在MATLAB中估计直方图的偏度

时间:2015-01-20 22:13:06

标签: matlab statistics

我可以在MATLAB中做什么测试来测试直方图的传播?例如,在给定的直方图集中,我只对1,2,3,5和7(从左到右,从上到下)感兴趣,因为它们的分布较少。如何获得一个值,告诉我柱状图是否正偏斜?

有可能使用Chi-Squared测试,但我不确定MATLAB代码是什么。 enter image description here

1 个答案:

答案 0 :(得分:4)

您可以使用standard definition of skewness。换句话说,您可以使用:

您计算数据的平均值,并使用上面的公式计算偏度。正偏差和负偏差都是这样的:

来源:Wikipedia

因此,值越大,它的偏差就越大。价值越负,它就越负面。


现在计算直方图数据的平均值,非常简单。您只需对直方图条目进行加权求和,然后除以条目总数。鉴于您的直方图存储在h中,直方图的bin中心存储在x中,您将执行以下操作。我将在这里做的是假设你有从0到N-1的箱子,其中N是直方图中的箱子总数...从你的图片判断:

x = 0:numel(h)-1; %// Judging from your pictures
num_entries = sum(h(:));
mu = sum(h.*x) / num_entries;
skew = ((1/num_entries)*(sum((h.*x - mu).^3))) / ...
       ((1/(num_entries-1))*(sum((h.*x - mu).^2)))^(3/2);

skew将包含遵循该公式的直方图的偏度的数值度量。因此,使用您的问题陈述,您将需要查找正数和大数的偏度数。我不能真正评论你应该看什么门槛,但要寻找比你所拥有的大多数直方图大得多的正数。