Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

zscore

标准化 z 分数

说明

示例

Z = zscore(X) 返回 X 的每个元素的 z 分数,对列 X 进行中心化和缩放处理,使其均值为 0,标准差为 1。ZX 的大小相同。

  • 如果 X 是向量,则 Z 是 z 分数组成的向量。

  • 如果 X 是矩阵,则 Z 是与 X 大小相同的矩阵,并且 Z 的每列的均值为 0,标准差为 1。

  • 对于多维数组Z 中的 z 分数是沿 X第一个非单一维度计算的。

示例

Z = zscore(X,flag) 使用 flag 指示的标准差缩放 X

  • 如果 flag 为 0(默认值),则 zscore 使用样本标准差缩放 X,标准差公式的分母为 n - 1。zscore(X,0)zscore(X) 相同。

  • 如果 flag 为 1,则 zscore 使用总体标准差缩放 X,标准差公式的分母为 n。

示例

Z = zscore(X,flag,'all') 通过使用 X 中所有值的均值和标准差来标准化 X

示例

Z = zscore(X,flag,dim) 沿运算维度 dim 标准化 X。例如,对于矩阵 X,如果 dim = 1,则 zscore 使用沿 X 的列的均值和标准差;如果 dim = 2,则 zscore 使用沿 X 的行的均值和标准差。

示例

Z = zscore(X,flag,vecdim) 基于向量 vecdim 指定的维度标准化 X。例如,如果 X 是矩阵,则 zscore(X,0,[1 2]) 等效于 zscore(X,0,'all'),因为矩阵的每个元素都包含在由维度 1 和 2 定义的数组切片中。

示例

[Z,mu,sigma] = zscore(___) 还分别返回用于中心化和缩放的均值和标准差,即 musigma。您可以使用上述语法中的任何输入参数。

示例

全部折叠

计算并绘制两个数据向量的 z 分数,然后比较结果。

加载样本数据。

load lawdata

在工作区中加载两个变量:gpalsat

在同一坐标区上绘制这两个变量。

plot([gpa,lsat])
legend('gpa','lsat','Location','East')

Figure contains an axes object. The axes object contains 2 objects of type line. These objects represent gpa, lsat.

很难对这两种测度进行比较,因为其尺度差异很大。

在相同的坐标区上绘制 gpalsatz 分数。

Zgpa = zscore(gpa);
Zlsat = zscore(lsat);
plot([Zgpa, Zlsat])
legend('gpa z-scores','lsat z-scores','Location','Northeast')

Figure contains an axes object. The axes object contains 2 objects of type line. These objects represent gpa z-scores, lsat z-scores.

现在,您可以看到各个人员在 gpalsat 成绩上的相对表现。例如,第三个人的 gpalsat 结果都比样本均值低一个标准差。第十个人的 gpa 接近样本均值,但其 lsat 分数几乎比样本均值高出 1.25 倍标准差。

检查您创建的 z 分数的均值和标准差。

 mean([Zgpa,Zlsat])
ans = 1×2
10-14 ×

   -0.1088    0.0357

 std([Zgpa,Zlsat])
ans = 1×2

     1     1

根据定义,gpalsatz 分数的均值为 0,标准差为 1。

加载样本数据。

load lawdata

在工作区中加载两个变量:gpalsat

使用标准差的总体公式计算 gpaz 分数。

Z1 = zscore(gpa,1); % population formula
Z0 = zscore(gpa,0); % sample formula
disp([Z1 Z0])
    1.2554    1.2128
    0.8728    0.8432
   -1.2100   -1.1690
   -0.2749   -0.2656
    1.4679    1.4181
   -0.1049   -0.1013
   -0.4024   -0.3888
    1.4254    1.3771
    1.1279    1.0896
    0.1502    0.1451
    0.1077    0.1040
   -1.5076   -1.4565
   -1.4226   -1.3743
   -0.9125   -0.8815
   -0.5724   -0.5530

对于来自总体的一个样本,分母为 n 的总体标准差公式对应于总体标准差的最大似然估计,可能有偏差。另一方面,样本标准差公式是一个样本的总体标准差的无偏估计量。

使用沿数据矩阵的列或行计算的均值和标准差计算 z 分数。

加载样本数据。

load flu

数据集数组 flu 已在工作区中加载。flu 包含涉及 11 个变量的 52 个观测值。第一个变量包含日期(以周为单位)。其他变量包含美国不同地区的流感估计值。

将该数据集数组转换为一个数据矩阵。

flu2 = double(flu(:,2:end));

新数据矩阵 flu2 是一个 52×10 双精度数据矩阵。在数据集数组 flu 中,行对应于周,列对应于美国各地区。

标准化每个地区(flu2)的流感估计值。

Z1 = zscore(flu2,[ ],1);

双击在工作区中创建的矩阵 Z1,可以在变量编辑器中看到 z 分数。

标准化每周(flu2)的流感估计值。

Z2 = zscore(flu2,[ ],2);

通过指定沿不同维度标准化数据来求出一个多维数组的 Z 分数。比较使用 'all'dimvecdim 输入参数时的结果。

创建一个 3×4×2 数组。

X = reshape(1:24,[3 4 2])
X = 
X(:,:,1) =

     1     4     7    10
     2     5     8    11
     3     6     9    12


X(:,:,2) =

    13    16    19    22
    14    17    20    23
    15    18    21    24

通过使用 X 中所有值的均值和标准差来标准化 X

Zall = zscore(X,0,'all')
Zall = 
Zall(:,:,1) =

   -1.6263   -1.2021   -0.7778   -0.3536
   -1.4849   -1.0607   -0.6364   -0.2121
   -1.3435   -0.9192   -0.4950   -0.0707


Zall(:,:,2) =

    0.0707    0.4950    0.9192    1.3435
    0.2121    0.6364    1.0607    1.4849
    0.3536    0.7778    1.2021    1.6263

生成的由 Z 分数组成的多维数组的均值为 0,标准差为 1。例如,计算 Zall 的均值和标准差。

mZall = mean(Zall(:,:,:),'all')
mZall = -9.2519e-18
sZall = std(Zall(:,:,:),0,'all')
sZall = 1.0000

现在沿第二个维度标准化 X

Zdim = zscore(X,0,2)
Zdim = 
Zdim(:,:,1) =

   -1.1619   -0.3873    0.3873    1.1619
   -1.1619   -0.3873    0.3873    1.1619
   -1.1619   -0.3873    0.3873    1.1619


Zdim(:,:,2) =

   -1.1619   -0.3873    0.3873    1.1619
   -1.1619   -0.3873    0.3873    1.1619
   -1.1619   -0.3873    0.3873    1.1619

Zdim 的每页的每行中的元素的均值为 0,标准差为 1。例如,计算 Zdim 的第二页的第一行的均值和标准差。

mZdim = mean(Zdim(1,:,2),'all')
mZdim = 0
sZdim = std(Zdim(1,:,2),0,'all')
sZdim = 1

最后,根据第二个和第三个维度标准化 X

Zvecdim = zscore(X,0,[2 3])
Zvecdim = 
Zvecdim(:,:,1) =

   -1.4289   -1.0206   -0.6124   -0.2041
   -1.4289   -1.0206   -0.6124   -0.2041
   -1.4289   -1.0206   -0.6124   -0.2041


Zvecdim(:,:,2) =

    0.2041    0.6124    1.0206    1.4289
    0.2041    0.6124    1.0206    1.4289
    0.2041    0.6124    1.0206    1.4289

每个 Zvecdim(i,:,:) 切片中的元素的均值为 0,标准差为 1。例如,计算 Zvecdim(1,:,:) 中元素的均值和标准差。

mZvecdim = mean(Zvecdim(1,:,:),'all')
mZvecdim = 2.7756e-17
sZvecdim = std(Zvecdim(1,:,:),0,'all')
sZvecdim = 1

返回用于计算 z 分数的均值和标准差。

加载样本数据。

load lawdata

在工作区中加载两个变量:gpalsat

返回 gpaz 分数、均值和标准差。

[Z,gpamean,gpastdev] = zscore(gpa)
Z = 15×1

    1.2128
    0.8432
   -1.1690
   -0.2656
    1.4181
   -0.1013
   -0.3888
    1.3771
    1.0896
    0.1451
      ⋮

gpamean = 3.0947
gpastdev = 0.2435

输入参数

全部折叠

输入数据,指定为向量、矩阵或多维数组。

数据类型: double | single

用于计算 z 分数的标准差的指示标记,指定为 0 或 1。

  • 如果 flag 为 0(默认值),则 zscore 使用样本标准差缩放 Xzscore(X,0)zscore(X) 相同。

  • 如果 flag 为 1,则 zscore 使用总体标准差缩放 X

沿其计算 X 的 z 分数的维度,指定为正整数标量。如果不指定值,则默认值是大小不等于 1 的第一个数组维度。

例如,对于矩阵 X,如果 dim = 1,则 zscore 使用沿 X 的列的均值和标准差;如果 dim = 2,则 zscore 使用沿 X 的行的均值和标准差。

沿其计算 X 的 z 分数的维度的向量,指定为正整数向量。vecdim 的每个元素表示输入数组 X 的一个维度。输出 ZX 具有相同的维度,但均值 mu 和标准差 sigma 在运算维度中的长度均为 1。Xmusigma 的其他维度长度相同。

例如,如果 X 是一个 2×3×3 数组,则 zscore(X,0,[1 2]) 使用沿 X 的页上的均值和标准差标准化 X 的值。

数据类型: single | double

输出参数

全部折叠

z 分数,以向量、矩阵或多维数组形式返回。ZX 具有相同的维度。

Z 的值取决于您指定 'all'dim 还是 vecdim。如果未指定上述输入参数中的任一项,则适用以下条件:

  • 如果 X 是向量,则 Z 是均值为 0、方差为 1 的 z 分数组成的向量。

  • 如果 X 是数组,则 zscore 沿 X 的第一个非单一维度进行标准化。

有关说明在使用 'all'dimvecdimZ 中差异的示例,请参阅多维数组的 Z 分数

用于计算 z 分数的 X 的均值,以标量、向量、矩阵或多维数组形式返回。mu 在指定的运算维度中长度为 1。Xmu 的其他维度长度相同。

例如,如果 X 是一个 2×3×3 数组,vecdim[1 2],则 mu 是一个由均值组成的 1×1×3 数组。mu 中的每个值对应于 X 中一页的均值。

Mapping of input dimension of 2-by-3-by-3 to output dimension of 1-by-1-by-3

用于计算 z 分数的 X 的标准差,以标量、向量、矩阵或多维数组形式返回。sigma 在指定的运算维度中长度为 1。Xsigma 的其他维度长度相同。

例如,如果 X 是一个 2×3×3 数组,vecdim[1 2],则 sigma 是一个由标准差组成的 1×1×3 数组。sigma 中的每个值对应于 X 中一页的标准差。

Mapping of input dimension of 2-by-3-by-3 to output dimension of 1-by-1-by-3

详细信息

全部折叠

Z 分数

对于具有均值 μ 和标准差 σ 的随机变量 X,值 x 的 z 分数为

z=(xμ)σ.

。对于具有均值 X¯ 和标准差 S 的采样数据,数据点 x 的 z 分数为

z=(xX¯)S.

z 分数以标准差为单位测量数据点与均值的距离。这也称为数据的标准化。标准化后的数据集均值为 0,标准差为 1,并保留原始数据集的形状属性(相同的偏度和峰度)。

在进一步分析之前,您可以使用 z 分数将数据置于同一尺度上。这使您能够比较两个或更多具有不同单位的数据集。

多维数组

多维数组是具有两个以上维度的数组。例如,如果 X 是 1×3×4 数组,则 X 是三维数组。

第一个非单一维度

第一个非单一维度是其大小不等于 1 的数组的第一个维度。例如,如果 X 是 1×2×3×4 数组,则第二个维度是 X 的第一个非单一维度。

样本标准差

样本标准差 S 由下式给出:

S=i=1n(xiX¯)2n1.

S 是从中抽取 X 的总体的方差的无偏估计量的平方根,其中 X 由独立同分布样本组成。X¯ 是样本均值。

请注意,此方差公式中的分母是 n - 1。

总体标准差

如果数据是值的整个总体,则可以使用总体标准差

σ=i=1n(xiμ)2n.

如果 X 是来自总体的一个随机样本,则均值 μ 是根据样本均值估计的值,σ 是总体标准差的有偏最大似然估计量。

请注意,此方差公式中的分母是 n。

算法

zscore 对任何包含 NaN 的样本返回 NaN

zscore 对任何常量样本(所有值都相同)返回 0。例如,如果 X 是一个由相同数值组成的向量,则 Z 是一个由 0 组成的向量。

扩展功能

版本历史记录

在 R2006a 之前推出

另请参阅

| | |