Main Content

用描述性统计量进行计算

如果您需要更高级的统计功能,您可能要使用 Statistics and Machine Learning Toolbox™ 软件。

用于计算描述性统计量的函数

使用以下 MATLAB® 函数对您的数据进行描述性统计量计算。

注意

对于矩阵数据,每列的描述性统计量是独立计算的。

统计函数汇总

函数

描述

max

最大值

mean

平均值或均值

median

中位数值

min

最小值

mode

出现次数最多的值

std

标准差

var

方差,用于度量值的分散程度

以下示例应用 MATLAB 函数来计算描述性统计量:

示例 1 - 计算最大值、均值和标准差

此示例说明如何使用 MATLAB 函数计算一个 24×3 矩阵(称为 count)的最大值、均值和标准差值。MATLAB 为矩阵中的每列独立计算这些统计信息。

% Load the sample data
load count.dat
% Find the maximum value in each column
mx = max(count)
% Calculate the mean of each column
mu = mean(count)
% Calculate the standard deviation of each column
sigma = std(count)

结果是

mx =
          114          145          257

mu = 
      32.0000      46.5417      65.5833

sigma =
      25.3703      41.4057      68.0281

要获取每个数据列中最大数据值所在的行号,请指定另一个输出参数 indx 以返回行索引。例如:

[mx,indx] = max(count)

这些结果是

mx =
      114     145     257

indx =
      20    20    20

此处,变量 mx 是行向量,它包含三个数据列中每个列中的最大值。变量 indx 包含每列中对应于最大值的行索引。

要找到整个 count 矩阵中的最小值,请使用语法 count(:) 将 24×3 矩阵转换为 72×1 列向量。然后,要找到该单一列中的最小值,请使用以下语法:

min(count(:))

ans =
      7

示例 2 - 减去均值

使用以下语法从矩阵的每列中减去均值:

% Get the size of the count matrix
[n,p] = size(count)
% Compute the mean of each column
mu = mean(count)
% Create a matrix of mean values by
% replicating the mu vector for n rows
MeanMat = repmat(mu,n,1)
% Subtract the column mean from each element
% in that column
x = count - MeanMat

注意

从数据中减去均值也称为去除线性趋势。有关从数据中删除均值或最佳拟合线的详细信息,请参阅Remove Linear Trends from Timetable Data

示例:使用 MATLAB 数据统计信息

数据统计信息

“数据统计信息”对话框可帮助您计算和绘制数据的描述性统计量。此示例说明如何使用 MATLAB 数据统计信息来计算并绘制 24×3 矩阵 count 的统计量。该数据表示有多少辆车经过了三条街道上的交通计数站。

本节包含以下主题:

注意

MATLAB 数据统计仅可用于二维图。

计算和绘制描述性统计量

  1. 加载并绘制数据:

    load count.dat
    [n,p] = size(count);
    
    % Define the x-values
    t = 1:n;
    
    % Plot the data and annotate the graph
    plot(t,count)
    legend('Station 1','Station 2','Station 3','Location','northwest')
    xlabel('Time')
    ylabel('Vehicle Count')
    

    Plot of Time and Vehicle Count variables with lines for Station 1, Station 2, and Station 3 data.

    注意

    图例包含每个数据集的名称,由 legend 函数指定:Station 1Station 2Station 3数据集指您绘制的数组中的每列数据。如果您未命名数据集,则会分配默认名称 data1data2,依此类推。

  2. 在图窗窗口中,选择工具 > 数据统计信息

    “数据统计信息”对话框将打开并显示 Station 1 数据集的 XY 数据的描述性统计量。

    注意

    “数据统计信息”对话框显示一个极差,它是所选数据集中最小值和最大值之间的差值。该对话框不在绘图上显示该范围。

  3. 以下项的数据统计信息列表中选择另一个数据集 Station 2

    这将显示 Station 2 数据集的 XY 数据的统计量。

  4. 选中您要在绘图上显示的每个统计量的复选框,然后点击保存到工作区

    例如,要绘制 Station 2 的均值,请在 Y 列中选中均值复选框。

    Data Statistics dialog with the Station 2 y mean selected.

    这将绘制一条水平线来表示 Station 2 的均值,并更新图例以包含此统计量。

    Plot of Time and Vehicle Count variables with a horizontal line representing the y mean.

设置绘图上数据统计量的格式

“数据统计信息”对话框使用颜色和线型将统计量与绘图上的数据区分开来。示例的此部分显示如何自定义绘图上描述性统计量的显示,例如颜色、线宽、线型或标记。

注意

在绘制完数据的所有统计量前,不要编辑统计量的显示属性。如果在编辑绘图属性后添加或删除统计量,则对绘图属性的更改将丢失。

要修改绘图上数据统计量的显示,请执行下列操作:

  1. 在 MATLAB 图窗窗口中,点击工具栏中的 编辑绘图)按钮。

    此步骤将启用绘图编辑。

  2. 双击要编辑其显示属性的绘图上的统计量。例如,双击表示 Station 2 均值的水平线。

    此步骤将打开属性检查器,您可以在其中修改用于表示此统计量的线条的外观。

    Property Inspector dialog with line color, line style, line width, marker type, and marker size options.

  3. 在属性检查器窗口中,指定线条和标记的样式、大小和颜色。

    提示

    或者,右键点击绘图上的统计量,然后从快捷菜单中选择一个选项。

将统计量保存到 MATLAB 工作区

执行下列步骤可将统计量保存到 MATLAB 工作区。

注意

当您的绘图包含多个数据集时,请分别保存各数据集的统计量。要显示其他数据集的统计量,请从“数据统计信息”对话框的以下项的数据统计信息列表中选择该数据集。

  1. 在“数据统计信息”对话框中,点击保存到工作区按钮。

  2. 在“将统计信息保存到工作区”对话框中,选择用于保存 X 数据或 Y 数据或两者的统计量的选项。然后,输入相应的变量名称。

    在本示例中,只保存 Y 数据。输入变量名称为 Loc2countstats

    Dialog specifying to save Y stats to a MATLAB struct named Loc2countstats.

  3. 点击确定

    此步骤将描述性统计量保存到一个结构体中。新变量将添加到 MATLAB 工作区中。

要查看新结构体变量,请在 MATLAB 提示符下键入变量名称:

Loc2countstats
Loc2countstats = 

  struct with fields:

       min: 9
       max: 145
      mean: 46.5417
    median: 36
      mode: 9
       std: 41.4057
     range: 136

生成代码文件

示例的此部分显示如何从图形生成 MATLAB 代码文件,再将代码应用至新数据以重新生成相同格式的绘图和统计量。在 MATLAB Online™ 中不能生成代码文件。

  1. 在图窗窗口中,选择文件 > 生成代码

    此步骤创建一个函数代码文件并将其显示在 MATLAB 编辑器中。

  2. 将文件的第一行上的函数名称从 createfigure 更改为更具体的名称,如 countplot。使用文件名 countplot.m 将文件保存到您的当前文件夹中。

  3. 生成一些新的随机计数数据:

    rng('default')
    randcount = 300*rand(24,3);
  4. 用新数据和重新计算的统计量重新生成绘图:

    countplot(t,randcount)

    Plot of Time and Vehicle Count variables with a horizontal line representing the y mean.