2026a

# iqr


数据集的四分位数范围

函数库: TyStatistics

# 语法

r = iqr(A)

r = iqr(A,dim)

r = iqr(A,vecdim)

# 说明

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

# 另请参阅

std | var | prctile