criterion-1.6.4.0: Robust, reliable performance measurement and analysis

Copyright | (c) 2009-2014 Bryan O'Sullivan
License | BSD-style
Maintainer | bos@serpentine.com
Stability | experimental
Portability | GHC
Safe Haskell | Trustworthy
Language | Haskell2010

Criterion.Analysis

Description

Analysis code for benchmarks.

Synopsis

- data Outliers = Outliers {
  - samplesSeen :: !Int64
  - lowSevere :: !Int64
  - lowMild :: !Int64
  - highMild :: !Int64
  - highSevere :: !Int64
  }
- data OutlierEffect
  - = Unaffected
  - | Slight
  - | Moderate
  - | Severe
- data OutlierVariance = OutlierVariance {
  - ovEffect :: OutlierEffect
  - ovDesc :: String
  - ovFraction :: Double
  }
- data SampleAnalysis = SampleAnalysis {
  - anRegress :: [Regression]
  - anMean :: Estimate ConfInt Double
  - anStdDev :: Estimate ConfInt Double
  - anOutlierVar :: OutlierVariance
  }
- analyseSample :: Int -> String -> Vector Measured -> ExceptT String Criterion Report
- scale :: Double -> SampleAnalysis -> SampleAnalysis
- analyseMean :: Sample -> Int -> Criterion Double
- countOutliers :: Outliers -> Int64
- classifyOutliers :: Sample -> Outliers
- noteOutliers :: Outliers -> Criterion ()
- outlierVariance :: Estimate ConfInt Double -> Estimate ConfInt Double -> Double -> OutlierVariance
- resolveAccessors :: [String] -> Either String [(String, Measured -> Maybe Double)]
- validateAccessors :: [String] -> String -> Either String [(String, Measured -> Maybe Double)]
- regress :: GenIO -> [String] -> String -> Vector Measured -> ExceptT String Criterion Regression

# Documentation

data Outliers #

Outliers from sample data, calculated using the boxplot technique.

Constructors

Outliers |

Fields

- samplesSeen :: !Int64
- lowSevere :: !Int64

  More than 3 times the interquartile range (IQR) below the first quartile.

- lowMild :: !Int64

  Between 1.5 and 3 times the IQR below the first quartile.

- highMild :: !Int64

  Between 1.5 and 3 times the IQR above the third quartile.

- highSevere :: !Int64

  More than 3 times the IQR above the third quartile.

#### Instances

Instances details

FromJSON Outliers # |
Instance details Defined in Criterion.Types Methods parseJSON :: Value -> Parser Outliers # parseJSONList :: Value -> Parser [Outliers] # omittedField :: Maybe Outliers #
ToJSON Outliers # |
Instance details Defined in Criterion.Types Methods toJSON :: Outliers -> Value # toEncoding :: Outliers -> Encoding # toJSONList :: [Outliers] -> Value # toEncodingList :: [Outliers] -> Encoding # omitField :: Outliers -> Bool #
Binary Outliers # |
Instance details Defined in Criterion.Types Methods put :: Outliers -> Put # get :: Get Outliers # putList :: [Outliers] -> Put #
NFData Outliers # |
Instance details Defined in Criterion.Types Methods rnf :: Outliers -> () #
Monoid Outliers # |
Instance details Defined in Criterion.Types Methods mempty :: Outliers # mappend :: Outliers -> Outliers -> Outliers # mconcat :: [Outliers] -> Outliers #
Semigroup Outliers # |
Instance details Defined in Criterion.Types Methods (<>) :: Outliers -> Outliers -> Outliers # sconcat :: NonEmpty Outliers -> Outliers # stimes :: Integral b => b -> Outliers -> Outliers #
Data Outliers # |

Instance details

Defined in Criterion.Types

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Outliers -> c Outliers #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Outliers #

toConstr :: Outliers -> Constr #

dataTypeOf :: Outliers -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Outliers) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Outliers) #

gmapT :: (forall b. Data b => b -> b) -> Outliers -> Outliers #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Outliers -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Outliers -> r #

gmapQ :: (forall d. Data d => d -> u) -> Outliers -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Outliers -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Outliers -> m Outliers #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Outliers -> m Outliers #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Outliers -> m Outliers #

Generic Outliers # |

Instance details

Defined in Criterion.Types

Associated Types

type Rep Outliers |

Instance details

Defined in Criterion.Types

type Rep Outliers = D1 ('MetaData "Outliers" "Criterion.Types" "criterion-1.6.4.0-KMbd5KXmWbyCEa5Lfuxr8d" 'False) (C1 ('MetaCons "Outliers" 'PrefixI 'True) ((S1 ('MetaSel ('Just "samplesSeen") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Int64) :*: S1 ('MetaSel ('Just "lowSevere") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Int64)) :*: (S1 ('MetaSel ('Just "lowMild") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Int64) :*: (S1 ('MetaSel ('Just "highMild") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Int64) :*: S1 ('MetaSel ('Just "highSevere") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Int64)))))

Methods

from :: Outliers -> Rep Outliers x #

to :: Rep Outliers x -> Outliers #

Read Outliers # |
Instance details Defined in Criterion.Types Methods readsPrec :: Int -> ReadS Outliers # readList :: ReadS [Outliers] # readPrec :: ReadPrec Outliers # readListPrec :: ReadPrec [Outliers] #
Show Outliers # |
Instance details Defined in Criterion.Types Methods showsPrec :: Int -> Outliers -> ShowS # show :: Outliers -> String # showList :: [Outliers] -> ShowS #
Eq Outliers # |
Instance details Defined in Criterion.Types Methods (==) :: Outliers -> Outliers -> Bool # (/=) :: Outliers -> Outliers -> Bool #
type Rep Outliers # |

Instance details

Defined in Criterion.Types

type Rep Outliers = D1 ('MetaData "Outliers" "Criterion.Types" "criterion-1.6.4.0-KMbd5KXmWbyCEa5Lfuxr8d" 'False) (C1 ('MetaCons "Outliers" 'PrefixI 'True) ((S1 ('MetaSel ('Just "samplesSeen") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Int64) :*: S1 ('MetaSel ('Just "lowSevere") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Int64)) :*: (S1 ('MetaSel ('Just "lowMild") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Int64) :*: (S1 ('MetaSel ('Just "highMild") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Int64) :*: S1 ('MetaSel ('Just "highSevere") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 Int64)))))

data OutlierEffect #

A description of the extent to which outliers in the sample data affect the sample mean and standard deviation.

Constructors

Unaffected | Less than 1% effect.
Slight | Between 1% and 10%.
Moderate | Between 10% and 50%.
Severe | Above 50% (i.e. measurements are useless).

#### Instances

Instances details

FromJSON OutlierEffect # |
Instance details Defined in Criterion.Types Methods parseJSON :: Value -> Parser OutlierEffect # parseJSONList :: Value -> Parser [OutlierEffect] # omittedField :: Maybe OutlierEffect #
ToJSON OutlierEffect # |
Instance details Defined in Criterion.Types Methods toJSON :: OutlierEffect -> Value # toEncoding :: OutlierEffect -> Encoding # toJSONList :: [OutlierEffect] -> Value # toEncodingList :: [OutlierEffect] -> Encoding # omitField :: OutlierEffect -> Bool #
Binary OutlierEffect # |
Instance details Defined in Criterion.Types Methods put :: OutlierEffect -> Put # get :: Get OutlierEffect # putList :: [OutlierEffect] -> Put #
NFData OutlierEffect # |
Instance details Defined in Criterion.Types Methods rnf :: OutlierEffect -> () #
Data OutlierEffect # |

Instance details

Defined in Criterion.Types

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> OutlierEffect -> c OutlierEffect #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c OutlierEffect #

toConstr :: OutlierEffect -> Constr #

dataTypeOf :: OutlierEffect -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c OutlierEffect) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c OutlierEffect) #

gmapT :: (forall b. Data b => b -> b) -> OutlierEffect -> OutlierEffect #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> OutlierEffect -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> OutlierEffect -> r #

gmapQ :: (forall d. Data d => d -> u) -> OutlierEffect -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> OutlierEffect -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> OutlierEffect -> m OutlierEffect #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> OutlierEffect -> m OutlierEffect #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> OutlierEffect -> m OutlierEffect #

Generic OutlierEffect # |

Instance details

Defined in Criterion.Types

Associated Types

type Rep OutlierEffect |

Instance details

Defined in Criterion.Types

type Rep OutlierEffect = D1 ('MetaData "OutlierEffect" "Criterion.Types" "criterion-1.6.4.0-KMbd5KXmWbyCEa5Lfuxr8d" 'False) ((C1 ('MetaCons "Unaffected" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Slight" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "Moderate" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Severe" 'PrefixI 'False) (U1 :: Type -> Type)))

Methods

from :: OutlierEffect -> Rep OutlierEffect x #

to :: Rep OutlierEffect x -> OutlierEffect #

Read OutlierEffect # |
Instance details Defined in Criterion.Types Methods readsPrec :: Int -> ReadS OutlierEffect # readList :: ReadS [OutlierEffect] # readPrec :: ReadPrec OutlierEffect # readListPrec :: ReadPrec [OutlierEffect] #
Show OutlierEffect # |
Instance details Defined in Criterion.Types Methods showsPrec :: Int -> OutlierEffect -> ShowS # show :: OutlierEffect -> String # showList :: [OutlierEffect] -> ShowS #
Eq OutlierEffect # |
Instance details Defined in Criterion.Types Methods (==) :: OutlierEffect -> OutlierEffect -> Bool # (/=) :: OutlierEffect -> OutlierEffect -> Bool #
Ord OutlierEffect # |

Instance details

Defined in Criterion.Types

Methods

compare :: OutlierEffect -> OutlierEffect -> Ordering #

(<) :: OutlierEffect -> OutlierEffect -> Bool #

(<=) :: OutlierEffect -> OutlierEffect -> Bool #

(>) :: OutlierEffect -> OutlierEffect -> Bool #

(>=) :: OutlierEffect -> OutlierEffect -> Bool #

max :: OutlierEffect -> OutlierEffect -> OutlierEffect #

min :: OutlierEffect -> OutlierEffect -> OutlierEffect #

type Rep OutlierEffect # |

Instance details

Defined in Criterion.Types

type Rep OutlierEffect = D1 ('MetaData "OutlierEffect" "Criterion.Types" "criterion-1.6.4.0-KMbd5KXmWbyCEa5Lfuxr8d" 'False) ((C1 ('MetaCons "Unaffected" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Slight" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "Moderate" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Severe" 'PrefixI 'False) (U1 :: Type -> Type)))

data OutlierVariance #

Analysis of the extent to which outliers in a sample affect its standard deviation (and to some extent, its mean).

Constructors

OutlierVariance |

Fields

- ovEffect :: OutlierEffect

  Qualitative description of effect.

- ovDesc :: String

  Brief textual description of effect.

- ovFraction :: Double

  Quantitative description of effect (a fraction between 0 and 1).

#### Instances

Instances details

FromJSON OutlierVariance # |
Instance details Defined in Criterion.Types Methods parseJSON :: Value -> Parser OutlierVariance # parseJSONList :: Value -> Parser [OutlierVariance] # omittedField :: Maybe OutlierVariance #
ToJSON OutlierVariance # |
Instance details Defined in Criterion.Types Methods toJSON :: OutlierVariance -> Value # toEncoding :: OutlierVariance -> Encoding # toJSONList :: [OutlierVariance] -> Value # toEncodingList :: [OutlierVariance] -> Encoding # omitField :: OutlierVariance -> Bool #
Binary OutlierVariance # |
Instance details Defined in Criterion.Types Methods put :: OutlierVariance -> Put # get :: Get OutlierVariance # putList :: [OutlierVariance] -> Put #
NFData OutlierVariance # |
Instance details Defined in Criterion.Types Methods rnf :: OutlierVariance -> () #
Data OutlierVariance # |

Instance details

Defined in Criterion.Types

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> OutlierVariance -> c OutlierVariance #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c OutlierVariance #

toConstr :: OutlierVariance -> Constr #

dataTypeOf :: OutlierVariance -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c OutlierVariance) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c OutlierVariance) #

gmapT :: (forall b. Data b => b -> b) -> OutlierVariance -> OutlierVariance #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> OutlierVariance -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> OutlierVariance -> r #

gmapQ :: (forall d. Data d => d -> u) -> OutlierVariance -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> OutlierVariance -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> OutlierVariance -> m OutlierVariance #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> OutlierVariance -> m OutlierVariance #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> OutlierVariance -> m OutlierVariance #

Generic OutlierVariance # |

Instance details

Defined in Criterion.Types

Associated Types

type Rep OutlierVariance |

Instance details

Defined in Criterion.Types

type Rep OutlierVariance = D1 ('MetaData "OutlierVariance" "Criterion.Types" "criterion-1.6.4.0-KMbd5KXmWbyCEa5Lfuxr8d" 'False) (C1 ('MetaCons "OutlierVariance" 'PrefixI 'True) (S1 ('MetaSel ('Just "ovEffect") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 OutlierEffect) :*: (S1 ('MetaSel ('Just "ovDesc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String) :*: S1 ('MetaSel ('Just "ovFraction") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Double))))

Methods

from :: OutlierVariance -> Rep OutlierVariance x #

to :: Rep OutlierVariance x -> OutlierVariance #

Read OutlierVariance # |
Instance details Defined in Criterion.Types Methods readsPrec :: Int -> ReadS OutlierVariance # readList :: ReadS [OutlierVariance] # readPrec :: ReadPrec OutlierVariance # readListPrec :: ReadPrec [OutlierVariance] #
Show OutlierVariance # |
Instance details Defined in Criterion.Types Methods showsPrec :: Int -> OutlierVariance -> ShowS # show :: OutlierVariance -> String # showList :: [OutlierVariance] -> ShowS #
Eq OutlierVariance # |
Instance details Defined in Criterion.Types Methods (==) :: OutlierVariance -> OutlierVariance -> Bool # (/=) :: OutlierVariance -> OutlierVariance -> Bool #
type Rep OutlierVariance # |

Instance details

Defined in Criterion.Types

type Rep OutlierVariance = D1 ('MetaData "OutlierVariance" "Criterion.Types" "criterion-1.6.4.0-KMbd5KXmWbyCEa5Lfuxr8d" 'False) (C1 ('MetaCons "OutlierVariance" 'PrefixI 'True) (S1 ('MetaSel ('Just "ovEffect") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 OutlierEffect) :*: (S1 ('MetaSel ('Just "ovDesc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String) :*: S1 ('MetaSel ('Just "ovFraction") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Double))))

data SampleAnalysis #

Result of a bootstrap analysis of a non-parametric sample.

Constructors

SampleAnalysis |

Fields

- anRegress :: [Regression]

  Estimates calculated via linear regression.

- anMean :: Estimate ConfInt Double

  Estimated mean.

- anStdDev :: Estimate ConfInt Double

  Estimated standard deviation.

- anOutlierVar :: OutlierVariance

  Description of the effects of outliers on the estimated variance.

#### Instances

Instances details

FromJSON SampleAnalysis # |
Instance details Defined in Criterion.Types Methods parseJSON :: Value -> Parser SampleAnalysis # parseJSONList :: Value -> Parser [SampleAnalysis] # omittedField :: Maybe SampleAnalysis #
ToJSON SampleAnalysis # |
Instance details Defined in Criterion.Types Methods toJSON :: SampleAnalysis -> Value # toEncoding :: SampleAnalysis -> Encoding # toJSONList :: [SampleAnalysis] -> Value # toEncodingList :: [SampleAnalysis] -> Encoding # omitField :: SampleAnalysis -> Bool #
Binary SampleAnalysis # |
Instance details Defined in Criterion.Types Methods put :: SampleAnalysis -> Put # get :: Get SampleAnalysis # putList :: [SampleAnalysis] -> Put #
NFData SampleAnalysis # |
Instance details Defined in Criterion.Types Methods rnf :: SampleAnalysis -> () #
Generic SampleAnalysis # |

Instance details

Defined in Criterion.Types

Associated Types

type Rep SampleAnalysis |

Instance details

Defined in Criterion.Types

type Rep SampleAnalysis = D1 ('MetaData "SampleAnalysis" "Criterion.Types" "criterion-1.6.4.0-KMbd5KXmWbyCEa5Lfuxr8d" 'False) (C1 ('MetaCons "SampleAnalysis" 'PrefixI 'True) ((S1 ('MetaSel ('Just "anRegress") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Regression]) :*: S1 ('MetaSel ('Just "anMean") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Estimate ConfInt Double))) :*: (S1 ('MetaSel ('Just "anStdDev") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Estimate ConfInt Double)) :*: S1 ('MetaSel ('Just "anOutlierVar") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 OutlierVariance))))

Methods

from :: SampleAnalysis -> Rep SampleAnalysis x #

to :: Rep SampleAnalysis x -> SampleAnalysis #

Read SampleAnalysis # |
Instance details Defined in Criterion.Types Methods readsPrec :: Int -> ReadS SampleAnalysis # readList :: ReadS [SampleAnalysis] # readPrec :: ReadPrec SampleAnalysis # readListPrec :: ReadPrec [SampleAnalysis] #
Show SampleAnalysis # |
Instance details Defined in Criterion.Types Methods showsPrec :: Int -> SampleAnalysis -> ShowS # show :: SampleAnalysis -> String # showList :: [SampleAnalysis] -> ShowS #
Eq SampleAnalysis # |
Instance details Defined in Criterion.Types Methods (==) :: SampleAnalysis -> SampleAnalysis -> Bool # (/=) :: SampleAnalysis -> SampleAnalysis -> Bool #
type Rep SampleAnalysis # |

Instance details

Defined in Criterion.Types

type Rep SampleAnalysis = D1 ('MetaData "SampleAnalysis" "Criterion.Types" "criterion-1.6.4.0-KMbd5KXmWbyCEa5Lfuxr8d" 'False) (C1 ('MetaCons "SampleAnalysis" 'PrefixI 'True) ((S1 ('MetaSel ('Just "anRegress") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Regression]) :*: S1 ('MetaSel ('Just "anMean") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Estimate ConfInt Double))) :*: (S1 ('MetaSel ('Just "anStdDev") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Estimate ConfInt Double)) :*: S1 ('MetaSel ('Just "anOutlierVar") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 OutlierVariance))))

analyseSample #

Arguments

:: Int | Experiment number.
-> String | Experiment name.
-> Vector Measured | Sample data.
-> ExceptT String Criterion Report |

Perform an analysis of a measurement.

scale #

Arguments

:: Double | Value to multiply by.
-> SampleAnalysis |
-> SampleAnalysis |

Multiply the `Estimate`s in an analysis by the given value, using `scale`.

analyseMean #

Arguments

:: Sample |
-> Int | Number of iterations used to compute the sample.
-> Criterion Double |

Display the mean of a `Sample`, and characterise the outliers present in the sample.

countOutliers :: Outliers -> Int64 #

Count the total number of outliers in a sample.

classifyOutliers :: Sample -> Outliers #

Classify outliers in a data set, using the boxplot technique.

noteOutliers :: Outliers -> Criterion () #

Display a report of the `Outliers` present in a `Sample`.

outlierVariance #

Arguments

:: Estimate ConfInt Double | Bootstrap estimate of sample mean.
-> Estimate ConfInt Double | Bootstrap estimate of sample standard deviation.
-> Double | Number of original iterations.
-> OutlierVariance |

Compute the extent to which outliers in the sample data affect the sample mean and standard deviation.

resolveAccessors :: [String] -> Either String [(String, Measured -> Maybe Double)] #

Given a list of accessor names (see `measureKeys`), return either a mapping from accessor name to function or an error message if any names are wrong.

validateAccessors #

Arguments

:: [String] | Predictor names.
-> String | Responder name.
-> Either String [(String, Measured -> Maybe Double)] |

Given predictor and responder names, do some basic validation, then hand back the relevant accessors.

regress #

Arguments

:: GenIO |
-> [String] | Predictor names.
-> String | Responder name.
-> Vector Measured |
-> ExceptT String Criterion Regression |

Regress the given predictors against the responder.

Errors may be returned under various circumstances, such as invalid names or lack of needed data.

See `olsRegress` for details of the regression performed.