Hive零基础从入门到实战 进阶篇(八) HiveQL:方差、协方差函数

目录

 

前言

1. 方差、协方差函数表

2. 名词解释

2.1 方差、标准差

2.2 无偏样本方差、无偏样本标准差

2.3 总体协方差、样本协方差

3. 函数功能演示

3.1 方差与无偏方差

3.2 总体协方差与样本协方差


 

前言

在入门篇(十五)中我们已经介绍过常用的简单聚合函数,后续几篇博文我们会逐一介绍其他功能更加强大的聚合函数。本文来介绍Hive中的方差、标准差函数。

 

1. 方差、协方差函数表

返回类型

函数名

描述

DOUBLE

variance(col),

var_pop(col)

返回组内某个数字列的方差

DOUBLE

var_samp(col)

返回组内某个数字列的无偏样本方差

DOUBLE

stddev_pop(col)

返回组内某个数字列的标准差

DOUBLE

stddev_samp(col)

返回组内某个数字列的无偏样本标准差

DOUBLE

covar_pop(col1, col2)

返回组内两个数字列的总体协方差

DOUBLE

covar_samp(col1, col2)

返回组内两个数字列的样本协方差

 

2. 名词解释

2.1 方差、标准差

方差是各个数据与平均数之差的平方的和的平均数,而标准差是方差的算术平方根。

方差计算公式:

其中,x表示样本的平均数,n表示样本的数量,xi表示个体,而s^2就表示方差。

方差是和中心偏离的程度,用来衡量一批数据的波动大小(即这批数据偏离平均数的大小)并把它叫做这组数据的方差,记作s^2。 在样本容量相同的情况下,方差越大,说明数据的波动越大,越不稳定。

 

2.2 无偏样本方差、无偏样本标准差

这两个概念都是统计学中的,因为传统统计学中一般数据量较小,30个以上的样本就是大数据了,所以分母是n还是n-1对结果影响较大。而在大数据时代,其实两者的结果基本是一样的了,不过在数据样本数小于30时仍然建议使用无偏样本方差。

无偏样本方差计算公式:

无偏样本标准差为s。

 

2.3 总体协方差、样本协方差

在概率论和统计学中,协方差用于衡量两个变量的总体误差。而方差是协方差的一种特殊情况,即当两个变量是相同的情况。 两个随机变量X与Y之间的样本协方差Cov(X,Y)定义为:

Hive零基础从入门到实战 进阶篇(八) HiveQL:方差、协方差函数_第1张图片

总体协方差的分母则为n。

标准差和方差一般是用来描述一维数据的,但现实生活我们常常遇到含有多维数据的数据集,最简单的大家上学时免不了要统计多个学科的考试成绩。面对这样的数据集,我们当然可以按照每一维独立的计算其方差,但是通常我们还想了解更多,比如,一个男孩子的猥琐程度跟他受女孩子欢迎程度是否存在一些联系啊,协方差就是这样一种用来度量两个随机变量关系的统计量。

协方差的结果有什么意义呢?如果结果为正值,则说明两者是正相关的(从协方差可以引出“相关系数“的定义,我们下篇博客介绍),也就是说一个人越猥琐就越受女孩子欢迎, 而结果为负值就说明负相关的,越猥琐女孩子越讨厌。 如果为0,也是就是统计上说的“相互独立“,即男孩子的猥琐程度跟他受女孩子欢迎程度没有关系。

 

3. 函数功能演示

创建一个文件,随意输入两列数,然后新建一个临时表,将数据插入

[root@hadoop ~]# vim test.txt
1,1
1,2
1,3
2,4
2,5
2,6
3,7
3,8
3,9

hive
hive (app)> CREATE TABLE temp_test2 (
          >       num1 INT
          >       ,num2 INT
          >       ) row format delimited fields terminated BY ',';
OK
Time taken: 0.055 seconds

hive (app)> load data local inpath '/root/test.txt' into table temp_test2; 
Loading data to table app.temp_test2
Table app.temp_test2 stats: [numFiles=1, totalSize=12]
OK
Time taken: 0.484 seconds

hive (app)> select * from temp_test2;
OK
temp_test2.num1	temp_test2.num2
1	1
1	2
1	3
2	4
2	5
2	6
3	7
3	8
3	9
Time taken: 0.081 seconds, Fetched: 3 row(s)

3.1 方差与无偏方差

方差         var_pop(col)

无偏方差  var_samp(col)

方差

hive (app)> select num1,var_pop(num2) from temp_test2 group by num1;

1	0.6666666666666666
2	0.6666666666666666
3	0.6666666666666666

无偏方差

hive (app)> select num1,var_samp(num2) from temp_test2 group by num1;

1	1.0
2	1.0
3	1.0

3.2 总体协方差与样本协方差

总体协方差         covar_pop(col1, col2)

样本协方差         covar_samp(col1, col2)

总体协方差

hive (app)> select covar_pop(num1,num2) from temp_test2;

2.0

样本协方差

hive (app)> select covar_samp(num1,num2) from temp_test2;

2.25

 

 


能看到这里的同学,就右上角点个赞吧,3Q~

 

你可能感兴趣的:(Hive零基础从入门到实战 进阶篇(八) HiveQL:方差、协方差函数)