Octave 支持各种实用的统计函数。其中许多是准备数据集以进行进一步分析的初始步骤。另一些则提供了与基本描述性统计不同的度量标准。
y = center (x) ¶y = center (x, dim) ¶y = center (x, vecdim) ¶y = center (x, "all") ¶y = center (…, nanflag) ¶通过减去均值使数据居中(中心化)。
如果 x 是一个向量,那么 center (x) 通过从 x 的每个元素中减去 x 的均值来计算中心化数据。
如果 x 是一个矩阵,那么 center (x) 返回一个行向量,其中每个元素包含 x 每一列的中心化数据。
如果 x 是一个数组,那么 center (x) 沿着 x 的第一个非单一维度对数据进行中心化。
x 中的数据必须是数值类型。y 的尺寸与 x 相同。
可选的输入参数 dim 指定要操作的维度,必须是正整数。指定 x 的任何单一维度(包括超过 ndims (x) 的维度)将返回 x 本身。
通过输入 vecdim(一个包含非重复维度的向量)来指定多个维度,将沿着 vecdim 定义的数组切片进行操作。如果 vecdim 索引了 x 的所有维度,则等效于 "all" 选项。vecdim 中大于 ndims (x) 的任何维度将被忽略。
将维度指定为 "all" 将使 center 计算 x 所有元素的中心,等效于 center (x(:))。
可选的变量 nanflag 指定在计算均值时是否包含或排除 NaN 值,可与之前指定的任何输入参数组合使用。nanflag 的默认值为 "includenan",表示在计算中保留 NaN 值。若要排除 NaN 值,请将 nanflag 设置为 "omitnan"。操作维度上的任何 NaN 值将导致 y 中所有对应元素为 NaN。
编程说明:center 对统计数据的归一化有明显用途。它也有助于提高一般数值计算的精度。当一批数据中存在较大的公共值时,可以先减去均值,执行计算,然后再加回均值以获得最终答案。
另请参阅: zscore。
z = zscore (x) ¶z = zscore (x, opt) ¶z = zscore (x, opt, dim) ¶z = zscore (x, opt, vecdim) ¶z = zscore (x, opt, "all") ¶z = zscore (…, nanflag) ¶[z, mu, sigma] = zscore (…) ¶计算 x 的 Z 分数。
对于向量 x,Z 分数通过减去均值并除以标准差来计算。如果标准差为零,则除以 1。
如果 x 是一个向量,则 zscore (x) 返回 x 中元素的 Z 分数。
如果 x 是一个矩阵,则 zscore (x) 返回一个行向量,其中每个元素包含 x 中相应列的 Z 分数。
如果 x 是一个数组,则 zscore (x) 沿着 x 的第一个非单一维度计算 Z 分数。
可选参数 opt 确定计算标准差时所使用的归一化方式,其定义与 std 的相应参数相同。
可选的输入参数 dim 指定要操作的维度,必须是正整数。指定 x 的任何单一维度(包括超过 ndims (x) 的维度)将返回 zeros (size (x))。
通过输入 vecdim(一个包含非重复维度的向量)来指定多个维度,将沿着 vecdim 定义的数组切片进行操作。如果 vecdim 索引了 x 的所有维度,则等效于 "all" 选项。vecdim 中大于 ndims (x) 的任何维度将被忽略。
将维度指定为 "all" 将使 zscore 对 x 的所有元素进行操作,等效于 zscore (x(:))。
可选的变量 nanflag 指定在计算时是否包含或排除 NaN 值,可与之前指定的任何输入参数组合使用。nanflag 的默认值为 "includenan",表示在计算中保留 NaN 值。若要排除 NaN 值,请将 nanflag 设置为 "omitnan"。输出中与 x 相同位置仍会包含 NaN 值。
可选的输出 mu 和 sigma 包含均值和标准差。
z = normalize (x) ¶z = normalize (x, dim) ¶z = normalize (…, method) ¶z = normalize (…, method, option) ¶z = normalize (…, scale, scaleoption, center, centeroption) ¶[z, c, s] = normalize (…) ¶使用几种可用的缩放和居中方法之一,返回 x 中数据的归一化结果。
normalize 默认返回 x 的 zscore(Z 分数),定义为每个元素与 x 均值的标准差倍数。这相当于以数据均值为中心并按标准差进行缩放。x 必须是双精度或单精度浮点数的数值数组。
返回值 z 的大小与 x 相同。可选返回变量 c 和 s 是归一化中使用的中心化和缩放因子,满足:
z = (x - c) ./ s
如果 x 是一个向量,normalize 将对 x 中的数据进行操作。
如果 x 是一个矩阵,normalize 将对 x 中的每一列独立操作。
如果 x 是一个 N 维数组,normalize 将对 x 的第一个非单一维度独立操作。
如果给定了可选的第二个参数 dim,则沿着该维度进行操作。
normalize 忽略 x 中的 NaN 值,类似于 std、mean 和 median 中 omitnan 选项的行为。
可选的输入参数 method 和 option 可用于指定对 x 执行的归一化类型。请注意,只有 scale 和 center 选项可以使用下面定义的任何方法一起指定。有效的归一化方法有:
zscore(默认)将 x 中的元素归一化为到中心值的缩放距离。有效选项:
std(默认)数据以 mean (x) 为中心,并按标准差缩放。
robust数据以 median (x) 为中心,并按中位数绝对偏差缩放。
normz 是 x 的一般向量范数,option 是确定向量范数类型的归一化因子 p,其规则如下:
z = [sum (abs (x) .^ p)] ^ (1/p)
p 可以是任何正标量,特定值包括:
p = 1x 按 sum (abs (x)) 归一化。
p = 2(默认)x 按元素的欧几里得范数(即向量幅度)归一化。
p = Infx 按 max (abs (x)) 归一化。
scalex 按由 option 确定的因子进行缩放,option 可以是数值标量或以下之一:
std(默认)x 按其标准差缩放。
madx 按其中位数绝对偏差缩放。
firstx 按其第一个元素缩放。
iqrx 按其四分位距缩放。
rangex 按比例缩放到由 option 指定的范围,option 是一个包含两个元素的标量行向量。默认范围为 [0, 1]。
centerx 按 option 确定的量进行平移,option 可以是数值标量或以下之一:
mean(默认)x 按 mean (x) 平移。
medianx 按 median (x) 平移。
medianiqrx 按 median (x) 平移,并按四分位距缩放。
已知 MATLAB 不兼容性:
n = histc (x, edges) ¶n = histc (x, edges, dim) ¶[n, idx] = histc (…) ¶计算直方图计数。
当 x 是一个向量时,该函数统计 x 中落入由 edges 定义的直方图区间中的元素数量。edges 必须是一个单调递增的向量,用于定义直方图区间的边界。n(k) 包含 x 中满足 edges(k) <= x < edges(k+1) 的元素数量。n 的最后一个元素包含 x 中恰好等于 edges 最后一个元素的元素数量。
当 x 是一个 N 维数组时,计算将沿着 dim 维度进行。如果未指定,dim 默认为第一个非单一维度。
当请求第二个输出参数时,还将返回一个索引矩阵。idx 矩阵与 x 具有相同的大小。idx 的每个元素包含 x 中对应元素所落入的直方图区间的索引。
另请参阅: hist。
unique 函数(参见 unique)通常也用于统计。
c = nchoosek (n, k) ¶c = nchoosek (set, k) ¶计算 n 的二项式系数,或列出 set 中所有可能的组合。
如果 n 是一个标量,则计算 n 和 k 的二项式系数,定义为:
/ \ | n | n (n-1) (n-2) ... (n-k+1) n! | | = ------------------------- = --------- | k | k! k! (n-k)! \ /
这是从 n 个元素中每次取 k 个的组合数。
如果第一个参数是一个向量 set,则生成 set 中元素的所有组合,每次取 k 个,每个组合占一行。结果 c 有 k 列和 nchoosek (length (set), k) 行。
例如:
三个物品可以有多少种方式分成两两一组?
nchoosek (3, 2) ⇒ 3
可能的配对有哪些?
nchoosek (1:3, 2)
⇒ 1 2
1 3
2 3
编程说明:在计算二项式系数时,nchoosek 仅适用于非负整数参数。对于非整数和负标量参数,或需要同时计算多个二项式系数(使用向量作为 n 或 k 的输入)的情况,请使用 bincoeff。
P = perms (v) ¶P = perms (v, "unique") ¶生成向量 v 的所有排列,每个排列占一行。
如果 v 按升序排列,则结果按逆字典序返回。如果 v 是其他排列顺序,则结果也会相应地排列。因此,降序输入将产生按正常字典序排列的结果。结果的大小为 factorial (n) * n,其中 n 是 v 的长度。任何重复元素都会包含在输出中。
如果指定了可选参数 "unique",则只返回唯一的排列,比调用 unique (perms (v), "rows") 使用更少的内存和时间。
示例 1
perms ([1, 2, 3]) ⇒ 3 2 1 3 1 2 2 3 1 2 1 3 1 3 2 1 2 3
示例 2
perms ([1, 1, 2, 2], "unique") ⇒ 2 2 1 1 2 1 2 1 2 1 1 2 1 2 2 1 1 2 1 2 1 1 2 2
编程说明:如果未使用 "unique" 选项,v 的长度不应超过 10-12 以限制内存消耗。即使使用 "unique",v 中的唯一元素也不应超过 10-12 个。
y = ranks (x) ¶y = ranks (x, dim) ¶y = ranks (x, dim, rtype) ¶返回 x 沿着第一个非单一维度(针对结进行调整)的秩(即顺序统计量意义上的排名)。
如果给定了可选参数 dim,则沿着该维度进行操作。
可选参数 rtype 确定如何处理结。以下所有示例均假设输入为 [ 1, 2, 2, 4 ]。
"fractional"(默认)分数排名(1, 2.5, 2.5, 4);"competition" 竞赛排名(1, 2, 2, 4);"modified" 修正竞赛排名(1, 3, 3, 4);"ordinal" 序数排名(1, 2, 3, 4);"dense" 密集排名(1, 2, 2, 3)。cnt = run_count (x, n) ¶cnt = run_count (x, n, dim) ¶统计 x 沿着第一个非单一维度的向上游程,长度为 1, 2, …, n-1 以及大于或等于 n 的游程。
如果给定了可选参数 dim,则沿着该维度进行操作。
另请参阅: runlength。
版权所有 © 2024-2026 Octave中文网
ICP备案/许可证号:黑ICP备2024030411号-4