regr_intercept
The regr_intercept() aggregate function calculates the y-intercept of the univariate linear regression line for a group of data points, where the dependent variable is (y) and the independent variable is (x). The intercept is the point where the regression line crosses the y-axis when x=0.
Examples
The following example uses a simplified version of the film table from the Pagila database, containing only the title, length and rating columns. The complete schema for the film table can be found on the Pagila database website.
DROP TABLE IF EXISTS film;
CREATE TABLE film (
title text NOT NULL,
length int,
rating int
);
INSERT INTO film(title, length, rating) VALUES
('ATTRACTION NEWTON', 83, 5),
('CHRISTMAS MOONSHINE', 150, 7),
('DANGEROUS UPTOWN', 121, 4),
('KILL BROTHERHOOD', 54, 3),
('HALLOWEEN NUTS', 47, 5),
('HOURS RAGE', 122, 7),
('PIANIST OUTFIELD', 136, 7),
('PICKUP DRIVING', 77, 3),
('INDEPENDENCE HOTEL', 157, 7),
('PRIVATE DROP', 106, 4),
('SAINTS BRIDE', 125, 3),
('FOREVER CANDIDATE', 131, 7),
('MILLION ACE', 142, 5),
('SLEEPY JAPANESE', 137, 4),
('WRATH MILE', 176, 7),
('YOUTH KICK', 179, 7),
('CLOCKWORK PARADISE', 143, 5);
The following query uses the regr_intercept() function to calculate the y-intercept of the regression line for valid pairs of rating and length:
SELECT
REGR_INTERCEPT(rating, length) AS YIntercept
FROM film;
The query returns:
yintercept
--------------------
2.1055200882495355
(1 row)