# skewness
偏度
函数库: TyStatistics
# 语法
# 说明
如果 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 矩阵。
沿维度向量查找偏度
为结果的可重复性设置随机种子。
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
如果 flag 为 1(默认值),则 X 的偏度是有偏差的,这意味着它往往与总体偏度的差异基于样本大小的系统量。
如果标志为 0,则偏度校正系统偏差。
数据类型: Float32 | Float64 | Int8 | Int16 | Int32 | Int64 | Int128 | UInt8 | UInt16 | UInt32 | UInt64 | UInt128
dim - 维度
正整数
考虑矩阵 X 的偏度:
如果 dim 等于 1,则 skewness 返回一个行向量,其中包含 X 中每一列的样本偏度。
如果 dim 等于 2,则 skewness 返回一个列向量,其中包含 X 中每一行的样本偏度。
数据类型: Float32 | Float64 | Int8 | Int16 | Int32 | Int64 | Int128 | UInt8 | UInt16 | UInt32 | UInt64 | UInt128
vecdim — 维度向量
正整数向量
例如,如果 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