# skewness


偏度

函数库: TyStatistics

# 语法

y = skewness(X)

y = skewness(X,flag)

y = skewness(X,flag,"all")

y = skewness(X,flag,dim)

y = skewness(X,flag,vecdim)

# 说明

y = skewness(X) 返回 X 的样本偏度。示例

  • 如果 X 是向量,则 skewness(X) 返回一个标量值,该值是 X 中元素的偏度。

  • 如果 X 是矩阵,则 skewness(X) 返回一个行向量,其中包含 X 中每一列的样本偏度。

  • 如果 X 是多维数组,则 skewness(X) 沿 X 的第一个非单维运算。


y = skewness(X,flag) 指定是否校正偏差 ( flag = 0) 或不校正 ( flag = 1,默认值)。当 X 代表来自总体的样本时,X 的偏度是有偏差的,这意味着它往往与总体偏度相差一个基于样本大小的系统量。 您可以将 flag 设置为 0 以纠正这种系统偏差。示例


y = skewness(X,flag,"all") 返回 X 的所有元素的偏度。示例


y = skewness(X,flag,dim) 返回沿 X 的操作维度 dim 的偏度。示例


y = skewness(X,flag,vecdim) 返回向量 vecdim 中指定维度的偏度。 例如,如果 X 是 2×3×4 数组,则 skewness(X,1,[1 2]) 返回一个 1×1×4 数组。 输出数组的每个元素是 X 对应页面上元素的偏度。示例

# 示例

求矩阵的偏度
为结果的可重复性设置随机种子。
using TyMath
using TyStatistics
rng = MT19937ar(5489)

生成一个 5 行 4 列的矩阵。

X = randn(rng,5,4)
5×4 Matrix{Float64}:
  0.537667  -1.30769   -1.34989    -0.204966
  1.83389   -0.433592   3.03492    -0.124144
 -2.25885    0.342624   0.725404    1.4897
  0.862173   3.5784    -0.0630549   1.40903
  0.318765   2.76944    0.714743    1.41719

求 X 的样本偏度。

y = skewness(X,1,1)
1×4 Matrix{Float64}:
 -0.936199  0.233304  0.436266  -0.407537

y 是包含 X 中每一列的样本偏度的矩阵。

校正样本偏度中的偏差
对于输入向量,通过指定标志输入参数来校正偏度计算中的偏差。

为结果的可重复性设置随机种子。

using TyMath
using TyStatistics
rng = MT19937ar(5489)

生成一个长度为 10 的向量。

x = randn(rng,10,1)
10×1 Matrix{Float64}:
  0.5376671395461
  1.8338850145950865
 -2.258846861003648
  0.8621733203681206
  0.3187652398589808
 -1.3076882963052734
 -0.43359202230568356
  0.3426244665386499
  3.5783969397257605
  2.769437029884877

找出 x 的偏度。 默认情况下,skewness 将 flag 的值设置为 1 以计算有偏差的偏度。

y1 = skewness(x)
y1 = 0.10609663782772454

通过将 flag 的值设置为 0 来计算 x 的偏差校正偏度。

y2 = skewness(x,0)
y2 = 0.12581513535809577
沿给定维度查找偏度
找出多维数组沿不同维度的偏度。

为结果的可重复性设置随机种子。

using TyMath
using TyStatistics
rng = MT19937ar(5489)

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

X = randn(rng,(4,3,2))
4×3×2 Array{Float64, 3}:
[:, :, 1] =
  0.537667   0.318765   3.5784
  1.83389   -1.30769    2.76944
 -2.25885   -0.433592  -1.34989
  0.862173   0.342624   3.03492

[:, :, 2] =
  0.725404   -0.124144   0.671497
 -0.0630549   1.4897    -1.20749
  0.714743    1.40903    0.717239
 -0.204966    1.41719    1.63024

求 X 沿默认维度的偏度。

Y1 = skewness(X,1,1)
1×3×2 Array{Float64, 3}:
[:, :, 1] =
 -0.808394  -0.557793  -1.07723

[:, :, 2] =
 -0.0403352  -1.14719  -0.663199

默认情况下,偏度沿着大小不等于 1 的 X 的第一个维度运行。在这种情况下,该维度是 X 的第一个维度。因此,Y1 是一个 1×3×2 数组。

求 X 沿第二个维度的偏度。

Y2 = skewness(X,1,2)
4×1×2 Array{Float64, 3}:
[:, :, 1] =
  0.6956420751833314
 -0.5575465301112561
  0.004921729894360498
  0.6033034710333921

[:, :, 2] =
 -0.6969044354987657
  0.18283992632559365
  0.7070758331692809
 -0.6714373465276727

Y2 是一个 4×1×2 数组。

求 X 沿三维的偏度。

Y3 = skewness(X,1,3)
4×3×1 Array{Float64, 3}:
[:, :, 1] =
 0.0           1.59726e-16  3.61585e-16
 1.95178e-16   0.0          0.0
 0.0          -2.12951e-16  0.0
 3.65432e-16   0.0          4.00563e-16

Y3 是一个 4×3 矩阵。

沿维度向量查找偏度
使用 "all" 和 vecdim 输入参数查找多个维度的偏度。

为结果的可重复性设置随机种子。

using TyMath
using TyStatistics
rng = MT19937ar(5489)

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

X = randn(rng,(4, 3, 2))
4×3×2 Array{Float64, 3}:
[:, :, 1] =
  0.537667   0.318765   3.5784
  1.83389   -1.30769    2.76944
 -2.25885   -0.433592  -1.34989
  0.862173   0.342624   3.03492

[:, :, 2] =
  0.725404   -0.124144   0.671497
 -0.0630549   1.4897    -1.20749
  0.714743    1.40903    0.717239
 -0.204966    1.41719    1.63024

找出 X 的偏度。

yall = skewness(X,1,"all")
yall = 0.0915793171531814

yall 是整个输入数据集 X 的偏度。

通过指定第一维和第二维,找出 X 的每一页的偏度。

ypage = skewness(X,1,[1 2])
1×1×2 Array{Float64, 3}:
[:, :, 1] =
 0.10699594196721494

[:, :, 2] =
 -0.626322663660226

例如,ypage[1,1,2] 是 X[:,:,2] 中元素的偏度。

通过指定第一维和第三维,找出每个 X[:,i,:] 切片中元素的偏度。

ycol = skewness(X,1,[1 3])
1×3×1 Array{Float64, 3}:
[:, :, 1] =
 -1.07552  -0.310823  -0.220948

例如,ycol[3] 是 X[:,3,:] 中元素的偏度。

# 输入参数

X - 输入数据
向量 | 矩阵 | 多维数组
表示总体样本的输入数据,指定为向量、矩阵或多维数组。
  • 如果 X 是一个向量,则 skewness(X) 返回一个标量值,它是 X 中元素的偏度。

  • 如果 X 是矩阵,则 skewness(X) 返回一个行向量,其中包含 X 中每一列的样本偏度。

  • 如果 X 是多维数组,则偏度 (X) 沿 X 的第一个非单一维度运行。

要指定 X 为矩阵或数组时的运算维度,请使用 dim 输入参数。

偏度将 X 中的 NaN 值视为缺失值并将其删除。

数据类型: Float32 | Float64 | Int8 | Int16 | Int32 | Int64 | Int128 | UInt8 | UInt16 | UInt32 | UInt64 | UInt128

flag - 偏差指标
1(默认) | 0
偏差指标,指定为 0 或 1。
  • 如果 flag 为 1(默认值),则 X 的偏度是有偏差的,这意味着它往往与总体偏度的差异基于样本大小的系统量。

  • 如果标志为 0,则偏度校正系统偏差。

数据类型: Float32 | Float64 | Int8 | Int16 | Int32 | Int64 | Int128 | UInt8 | UInt16 | UInt32 | UInt64 | UInt128

dim - 维度
正整数
操作的维度,指定为正整数。 如果您没有为 dim 指定值,则默认值为 X 的第一个维度,其大小不等于 1。

考虑矩阵 X 的偏度:

  • 如果 dim 等于 1,则 skewness 返回一个行向量,其中包含 X 中每一列的样本偏度。

  • 如果 dim 等于 2,则 skewness 返回一个列向量,其中包含 X 中每一行的样本偏度。

数据类型: Float32 | Float64 | Int8 | Int16 | Int32 | Int64 | Int128 | UInt8 | UInt16 | UInt32 | UInt64 | UInt128

vecdim — 维度向量
正整数向量
维度向量,指定为正整数向量。 vecdim 的每个元素代表输入数组 X 的一个维度。输出 y 在指定的操作维度中具有长度 1。 X 和 y 的其他维度长度相同。

例如,如果 X 是一个 2×3×3 数组,则 skewness(X,1,[1 2]) 返回一个 1×1×3 数组。 输出数组的每个元素是 X 对应页上元素的偏度。

数据类型: Float32 | Float64 | Int8 | Int16 | Int32 | Int64 | Int128 | UInt8 | UInt16 | UInt32 | UInt64 | UInt128

# 输出参数

y - 偏度
标量 | 矢量 | 矩阵 | 多维数组
偏度,以标量、向量、矩阵或多维数组形式返回。

# 算法

偏度是样本均值周围数据不对称性的度量。 如果偏度为负,则数据向均值左侧的分布比向右侧的分布更多。 如果偏度为正,则数据向右分布得更多。 正态分布(或任何完全对称分布)的偏度为零。

分布的偏度定义为

其中 µ 是 x 的平均值,σ 是 x 的标准差,E(t) 表示数量 t 的期望值。 偏度函数计算此总体值的样本版本。

当您将 flag 设置为 1 时,偏度是有偏差的,并且适用以下等式:

当您将 flag 设置为 0 时,偏度会纠正系统偏差,并且适用以下等式:

此偏差校正方程要求 X 至少包含三个元素。

# 另请参阅

kurtosis | moment | mean | std | var

# 主题

正态分布