Octave 提供了多个函数用于研究定量变量集合之间的关系。
c = cov (x) ¶c = cov (x, y) ¶c = cov (…, opt) ¶c = cov (…, nanflag) ¶计算协方差矩阵。
两个变量向量 A 和 B 之间的协方差计算公式为:
cov (a,b) = 1/(N-1) * SUM_i (a(i) - mean (a)) * (b(i) - mean (b))
其中 N 是向量 a 和 b 的长度。
如果使用一个参数调用,则计算 cov (x, x)。若 x 是向量,结果为 x 的标量方差。若 x 是矩阵,则 x 的每一行视为一个观测值,每一列视为一个变量,且 cov (x) 的第 (i, j) 个元素是 x 的第 i 列与第 j 列之间的协方差。若 x 的维度为 n x m,则输出 c 将是一个 m x m 的方形协方差矩阵。
如果使用两个参数调用,则计算 cov (x, y),即两个随机变量 x 和 y 之间的协方差。x 和 y 必须具有相同数量的元素,将被视为向量,协方差计算为 cov (x(:), y(:))。输出将是一个 2×2 的协方差矩阵。
可选参数 opt 决定归一化方式。有效值如下:
用 N-1 归一化。这提供了协方差的最佳无偏估计。
用 N 归一化。这提供了关于均值的二阶矩。当 N=1 时,opt 被设为 1。
可选参数 nanflag 必须出现在参数列表的最后,控制 cov 处理 NaN 值的方式。三个有效值如下:
保留 x 和 y 中的 NaN 值。输出将遵循算术运算中处理 NaN 值的常规规则。
在计算协方差之前,从 x 和 y 中移除包含 NaN 值的行。一个变量中的 NaN 将导致该行从 x 和 y 两者中都被移除。
对于每个第 i 行和第 j 行的协方差计算,独立地从 x 和 y 中忽略包含 NaN 值的行。这可能导致用于计算协方差矩阵每个元素的观测数量 N 不同。
兼容性说明:在 Octave v9.1.0 之前,cov 将 x 和 y 的行视为多元随机变量。较新的版本尝试与 MATLAB 保持完全兼容,将 x 和 y 视为两个单变量分布(无论形状如何),从而产生 2x2 的输出矩阵。在此新版本中运行 cov 时,依赖于 Octave 先前定义的代码需要进行修改。可以通过使用 NaN 包的 covm 函数(即 covm (x, y, "D"))来获得之前的行为。
另请参阅: corr.
r = corr (x) ¶r = corr (x, y) ¶计算相关系数矩阵。
如果 x 和 y 的每一行是一个观测值,每一列是一个变量,则 corr (x, y) 的第 (i, j)个元素是 x 中第 i 个变量与 y 中第 j 个变量之间的相关系数。x 和 y 必须具有相同的行数(观测值数)。两个变量向量 A 和 B(即 x 和 y 的列)的相关系数计算公式为:
corr (A,B) = cov (A,B) / (std (A) * std (B))
输出变量 r 的维度为 n x m,其中 n 和 m 分别是 x 和 y 中变量(列)的数量。请注意,由于任何标量的标准差为零,因此对于任何标量或单行输入,相关系数矩阵将返回 NaN。
如果使用一个参数调用,则计算 corr (x, x),即 x 中每两列之间的相关系数。
c = corrcov (v) ¶[c, sd] = corrcov (v) ¶将协方差矩阵转换为相关系数矩阵。
输入 v 是包含观测值协方差矩阵的方形、对称且半正定的数值矩阵。输出的相关系数矩阵 c 和标量标准差向量 sd 的计算方式为:
c = v ./ (sd * sd.')
其中 sd = sqrt (diag (v))。输出 c 与 corr (x)(对于数据矩阵 x)的输出等价。
实现说明:合适的协方差矩阵是由 cov 产生的方阵、对称且半正定的数值矩阵。corrcov 仅使用近似检查来验证半正定性,这可能会将具有小负特征值的不正确输入判定为通过。
rho = spearman (x) ¶rho = spearman (x, y) ¶计算斯皮尔曼秩相关系数 rho。
对于两个数据向量 x 和 y,斯皮尔曼的 rho 是 x 和 y 的秩之间的相关系数。
如果 x 和 y 来自独立分布,则 rho 的均值为零,方差为 1 / (N - 1),其中 N 是向量 x 和 y 的长度,且 rho 渐近服从正态分布。
spearman (x) 等价于 spearman (x, x)。
tau = kendall (x) ¶tau = kendall (x, y) ¶计算肯德尔的 tau。
对于两个长度均为 N 的数据向量 x、y,肯德尔的 tau 是 x 和 y 的所有秩差符号的相关性;即,若 x 和 y 都包含各不相同的元素,则:
1
tau = ------- SUM sign (q(i) - q(j)) * sign (r(i) - r(j))
N (N-1) i,j
其中 q(i) 和 r(i) 分别是 x 和 y 的秩。
如果 x 和 y 来自独立分布,则肯德尔的 tau 渐近服从正态分布,均值为 0,方差为 (2 * (2N+5)) / (9 * N * (N-1))。
kendall (x) 等价于 kendall (x, x)。
版权所有 © 2024-2026 Octave中文网
ICP备案/许可证号:黑ICP备2024030411号-2