Linear regression between two samples, based on the 'statistics' package.

LTS Haskell 22.29:0.3
Stackage Nightly 2024-07-21:0.3
Latest on Hackage:0.3

See all snapshots statistics-linreg appears in

Maintained by Alp Mestanogullari
This version can be pinned in stack with:statistics-linreg-0.3@sha256:95c6efe6c7f6b26bc6e9ada90ab2d18216371cf59a6ef2b517b4a6fd35d9a76f,2544

Module documentation for 0.3

Provides functions to perform a linear regression between 2 samples, see the documentation of the linearRegression functions. This library is based on the statistics package.

  • 0.3: you can now use all functions on any instance of the Vector class (not just unboxed vectors).

  • 0.2.4: added distribution estimations for standard regression parameters.

  • 0.2.3: added robust-fit support.

  • 0.2.2: added the Total-Least-Squares version and made some refactoring to eliminate code duplication

  • 0.2.1: added the r-squared version and improved the performances.

Code sample:

import qualified Data.Vector.Unboxed as U

test :: Int -> IO ()
test k = do
  let n = 10000000
  let a = k*n + 1
  let b = (k+1)*n
  let xs = U.fromList [a..b]
  let ys = (\x -> x*100 + 2000) xs
  -- thus 100 and 2000 are the alpha and beta we want
  putStrLn "linearRegression:"
  print $ linearRegression xs ys

The r-squared and Total-Least-Squares versions work the same way.