Oracle中的COVAR_SAMP
函数是一个聚合函数,用于计算一组数字对的样本协方差。与COVAR_POP
函数不同,COVAR_SAMP
用于估计两个随机变量的协方差,特别是在我们处理的是总体的一个随机样本时。以下是COVAR_SAMP
函数的详细用法:
1. 语法
sql复制代码
COVAR_SAMP(expression1, expression2) [OVER (analytic_clause)] |
expression1
和expression2
:两个数值表达式,表示要计算样本协方差的两个变量。OVER (analytic_clause)
:可选的分析子句,用于定义窗口计算。当COVAR_SAMP
作为分析函数使用时,需要使用OVER
子句来指定窗口。
2. 示例
假设我们有一个名为sales
的表,其中包含revenue
(收入)和cost
(成本)两列,我们可以使用COVAR_SAMP
函数来计算它们的样本协方差:
sql复制代码
SELECT COVAR_SAMP(revenue, cost) AS sample_covariance | |
FROM sales; |
3. 参数解释
expression1
和expression2
:这是函数的输入参数,表示要计算协方差的两个数值表达式。这些表达式可以是列名、算术表达式或常数。OVER (analytic_clause)
:这是一个可选的分析子句,用于定义窗口计算。当COVAR_SAMP
作为分析函数使用时,此子句是必要的。窗口可以基于分区(PARTITION BY
)和/或排序(ORDER BY
)子句来定义。
4. 计算方式
COVAR_SAMP
函数使用以下公式来计算样本协方差:
covsamp(X,Y)=n−1∑i=1n(xi−xˉ)(yi−yˉ)
其中:
- X 和 Y 是两个随机变量(即
expression1
和expression2
)。 - xi 和 yi 是这两个变量的观测值。
- xˉ 和 yˉ 是这两个变量的样本均值。
- n 是观测值的数量(即非NULL的
(expression1, expression2)
对的数量)。
5. 返回值
COVAR_SAMP
函数返回一个NUMBER
类型的值,表示输入的两个数值表达式的样本协方差。如果输入的数据集为空(即没有非NULL的(expression1, expression2)
对),则返回NULL。
6. 注意事项
- 与其他聚合函数一样,
COVAR_SAMP
可以与GROUP BY
子句结合使用,以计算每个组的样本协方差。 - 协方差本身只能表明变量之间是否存在线性关系以及关系的方向(正或负),但并不能说明关系的强度。要评估关系的强度,通常还需要查看协方差的具体值和/或计算相关系数。
- 当使用
COVAR_SAMP
作为分析函数时,可以通过OVER
子句定义窗口,以便在数据集的子集上计算协方差。
7. 归纳
COVAR_SAMP
函数是Oracle中用于计算两个数值表达式之间样本协方差的聚合函数。它使用无偏估计器来计算协方差,这意味着它假设输入的数据集是总体的一个随机样本。通过提供两个数值表达式作为参数,并应用适当的统计公式,该函数可以返回一个表示这两个变量之间线性关系强度和方向的数值。在数据分析、统计建模和预测等任务中,COVAR_SAMP
函数是一个非常有用的工具。