26.5 相关与回归分析

Octave 提供了多个函数用于研究定量变量集合之间的关系。

 
c = cov (x)
c = cov (x, y)
c = cov (…, opt)
c = cov (…, nanflag)

计算协方差矩阵。

两个变量向量 AB 之间的协方差计算公式为:

cov (a,b) = 1/(N-1) * SUM_i (a(i) - mean (a)) * (b(i) - mean (b))

其中 N 是向量 ab 的长度。

如果使用一个参数调用,则计算 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),即两个随机变量 xy 之间的协方差。xy 必须具有相同数量的元素,将被视为向量,协方差计算为 cov (x(:), y(:))。输出将是一个 2×2 的协方差矩阵。

可选参数 opt 决定归一化方式。有效值如下:

0 [默认值]:

N-1 归一化。这提供了协方差的最佳无偏估计。

1:

N 归一化。这提供了关于均值的二阶矩。当 N=1 时,opt 被设为 1。

可选参数 nanflag 必须出现在参数列表的最后,控制 cov 处理 NaN 值的方式。三个有效值如下:

includenan [默认值]:

保留 xy 中的 NaN 值。输出将遵循算术运算中处理 NaN 值的常规规则。

omitrows:

在计算协方差之前,从 xy 中移除包含 NaN 值的行。一个变量中的 NaN 将导致该行从 xy 两者中都被移除。

partialrows:

对于每个第 i 行和第 j 行的协方差计算,独立地从 xy 中忽略包含 NaN 值的行。这可能导致用于计算协方差矩阵每个元素的观测数量 N 不同。

兼容性说明:在 Octave v9.1.0 之前,covxy 的行视为多元随机变量。较新的版本尝试与 MATLAB 保持完全兼容,将 xy 视为两个单变量分布(无论形状如何),从而产生 2x2 的输出矩阵。在此新版本中运行 cov 时,依赖于 Octave 先前定义的代码需要进行修改。可以通过使用 NaN 包的 covm 函数(即 covm (x, y, "D"))来获得之前的行为。

另请参阅: corr.

 
r = corr (x)
r = corr (x, y)

计算相关系数矩阵。

如果 xy 的每一行是一个观测值,每一列是一个变量,则 corr (x, y) 的第 (i, j)个元素是 x 中第 i 个变量与 y 中第 j 个变量之间的相关系数。xy 必须具有相同的行数(观测值数)。两个变量向量 AB(即 xy 的列)的相关系数计算公式为:

corr (A,B) = cov (A,B) / (std (A) * std (B))

输出变量 r 的维度为 n x m,其中 n 和 m 分别是 xy 中变量(列)的数量。请注意,由于任何标量的标准差为零,因此对于任何标量或单行输入,相关系数矩阵将返回 NaN。

如果使用一个参数调用,则计算 corr (x, x),即 x 中每两列之间的相关系数。

另请参阅: cov, corrcoef.

 
r = corrcoef (x)
r = corrcoef (x, y)

计算相关系数矩阵。

corrcoef (x, y) 等价于 corr (x, y)

另请参阅: corr.

 
c = corrcov (v)
[c, sd] = corrcov (v)

将协方差矩阵转换为相关系数矩阵。

输入 v 是包含观测值协方差矩阵的方形、对称且半正定的数值矩阵。输出的相关系数矩阵 c 和标量标准差向量 sd 的计算方式为:

c = v ./ (sd * sd.')

其中 sd = sqrt (diag (v))。输出 ccorr (x)(对于数据矩阵 x)的输出等价。

实现说明:合适的协方差矩阵是由 cov 产生的方阵、对称且半正定的数值矩阵。corrcov 仅使用近似检查来验证半正定性,这可能会将具有小负特征值的不正确输入判定为通过。

另请参阅: cov, corr, corrcoef.

 
rho = spearman (x)
rho = spearman (x, y)

计算斯皮尔曼秩相关系数 rho

对于两个数据向量 xy,斯皮尔曼的 rhoxy 的秩之间的相关系数。

如果 xy 来自独立分布,则 rho 的均值为零,方差为 1 / (N - 1),其中 N 是向量 xy 的长度,且 rho 渐近服从正态分布。

spearman (x) 等价于 spearman (x, x)

另请参阅: ranks, kendall.

 
tau = kendall (x)
tau = kendall (x, y)

计算肯德尔的 tau

对于两个长度均为 N 的数据向量 xy,肯德尔的 tauxy 的所有秩差符号的相关性;即,若 xy 都包含各不相同的元素,则:

         1
tau = -------   SUM sign (q(i) - q(j)) * sign (r(i) - r(j))
      N (N-1)   i,j

其中 q(i) 和 r(i) 分别是 xy 的秩。

如果 xy 来自独立分布,则肯德尔的 tau 渐近服从正态分布,均值为 0,方差为 (2 * (2N+5)) / (9 * N * (N-1))

kendall (x) 等价于 kendall (x, x)

另请参阅: ranks, spearman.


版权所有 © 2024-2026 Octave中文网

ICP备案/许可证号:黑ICP备2024030411号-2