Copyright | 2014 Bryan O'Sullivan |
---|---|
License | BSD3 |
Safe Haskell | Safe-Inferred |
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
:: [Vector] | Non-empty list of predictor vectors. Must all have
the same length. These will become the columns of
the matrix A solved by |
-> Vector | Responder vector. Must have the same length as the predictor vectors. |
-> (Vector, Double) |
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
rSquare
for 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
:: Matrix | A has at least as many rows as columns. |
-> Vector | b has the same length as columns in A. |
-> Vector |
Compute the ordinary least-squares solution to overdetermined linear system Ax=b. In other words it finds
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
:: Matrix | Predictors (regressors). |
-> Vector | Responders. |
-> Vector | Regression coefficients. |
-> Double |
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.
Arguments
:: GenIO | |
-> Int | Number of resamples to compute. |
-> CL Double | Confidence level. |
-> ([Vector] -> Vector -> (Vector, Double)) | Regression function. |
-> [Vector] | Predictor vectors. |
-> Vector | Responder vector. |
-> IO (Vector (Estimate ConfInt Double), Estimate ConfInt Double) |
Bootstrap a regression function. Returns both the results of the regression and the requested confidence interval values.