You are here: Symbol Reference > RegModels Namespace > Functions > RegModels.LineFit Function
Stats Master VCL
ContentsIndex
PreviousUpNext
RegModels.LineFit Function

Fits linear equation to data.

Pascal
procedure LineFit(const B: TVec; const X: TVec; const Y: TVec; const Weights: TVec = nil);
Parameters 
Description 
Returns regression coefficients for linear function. 
Vector of independent variable. 
Vector of dependent variable. 
Weights 
Weights (optional). Weights are used only if they are set. 

The routine fits equations to data by minimizing the sum of squared residuals. The observed values obey the following equation: 

 

 

In the following example we generate some data. Then we fit simple linear function to this data and retreive it's regression coefficients.

Uses MtxExpr, MtxVecTee, Series, RegModels;
procedure Example(Series1, Series2: TLineSeries);
  var Y,YHat,B,X: Vector;
begin
  X.Size(100);
  Y.Size(X);
  X.Ramp(-5,0.05); // X = (-5, -4.95, ...-0.05)
  Y.RandGauss(3.5,0.12); // populate sample data
  LineFit(B,X,Y,NULL); // calculate coefficients
  LineEval(B.Values,X,YHat); // evaluate y by using calculated coefficients
  DrawValues(X,Y,Series1); // draw original data
  DrawValues(X,YHat,Series2); // draw fitted data
end;
#include "Math387.hpp"
#include "MtxExpr.hpp"
#include "RegModels.hpp"
#include "MtxVecTee.hpp"
void __fastcall Example(TLineSeries* Series1, TLineSeries* Series2);
{
  sVector X,Y;
  sVector B, YHat;

  X.Size(100,false);
  Y.Size(X);
  X.Ramp(-5.0, 0.05); // x= -5, -4.95, ...-0.05
  Y.RandGauss(3.5, 0.12); // sample data
  LineFit(B,X,Y); // calculate coefficients
  // evaluate y by using calculated coefficients
  LineEval(B,X, YHat);
  DrawValues(X,Y,Series1,false); // draw original data
  DrawValues(X,YHat,Series2,false); // draw fitted data
}
Examples on GitHub
Copyright (c) 1999-2024 by Dew Research. All rights reserved.
What do you think about this topic? Send feedback!