在oracle中通过sql实现一元线性回归方程

一元线性回归是通过拟合一条直线 来研究两个变量之间的关系,从而实现预测。
假设一组数据是价格和供给量的关系。在excel中画出散点图之后通过添加趋势线可以轻易得到一元线性回归方程式。
在oracle中通过sql实现一元线性回归方程_第1张图片 在oracle中通过sql实现一元线性回归方程_第2张图片
首先来看看看一元线性回归方程式,了解求a,b的公式,求误差的平方的和就是求上图中所有蓝色点到对应直线的距离的平方和。
在oracle中通过sql实现一元线性回归方程_第3张图片
1、将数据导入到oracle中并
并求斜率:
select ((regr_count(x, y) * sum(x * y) -
       sum(x) * sum(a.y)) /
       (regr_count(x, y) * sum(x * x) -
       sum(x) * sum(x)))
  from TTS_BI.TEMP_A a;



在oracle中通过sql实现一元线性回归方程_第4张图片
在oracle中通过sql实现一元线性回归方程_第5张图片
2、求截距:
select avg(y) -
       avg(x) *
      ((regr_count(x, y) * sum(x * y) -
       sum(x) * sum(a.y)) /
       (regr_count(x, y) * sum(x * x) -
       sum(x) * sum(x)))
  from TTS_BI.TEMP_A  a;


在oracle中通过sql实现一元线性回归方程_第6张图片
得出的结果与excel图上的结果相同,公式为 y = 6.4286x - 1.4286。
3、最后通过oracle自带函数求一元线性回归:
select regr_intercept(y, x) as inter,
       regr_r2(y, x) as r2,
       regr_slope(y, x) as slope
  from TTS_BI.TEMP_A   a;


在oracle中通过sql实现一元线性回归方程_第7张图片
在oracle中通过sql实现一元线性回归方程_第8张图片

你可能感兴趣的:(oracle,sql实现线性回归,最小二乘法推导过程)