Logo
Reference manual - version qle_version
StabilisedGLLS Class Reference

Numerically stabilised general linear least squares. More...

#include <qle/math/stabilisedglls.hpp>

Public Types

enum  Method { None , MaxAbs , MeanStdDev }

Public Member Functions

template<class xContainer, class yContainer, class vContainer>
 StabilisedGLLS (const xContainer &x, const yContainer &y, const vContainer &v, const Method method=MeanStdDev)
const Array & transformedCoefficients () const
const Array & transformedResiduals () const
const Array & transformedStandardErrors () const
const Array & transformedError () const
const Array & xMultiplier () const
 Transformation parameters (u => (u + shift) * multiplier for u = x, y).
const Array & xShift () const
const Real yMultiplier () const
const Real yShift () const
Size size () const
Size dim () const
template<class xType, class vContainer>
Real eval (xType x, vContainer &v, typename boost::enable_if< typename boost::is_arithmetic< xType >::type >::type *=0)
 evaluate regression function in terms of original x, y
template<class xType, class vContainer>
Real eval (xType x, vContainer &v, typename boost::disable_if< typename boost::is_arithmetic< xType >::type >::type *=0)
 evaluate regression function in terms of original x, y

Protected Member Functions

template<class xContainer, class yContainer, class vContainer>
void calculate (xContainer x, yContainer y, vContainer v, typename boost::enable_if< typename boost::is_arithmetic< typename xContainer::value_type >::type >::type *=0)
template<class xContainer, class yContainer, class vContainer>
void calculate (xContainer x, yContainer y, vContainer v, typename boost::disable_if< typename boost::is_arithmetic< typename xContainer::value_type >::type >::type *=0)

Protected Attributes

Array a_
Array err_
Array residuals_
Array standardErrors_
Array xMultiplier_
Array xShift_
Real yMultiplier_
Real yShift_
Method method_
QuantLib::ext::shared_ptr< GeneralLinearLeastSquares > glls_

Detailed Description

Numerically stabilised general linear least squares.

The input data is linearly transformed before performing the linear least squares fit. The linear least squares fit on the transformed data is done using the GeneralLinearLeastSquares class.