如何计算直方图中的异常值? - R / Matlab

时间:2015-12-02 13:35:42

标签: r matlab histogram outliers

我想知道是否有办法在直方图图中考虑离群值。我想绘制一个随机变量的频率,它非常小并且分布在零附近。但是,在大多数情况下,我在考虑我也有一个让事情变得复杂的异常值。有没有办法在 R / Matlab 中调整x轴的比例,以便我可以捕获我正在考虑的随机变量的分布并显示异常值?因为获得绘图的常规方法导致所有值都被认为是零,并且我想展示它们如何在零附近分布。因此,理想情况下,我希望零度数在零附近占据非常小的数字,而不是在间隙(不一定必须与零的实际距离成比例)之后,用于表示异常值的值。而且我不想从示例中删除异常值。

R / Matlab中有这样的事吗?欢迎任何其他建议。

编辑:问题不在于识别异常值并为它们使用不同的颜色。问题在于调整x轴上的比例,这样我就可以观察变量的分布以及图中包含异常值。

1 个答案:

答案 0 :(得分:2)

下一个代码将完成这项工作,但您需要更改轴的Xticklabels,以使它们显示异常值的实际值。

A=rand(1000,1)*0.1;
A(1:10)=10;


% modify the data for plotting pourposes. Get the outliers closer
expected_maximum_value=1; % You can compute this useg 3*sigma maybe?
distance_to_outliers=0.5;
outlier_mean=mean(A(A>expected_maximum_value));
A(A>expected_maximum_value)=A(A>expected_maximum_value)-outlier_mean+distance_to_outliers;

% plot
h=histogram(A,'BinWidth',0.01)

%% trick the X axis
ax=gca;
ax.XTickLabel{end-1}=[ax.XTickLabel{end-1} '//'];
ax.XTickLabel{end}=['//' num2str(outlier_mean)];

enter image description here