mysql计算相关系数_用sql实现相关系数的计算

本文介绍了如何在MySQL中利用SQL语句计算相关系数,提供了一个示例代码创建样本数据并进行计算,展示了通过自定义SQL实现统计查询的便利性。同时也提到了Oracle数据库自带的相关系数函数CORR,并给出了计算平均误差ME、平均绝对误差MAE和均方根误差RMSE的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册

e7e18342b3804f47fbca7cee34cccdb3.gif

0287efeb90d747c1295e90ed13e6096a.png

x

本帖最后由 静言_GRMC 于 2018-5-25 13:07 编辑

平时工作中要用到好多统计查询功能,一直用sql比较顺手,最近需要做相关系数方面的统计,发现除了Oracle自带了函数外,ms sql和mysql都没有自带计算的函数,因此根据相关系数的公式,编写了sql来实现直接从数据库计算,简单又方便。

(当然用excel,matlab之类的一个函数搞定,但数据存在数据库里面,用其他的方式还得把数据导出来才行,通过sql可以直接在数据库计算,更加的方便)

TIM截图20180525130616.png (16.52 KB, 下载次数: 0)

2018-5-25 13:06 上传

MySQL计算相关关系示例代码:

create table sample( xfloat not null, y float not null );

insert into sample values(1, 10), (2, 4), (3, 5), (6,17);

select @ax := avg(x),

@ay := avg(y),

@div := (stddev_samp(x) *stddev_samp(y))

from sample;

select sum( ( x - @ax ) *(y - @ay) ) / ((count(x) ) * @div) from sample;

+---------------------------------------------------------+

| sum( ( x - @ax ) * (y -@ay) ) / ((count(x) ) * @div) |

+---------------------------------------------------------+

|                                      0.700885077729073 |

+---------------------------------------------------------+

Oracle有自带相关系数的函数CORR可以直接计算。

此外还可以计算平均误差ME,平均绝对误差MAE,均方根误差RMSE

select Sum(X-Y)/COUNT(X) as ME,Sum(abs(X-Y))/COUNT(X) as MAE,SQRT(sum(POWER(X-Y,2))/COUNT(X)) as RMSE FROM TABLE

是不是也很方便呢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值