oracle数据库之统计分析(方差、标准差、协方差)

一、方差与标准差

/*
STDDEV()函数功能描述:
计算当前行关于组的标准偏离。(Standard Deviation)
STDDEV_SAMP()函数功能描述:
该函数计算累积样本标准偏离,并返回总体变量的平方根,其返回值与VAR_POP函数的平方根相同。
区别:当计算的输入数据只有一行时,stddev()返回0,而stddev_samp()返回null。
*/
–例子:
SELECT deptno,
STDDEV (sal) AS “STDDEV”, --标准差
STDDEV_SAMP (sal) AS “STDDEV_SAMP”, --样本标准差
VAR_POP (sal) AS “VAR_POP”, --方差
VAR_SAMP (sal) AS “VAR_SAMP” --样本方差
FROM scott.emp
GROUP BY deptno;

二、协方差

E[(X-E(X))(Y-E(Y))]称为随机变量X和Y的协方差,记作COV(X,Y),即:COV(X,Y)=E[(X-E(X))(Y-E(Y))]。若两个随机变量X和Y相互独立,则COV(X,Y)=0,因而若上述数学期望不为零,则X和Y必定不是相互独立的,亦即他们之间存在着一定的联系。

/*
COVAR_POP功能描述:
返回一对表达式的总体协方差。
COVAR_SAMP功能描述:
返回一对表达式的样本协方差
*/
–例子:
SELECT
a.department_id,
a.employee_id,
b.employee_id manager_id,
a.first_name||’ ‘||a.last_name employee_name,
b.first_name||’ '||b.last_name manager_name,
a.hire_date,
a.salary employee_salary,
b.salary manager_salary,
COVAR_POP(a.salary,b.salary) OVER (ORDER BY a.department_id,a.hire_date )
AS CUM_COVP, --总体协方差
COVAR_SAMP(a.salary,b.salary) OVER (ORDER BY a.department_id,a.hire_date )
AS CUM_SAMP --样本协方差
FROM employees a,employees b
WHERE a.manager_id=b.employee_id(+);

你可能感兴趣的:(Oracle,协方差)