问题描述
我在一个大型排放数据库中搜索具有相关值的成对列。
我的第一个努力基于盲目地将REGR_R2函数应用于离散的数字数据列对,确定了大量R2值为1的集合。
当我开始查看输出时,我注意到许多REGR_R2结果并不可靠,因为当语法REGR_R2(y_col,x_col) 中的y列为常量 (即y_col) 时,REGR_R2似乎返回1的值。
我计划在REGR_R2计算之前在脚本中添加标准偏差计算,并在y_col的标准偏差 = 0时放弃REGR_R2计算。
但是,为什么当y参数为常量且x参数为变量时,REGR_R2返回1的值?它不应该返回0或null吗?
表xy_values
Y _ 谷x _ 谷
第1行0.0038 0.023
第2行0.0038 0.022
第3行0.0038 0.085
第4行0.0038 0.087
第5行0.0038 0.019
收益率
REGR_R2(Y_VAL,X_VAL) = 1
谢谢,
斯蒂芬
我的第一个努力基于盲目地将REGR_R2函数应用于离散的数字数据列对,确定了大量R2值为1的集合。
当我开始查看输出时,我注意到许多REGR_R2结果并不可靠,因为当语法REGR_R2(y_col,x_col) 中的y列为常量 (即y_col) 时,REGR_R2似乎返回1的值。
我计划在REGR_R2计算之前在脚本中添加标准偏差计算,并在y_col的标准偏差 = 0时放弃REGR_R2计算。
但是,为什么当y参数为常量且x参数为变量时,REGR_R2返回1的值?它不应该返回0或null吗?
表xy_values
Y _ 谷x _ 谷
第1行0.0038 0.023
第2行0.0038 0.022
第3行0.0038 0.085
第4行0.0038 0.087
第5行0.0038 0.019
select regr_r2(xy_values.y_val, xy_values.x_val) from xy_values;
收益率
REGR_R2(Y_VAL,X_VAL) = 1
谢谢,
斯蒂芬
专家解答
根据文档:
https://docs.oracle.com/en/database/oracle/oracle-database/18/sqlrf/REGR_-Linear-Regression-Functions.html#GUID-A675B68F-2A88-4843-BE2C-FCDE9C65F9A9
https://docs.oracle.com/en/database/oracle/oracle-database/18/sqlrf/REGR_-Linear-Regression-Functions.html#GUID-A675B68F-2A88-4843-BE2C-FCDE9C65F9A9
NULL if VAR_POP(expr2) = 0
1 if VAR_POP(expr1) = 0 and
VAR_POP(expr2) != 0
POWER(CORR(expr1,expr),2) if VAR_POP(expr1) > 0 and
VAR_POP(expr2 != 0
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




