我想在PostGreSQL中执行线性回归。 y = wx+b
,我能够得到斜率并截取线性趋势方程。但是,我的目标是根据趋势线获得y'
的新“预测”值。例如对于1970年,我计算
w (slope)= 5.89
intercept = -11526.88
计算y'_1970
将是2014*5.89-11526.88 = 82.78
我不知道如何重用斜率并截取别名来计算预测值。我当然可以重复该斜率并拦截查询,但是看起来很乱。如何使用通过窗口函数计算出的别名?
SELECT *,
regr_slope(salary,year)
OVER (ORDER BY year ROWS BETWEEN 9 PRECEDING AND CURRENT ROW) AS slope,
regr_intercept(salary,year)
OVER (ORDER BY year ROWS BETWEEN 9 PRECEDING AND CURRENT ROW) AS intercept,
regr_slope(salary,year)
OVER (ORDER BY year ROWS BETWEEN 9 PRECEDING AND CURRENT ROW) * year +
regr_intercept(salary,year)
OVER (ORDER BY year ROWS BETWEEN 9 PRECEDING AND CURRENT ROW) AS intercept_end
FROM test01
WHERE month = 1