Postgresql方法,用于查找线的斜率和强制通过原点

时间:2014-11-26 19:20:54

标签: sql postgresql aggregate-functions postgresql-8.4

我有一个包含2个数字列Y和X的临时表。

CREATE TEMP TABLE findslope(y numeric,x numeric);

然后我填充了所需的X和Y,用于我想要符合我目前正在使用以下内容的最小二乘最佳拟合线的行:

SELECT REGR_SLOPE(y, x) slope FROM findslope into slope_variable;

这很有效,但是可以强制线穿过一个点或设置拦截吗?具体来说,我喜欢通过原点的线:0,0。

2 个答案:

答案 0 :(得分:2)

以下是工作代码:

SELECT 
  sum(y*x) / sum(x*x) as slope
FROM findslope INTO slope_variable

答案 1 :(得分:0)

我已经有一段时间了,因为我必须得到正确的数学,所以请自行验证。我将从维基上的Simple linear regression开始。

我认为会这样做:

SELECT regr_sxy(y,x)/regr_sxy(x,x) AS slope FROM findslope INTO slope_variable;