相关性算子可以计算两组数据的相关系数,用于分析这两组数据的变化趋势是否存在关联关系。
相关性算子
只支持华东2(上海)地域。
相关性算子支持最大数据量为1000万行。
用于离线调度的相关性算子。
计算两组数据的相关系数r。两组数据之间的相关程度通过相关系数r来表示。相关系数r的取值范围是-1~1。两组数据正相关时,r值在0~1范围;两组数据负相关时,r值在-1~0范围。
函数格式
SELECT correlation_analysis_pair(Col_1,Col_2,method)
输入参数
method:必填。JSON类型。
'pearson'
:皮尔森相关(Pearson),适用于变量是连续型变量(又称等间隔测度变量)。'spearman'
:斯皮尔曼相关(Spearman):适合于有序变量或不满足正态分布假设的等间隔数据。'kendall'
:肯德尔相关(Kendall),适合于有序变量或不满足正态分布假设的等间隔数据。
Col_1
:必选。double或int类型。分析的目标列。Col_2
:必选。double或int类型。被观测的指标列
输出参数
string
:string类型。输出格式[r,p]
。r是相关性系数, double或int类型,范围是-1~1。r的绝对值越接近1,两组数据的相关性越强。
p是假设检验的显著性值, double或int类型。
假设检验分为假设和检验,首先假定原假设为真,然后通过样本数据检验原假设是否成立。
确定原假设和备择假设。原假设是两组数据没有相关性,备择假设是两组数据有相关性。
确定显著性水平。显著性水平代表了,原假设为真的情况下,拒绝原假设的概率。在实践中一般选显著性水平为0.05。
计算p值。p值代表在原假设成立的情况下,计算得到的相关系数或绝对值更大的相关性系数出现的概率。
当概率p小于显著性水平0.05时,这个概率非常小,意味着样本数据或更极端数据的出现是不可能事件。因此我们有足够的理由拒绝原假设,认为这两组数据存在相关性。当p大于等于显著性水平0.05时,我们接受原假设,认为这两组数据不存在相关性。
函数示例一
-- 示例1:
SELECT correlation_analysis_pair(num1,num2,'spearman')
FROM table
-- 示例2:
SELECT correlation_analysis_pair(num1,num2,method)
FROM VALUES
(0.3,1,'pearson')
,(0.9,2,'pearson')
,(2.7,3,'pearson')
,(2,4,'pearson')
,(3.5,5,'pearson')
,(5,6,'pearson') t(num1,num2,method)
;
函数示例二
在物联网场景中,设备传感器会采集各种维度的数据,这些数据指标可能具有相关性。识别出数据指标间的相关性有助于探索分析数据的特征,也是后续建立模型的基础。
下载经过处理的油液温度和黏度数据。例如油液的温度和黏度具有高度相关性。在油液品质稳定时,油液的温度和黏度的变化趋势是相反的。因为温度和黏度均为连续数据,采用pearson方法。
SELECT correlation_analysis_pair(num1,num2,'pearson')
FROM correlation_analysis_case_test;
输出[r,p]=[-0.94, 0.0]
。r = -0.94
说明温度和黏度数据明显负相关。p=0
说明两组数据的相关性非常显著。下图为某种油液的温度-黏度示意图。