# iqr
数据集的四分位数范围
函数库: TyStatistics
# 语法
# 说明
r = iqr(A) 返回输入数据 A 中元素的四分位距值。示例
- 如果 A 是一个向量,则 r 是 A 中包含的数据的第 75 个百分位数和第 25 个百分位数之间的差;
- 如果 A 是一个矩阵,则 r 是一个行向量,其中包含 A 的每一列中样本数据的第 75 个百分位数和第 25 个百分位数之间的差异;
- 如果 A 是多维数组,则 r 包含沿大小大于 1 的第一个数组维度计算的四分位距值。此维度的大小为 1,而所有其他维度的大小与输入数据保持相同。
r = iqr(A,dim) 沿维度 dim 运行。 例如,如果 A 是矩阵,则 iqr(A,2) 对每一行中的元素进行运算。示例
r = iqr(A,vecdim) 沿向量 vecdim 中指定的维度进行操作。 例如,如果 A 是矩阵,则 iqr(A,[1 2]) 对 A 的所有元素进行运算,因为矩阵的每个元素都包含在由维度 1 和 2 定义的数组切片中。示例
# 示例
矩阵列或行的四分位数范围
生成正态分布随机数据的 4×4 矩阵。
using TyStatistics
using TyMath
rng=mt19937ar(5489);
A = randn(rng,4,4)
4×4 Matrix{Float64}:
0.537667 0.318765 3.5784 0.725404
1.83389 -1.30769 2.76944 -0.0630549
-2.25885 -0.433592 -1.34989 0.714743
0.862173 0.342624 3.03492 -0.204966
计算每列数据的四分位距。
r = iqr(A)
1×4 Matrix{Float64}:
2.20862 1.20134 2.59689 0.854084
计算每行数据的四分位距。
r2 = iqr(A,2)
4×1 Matrix{Float64}:
1.723684392633393
2.987032606987446
1.9449423413402909
1.87971918923055
多维数组的四分位距
通过指定 vecdim 输入来计算多维数组的四分位数范围。
创建一个 3×4×2 数组。
using TyStatistics
A = reshape(1:24,(3,4,2))
3×4×2 reshape(::UnitRange{Int64}, 3, 4, 2) with eltype Int64:
[:, :, 1] =
1 4 7 10
2 5 8 11
3 6 9 12
[:, :, 2] =
13 16 19 22
14 17 20 23
15 18 21 24
计算 A 中所有值的四分位数范围。
rall = iqr(A,1:3)
1-element Vector{Float64}:
12.0
计算 A 每一页的四分位距。指定第一个和第二个维度作为计算四分位距的操作维度。
rPage = iqr(A,[1 2])
1×1×2 Array{Float64, 3}:
[:, :, 1] =
6.0
[:, :, 2] =
6.0
rPage[1,1,1] 是 A[:,:,1] 中所有元素的四分位数范围。
通过将第二个和第三个维度指定为操作维度,计算每个 A[i,:,:] 切片中元素的四分位数范围。
rRow = iqr(A,[2 3])
3×1 Matrix{Float64}:
12.0
12.0
12.0
rRow[3] 是 A[3,:,:] 中所有元素的四分位数范围。
# 输入参数
A - 输入数组
向量 | 矩阵 | 多维数组
输入数组,指定为向量、矩阵或多维数组。
数据类型: Float32 |Float64 |Int8 |Int16 |Int32 |Int64 |Int128 |UInt8 |UInt16 |UInt32 |UInt64 |UInt128 |Bool
dim - 操作的维度
正整数标量
要操作的维度,指定为正整数标量。 如果不指定维度,则默认为大小大于 1 的第一个数组维度。
考虑一个输入矩阵 A:
- r = iqr(A,1) 计算 A 中列的四分位数范围。因为 1 是指定的操作维度,所以 r 的行数等于 A 中的列数;
- r = iqr(A,2) 计算 A 中行的四分位数范围。因为 2 是指定的操作维度,所以 r 的列数等于 A 中的行数。
维度 dim 表示 r 的维度,其长度减为 1。size(r,dim) 为 1,而输出 r 的所有其他维度的大小保持与输入数据相同。
数据类型: Float32 |Float64 |Int8 |Int16 |Int32 |Int64 |Int128 |UInt8 |UInt16 |UInt32 |UInt64 |UInt128 |Bool
vecdim - 要操作的维度向量
正整数向量
要操作的维度向量,指定为正整数向量。 每个元素代表输入数据的一个维度。
输出 r 在指定的操作维度上的大小为 1。 r 在所有其他维度上的长度与输入数据保持相同。
考虑一个 2×3×3 输入数组 A。iqr(A,[1 2]) 返回一个 1×1×3 数组,因为 1 和 2 是操作维度。 输出数组的每一页都包含 A 对应页上元素的四分位数范围。
数据类型: Float32 |Float64 |Int8 |Int16 |Int32 |Int64 |Int128 |UInt8 |UInt16 |UInt32 |UInt64 |UInt128 |Bool