如何解释直方图中的异常值R/Matlab

如何解释直方图中的异常值R/Matlab,r,matlab,histogram,outliers,R,Matlab,Histogram,Outliers,我想知道是否有一种方法可以解释直方图图中的异常值。我想画出一个随机变量的频率,它非常小,分布在零附近。然而,在我考虑的大多数情况下,我也有一个使事情复杂化的异常值。有没有办法在R/Matlab中调整x轴的比例,以便我可以捕获我考虑的随机变量的分布,并显示异常值?因为获取绘图的常规方法会导致所有值都被认为是零,我想展示它们是如何分布在零附近的。因此,理想情况下,我希望零附近的刻度代表非常小的数字,而不是在一个间隙(不一定与零的实际距离成比例)之后,有一个bin来指示异常值。我不想从样本中删除异常值

我想知道是否有一种方法可以解释直方图图中的异常值。我想画出一个随机变量的频率,它非常小,分布在零附近。然而,在我考虑的大多数情况下,我也有一个使事情复杂化的异常值。有没有办法在R/Matlab中调整x轴的比例,以便我可以捕获我考虑的随机变量的分布,并显示异常值?因为获取绘图的常规方法会导致所有值都被认为是零,我想展示它们是如何分布在零附近的。因此,理想情况下,我希望零附近的刻度代表非常小的数字,而不是在一个间隙(不一定与零的实际距离成比例)之后,有一个bin来指示异常值。我不想从样本中删除异常值

这样的事情在R/Matlab中可能发生吗?欢迎提出任何其他建议


编辑:问题不在于识别异常值和使用不同的颜色。问题在于调整x轴上的刻度,以便观察变量的分布,并将异常值包括在绘图中。

下一个代码将完成此工作,但您需要更改轴的Xticklabel,以便使其显示异常值的实际值

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)];

对于异常值,也可以使用柱状图存储箱:您可以通过在图中将每个存储箱标绘为单独的标记来指示异常值。如果异常值不太多,这可能会起作用。@SamDickson您提到的问题中描述的问题与我的不同。Ander Biguri的解决方案是我一直在寻找的。我只需要稍微修改一下我在其他评论中的描述。谢谢你的回答!经过一些尝试和错误,我成功地实现了您的解决方案,它几乎完美地工作。我还有一个问题。我的刻度上的数字非常小,x10-4位于绘图的末尾。当我运用你的技巧并以某种方式替换标签时,我丢失了这个x10-4。您知道如何在不丢失解决方案的情况下实施它吗?再次感谢您的帮助:)@Masher我的第一个建议是将
distance\u to\u outliers
的值减少到3*sigma(假设高斯数据)或
2*预期的最大值。否则你需要用蜱来做更难的把戏。