CurveFitterLibraries
Classes and methods for fitting growth curves
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Properties Events
GrowthCurveLibrary.NonLinearFitterWithGradientAndHessian Class Referenceabstract

A wrapper class for the alglib functions, used to fit non-linear models More...

Inheritance diagram for GrowthCurveLibrary.NonLinearFitterWithGradientAndHessian:
GrowthCurveLibrary.AbstractFitter GrowthCurveLibrary.IAbstractFitter GrowthCurveLibrary.ExponentialFit

Public Types

enum  TerminationType : int {
  NotYetSet = -2, WrongParams = -1, SumOfSquaresChangeConverge = 1, ParameterConverge = 2,
  MaxIterations = 5
}
 

Protected Member Functions

abstract void EvaluateSumofSquaresFunction (double[] Params, ref double func, object obj)
 Used by the fitting routine to evaluate possible values, meant to stay compatible with alg lig More...
 
abstract void EvaluateSumofSquaresFunction22 (double[] Params, double[] func, object obj)
 
abstract void EvaluateSumOfSquaresGradient (double[] Params, ref double func, double[] GradientVec, object obj)
 
abstract void EvaluateSumOfSquaresGradient22 (double[] Params, double[] fi, double[,] GradientVec, object obj)
 
abstract void CreateHessianDelegates ()
 
abstract double[] CreateInitialParameterGuess ()
 
alglib.minlmreport GeneralLMFitting ()
 See the example in alglib on levenberg marquadt to understand this code. Based entirely on their example, somethings kept around for compatibility More...
 
- Protected Member Functions inherited from GrowthCurveLibrary.AbstractFitter
void VerifyInput (double[] XDATA, double[] YDATA)
 
void makeYHAT ()
 
double calculateRMSE ()
 
double calculateR2 ()
 
abstract void FitModel ()
 

Protected Attributes

Delegates.DerivativePortionCalculator[,] HessianFunctions
 
double EPSX
 stopping criterion. Algorithm stops if |X(k+1)-X(k)| <= EpsX*(1+|X(k)|) More...
 
- Protected Attributes inherited from GrowthCurveLibrary.AbstractFitter
double[] x
 
double[] y
 
double[] ypred
 
double[] pParameters
 

Additional Inherited Members

- Public Member Functions inherited from GrowthCurveLibrary.AbstractFitter
double CalculateLogLikelihoodAssumingNormallyDistributedError (IEnumerable< double > xPoints, IEnumerable< double > yPoints)
 
double[] CalculateResidualsAtNewPoints (double[] xVals, double[] yvals)
 
 AbstractFitter ()
 
double calculateResidualSumofSquares ()
 Only should be called by external classes following a fit More...
 
virtual double calculateAbsError ()
 
abstract double FunctiontoFit (double x)
 
virtual void GenerateFitLine (double LowX, double interval, double HighX, out double[] xvalues, out double[] yvalues)
 
virtual IEnumerable< double > MakePredictionsAtPoints (IEnumerable< double > XValues)
 
- Public Attributes inherited from GrowthCurveLibrary.AbstractFitter
string name = ""
 
- Properties inherited from GrowthCurveLibrary.AbstractFitter
string Comment [get, set]
 
bool FitByDefault [get, set]
 
int NumberOfParameters [get]
 
double[] X [get]
 
double[] Y [get]
 
double[] PredictedValues [get]
 
double[] Parameters [get]
 
bool SuccessfulFit [get, set]
 
double RMSE [get]
 
double R2 [get]
 
double AbsError [get]
 
double[] Residuals [get]
 

Detailed Description

A wrapper class for the alglib functions, used to fit non-linear models

Poorly named class, see fitting method for comments as to why, this no longer uses hessian

Member Enumeration Documentation

Enumerator
NotYetSet 
WrongParams 
SumOfSquaresChangeConverge 
ParameterConverge 
MaxIterations 

Member Function Documentation

abstract void GrowthCurveLibrary.NonLinearFitterWithGradientAndHessian.CreateHessianDelegates ( )
protectedpure virtual
abstract double [] GrowthCurveLibrary.NonLinearFitterWithGradientAndHessian.CreateInitialParameterGuess ( )
protectedpure virtual
abstract void GrowthCurveLibrary.NonLinearFitterWithGradientAndHessian.EvaluateSumofSquaresFunction ( double[]  Params,
ref double  func,
object  obj 
)
protectedpure virtual

Used by the fitting routine to evaluate possible values, meant to stay compatible with alg lig

Parameters
Params
Returns

Implemented in GrowthCurveLibrary.ExponentialFit.

abstract void GrowthCurveLibrary.NonLinearFitterWithGradientAndHessian.EvaluateSumofSquaresFunction22 ( double[]  Params,
double[]  func,
object  obj 
)
protectedpure virtual
abstract void GrowthCurveLibrary.NonLinearFitterWithGradientAndHessian.EvaluateSumOfSquaresGradient ( double[]  Params,
ref double  func,
double[]  GradientVec,
object  obj 
)
protectedpure virtual
abstract void GrowthCurveLibrary.NonLinearFitterWithGradientAndHessian.EvaluateSumOfSquaresGradient22 ( double[]  Params,
double[]  fi,
double  GradientVec[,],
object  obj 
)
protectedpure virtual
alglib.minlmreport GrowthCurveLibrary.NonLinearFitterWithGradientAndHessian.GeneralLMFitting ( )
protected

See the example in alglib on levenberg marquadt to understand this code. Based entirely on their example, somethings kept around for compatibility

Returns

Member Data Documentation

double GrowthCurveLibrary.NonLinearFitterWithGradientAndHessian.EPSX
protected

stopping criterion. Algorithm stops if |X(k+1)-X(k)| <= EpsX*(1+|X(k)|)

Delegates.DerivativePortionCalculator [,] GrowthCurveLibrary.NonLinearFitterWithGradientAndHessian.HessianFunctions
protected

The documentation for this class was generated from the following file: