COVAR_POP 函数
功能描述
COVAR_POP 函数用于计算两个数值列之间的总体协方差(Population Covariance)。协方差衡量两个变量共同变化的程度,是衡量变量相关性的统计量。
参数说明
y:数值类型的表达式,作为因变量。必须是可以转换为 DOUBLE 的数值类型。
x:数值类型的表达式,作为自变量。必须是可以转换为 DOUBLE 的数值类型。
返回类型
- 返回
DOUBLE 类型的总体协方差值。
- 正值:x 和 y 倾向于同向变化(正相关)
- 负值:x 和 y 倾向于反向变化(负相关)
- 接近 0:变量之间相关性较弱
注意事项
- 函数计算过程中,
NULL 值会被忽略。
- 如果有效数据点少于 1 个,返回
NULL。
- 总体协方差使用除以 n 的公式计算,而样本协方差使用除以 (n-1) 的公式,因此总体协方差通常小于样本协方差。
使用示例
- 基本用法:计算总体协方差
SELECT covar_pop(c1, c2)
FROM VALUES (1, 1), (2, 2), (2, 2), (3, 3) AS tab(c1, c2);
+-------------------+
| covar_pop(c1, c2) |
+-------------------+
| 0.5 |
+-------------------+
- 与样本协方差对比
SELECT covar_pop(c1, c2), covar_samp(c1, c2)
FROM VALUES (1, 1), (2, 2), (2, 2), (3, 3) AS tab(c1, c2);
+-------------------+--------------------+
| covar_pop(c1, c2) | covar_samp(c1, c2) |
+-------------------+--------------------+
| 0.5 | 0.6666666666666666 |
+-------------------+--------------------+
- 完全正相关的数据
SELECT covar_pop(x, y)
FROM VALUES (1, 2), (2, 4), (3, 6), (4, 8) AS t(x, y);
+------------------+
| covar_pop(x, y) |
+------------------+
| 2.5 |
+------------------+
- 完全负相关的数据
SELECT covar_pop(x, y)
FROM VALUES (1, 8), (2, 6), (3, 4), (4, 2) AS t(x, y);
+------------------+
| covar_pop(x, y) |
+------------------+
| -2.5 |
+------------------+
- 无相关的数据
SELECT covar_pop(x, y)
FROM VALUES (1, 5), (2, 5), (3, 5), (4, 5) AS t(x, y);
+------------------+
| covar_pop(x, y) |
+------------------+
| 0.0 |
+------------------+