我可以在MATLAB中做什么测试来测试直方图的传播?例如,在给定的直方图集中,我只对1,2,3,5和7(从左到右,从上到下)感兴趣,因为它们的分布较少。如何获得一个值,告诉我柱状图是否正偏斜?
有可能使用Chi-Squared测试,但我不确定MATLAB代码是什么。
答案 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
将包含遵循该公式的直方图的偏度的数值度量。因此,使用您的问题陈述,您将需要查找正数和大数的偏度数。我不能真正评论你应该看什么门槛,但要寻找比你所拥有的大多数直方图大得多的正数。