fintech-algorithms
Using a coding agent? Give it the skill: npx skills add IslamBaraka90/Fintech-Algorithms-Library What it does →

Simple Ordinary Least Squares Regression

Install and import#

bash
npm install fintech-algorithms
ts
import { simpleOrdinaryLeastSquaresRegression } from "fintech-algorithms/foundations/dependence-regression-and-model-foundations/simple-ordinary-least-squares-regression";

Signature#

simpleOrdinaryLeastSquaresRegression(input)

Fits a single-predictor ordinary least squares line of input.y on input.x and returns the fitted coefficients with the in-sample fitted values.

Parameters#

NameTypeNotes
inputD00InputOne record holding the predictor series x and the outcome series y, aligned position by position.
x: non-empty list of finite numbers, at least two, not all identical · y: finite numbers, same length as x

Returns#

D00Output

An object with intercept, slope (covariance over the predictor's sample variance) and predictions (the fitted value at each observed x).

Errors#

  • When x or y is missing, empty, or contains a non-finite number — throws RangeError
  • When x and y have different lengths, or fewer than two observations — the least-squares fit is computed for every topic in the family before the topic branch is taken — throws RangeError
  • When x is constant, which leaves the regression slope undefined — throws RangeError

Complexity: time O(n), space O(n).

Worked example#

verified This is the worked example published in the article, replayed by the test suite on every run. The output cannot drift.

Input#

input
{
  "x": [1, 2, 3, 4, 5, 6],
  "y": [2, 3, 5, 4, 6, 7],
  "groups": ["A", "A", "A", "B", "B", "B"],
  "predictX": 7,
  "otherPredictor": [2, 4, 5, 8, 9, 13]
}

Call#

simpleOrdinaryLeastSquaresRegression(input)

Returns#

object with 2 fields: intercept, slope

{
  "intercept": 1.2000000000000002,
  "slope": 0.9428571428571428
}

Diagrams#

Simple Ordinary Least Squares Regression — article hero
Simple Ordinary Least Squares Regression — calculation ledger
Simple Ordinary Least Squares Regression — concept anatomy
Simple Ordinary Least Squares Regression — failure boundary
Simple Ordinary Least Squares Regression — method map
Simple Ordinary Least Squares Regression — scenario contrast

How it works#

This page states the contract — how to call it correctly. The article explains the concept: why it works, and where it breaks.

Read the article →

References#

The rest of the Dependence, Regression, and Model Foundations family#