| Copyright | 2014 Bryan O'Sullivan |
|---|---|
| License | BSD3 |
| Safe Haskell | None |
| Language | Haskell2010 |
Statistics.Regression
Description
Functions for regression analysis.
Synopsis
- olsRegress :: [Vector] -> Vector -> (Vector, Double)
- ols :: Matrix -> Vector -> Vector
- rSquare :: Matrix -> Vector -> Vector -> Double
- bootstrapRegress :: GenIO -> Int -> CL Double -> ([Vector] -> Vector -> (Vector, Double)) -> [Vector] -> Vector -> IO (Vector (Estimate ConfInt Double), Estimate ConfInt Double)
Documentation
Arguments
Non-empty list of predictor vectors. Must all have
the same length. These will become the columns of
the matrix A solved by ols .
Responder vector. Must have the same length as the predictor vectors.
Perform an ordinary least-squares regression on a set of predictors, and calculate the goodness-of-fit of the regression.
The returned pair consists of:
- A vector of regression coefficients. This vector has one more element than the list of predictors; the last element is the y-intercept value.
- R², the coefficient of determination (see
rSquarefor details).
>>>import qualified Data.Vector.Unboxed as VU>>>:{olsRegress [ VU.fromList [0,1,2,3] ] (VU.fromList [1000, 1001, 1002, 1003]) :} ([1.0000000000000218,999.9999999999999],1.0)
Arguments
A has at least as many rows as columns.
b has the same length as columns in A.
Compute the ordinary least-squares solution to overdetermined linear system \(Ax = b\). In other words it finds
\[ \operatorname{argmin}|Ax-b|^2 \].
All columns of \(A\) must be linearly independent. It's not checked function will return nonsensical result if resulting linear system is poorly conditioned.
>>>import qualified Data.Vector.Unboxed as VU>>>:{ols (fromColumns [ VU.fromList [0,1,2,3] , VU.fromList [1,1,1,1] ]) (VU.fromList [1000, 1001, 1002, 1003]) :} [1.0000000000000218,999.9999999999999]
>>>:{ols (fromColumns [ VU.fromList [0,1,2,3] , VU.fromList [4,2,1,1] , VU.fromList [1,1,1,1] ]) (VU.fromList [1000, 1001, 1002, 1003]) :} [1.0000000000005393,4.2290644612446807e-13,999.9999999999983]
Arguments
Predictors (regressors).
Responders.
Regression coefficients.
Compute R², the coefficient of determination that indicates goodness-of-fit of a regression.
This value will be 1 if the predictors fit perfectly, dropping to 0 if they have no explanatory power.