Skip to content

MATLAB - 直方图

MATLAB - 现代直方图用于数据分析

Section titled “MATLAB - 现代直方图用于数据分析”

直方图是数据分析中必不可少的工具,它提供了一种强大的数值数据分布图形表示。它们将数据分组到“bins”(区间)中,并显示每个区间内有多少个数据点。MATLAB 现代的 histogram 函数提供了一种灵活而强大的方式来创建富有洞察力的可视化图表,帮助您理解数据分布、集中趋势并识别异常。

虽然旧版 MATLAB 使用 hist 函数,但推荐的现代方法是使用 histogram。它提供了更多的控制、灵活性,并返回一个创建后可修改其属性的对象。

逐步操作:创建和自定义直方图

Section titled “逐步操作:创建和自定义直方图”

让我们从可视化 1000 个服从正态分布的随机数的分布开始。histogram 函数将自动确定合适的 bin 数量以揭示其底层形状。

bin 的数量和宽度可以显著改变直方图所呈现的信息。您有几种方式来控制它们:

  • 'NumBins':指定 bin 的数量。适用于总体概览。
  • 'BinWidth':指定每个 bin 的宽度。当您有特定的区间大小(例如,年龄组)时很有用。
  • 'BinEdges':提供一个明确定义每个 bin 边缘的向量。这为您提供了最大的控制权。

默认情况下,直方图的条形高度代表数据点的计数。'Normalization'(归一化)属性允许您以不同方式表示数据,这对于比较不同大小的数据集至关重要。

  • 'count'(默认):条形的高度是 bin 中观测值的原始数量。
  • 'probability':条形的高度是计数除以观测值的总数。所有条形高度之和为 1。
  • 'pdf'(概率密度函数):每个条形的面积(高度 * 宽度)是观测值落入该 bin 的概率。所有条形的总面积为 1。这最适合比较具有不同 bin 宽度的分布。

直方图不仅适用于数值数据。它们非常适合可视化数据中不同类别的频率。

将 histogram 函数的输出赋给一个变量,会得到一个强大的对象。您可以在创建后检查其属性(例如 bin 计数或边缘)并修改其外观。

  • 误导性 Bin:过少的 bin 会过度平滑数据,隐藏重要特征。过多的 bin 会创建难以解释的嘈杂图表。请尝试使用 NumBins 或 BinWidth 来找到一个好的平衡点。
  • 误解 Y 轴:务必注意所使用的归一化方式。50 的“计数”与 0.5 的“概率”截然不同。请清晰地标注您的 Y 轴!
  • 比较数据集:要比较两个不同数据集的直方图,几乎总是最好使用 'probability' 或 'pdf' 归一化,特别是当数据集的总观测数量不同时。

掌握 histogram 后,可以探索以下相关函数:

  • histogram2:用于可视化两个变量的联合分布。
  • ksdensity:计算平滑的概率密度估计,可以作为 PDF 归一化直方图的一个很好的替代方案。
  • boxplot:用于以不同视角查看分布,侧重于四分位数和异常值。