You are here: Symbol Reference > Dew.Stats Namespace > Regress Class > Regress Methods > MulLinRegress Method > MulLinRegress Method (TVec, TMtx, TVec, TVec, boolean, TVec, TMtx, TRegSolveMethod)
Dew Stats for .NET
Contents
PreviousUpNext
Regress.MulLinRegress Method (TVec, TMtx, TVec, TVec, boolean, TVec, TMtx, TRegSolveMethod)

Multivariante linear regression.

C#
public MulLinRegress(TVec y, TMtx A, TVec b, TVec Weights, bool Constant, TVec YCalc, TMtx ATA, TRegSolveMethod Method);
Parameters
Parameters 
Description 
Defines vector of dependant variable. 
Defines matrix of independant (also X) variables. 
Returns calculated regression coefficiens. 
Weights 
Defines weights (optional). 
Constant 
If true then intercept term b(0) will be included in calculations. If false, set intercept term b(0) to 0.0. 
YCalc 
Returns vector of calculated dependant variable, where YCalc = A*b<*c>. 
ATA 
Returns inverse matrix of normal equations i.e [A(T)*A]^-1

Routine fits equations to data by minimizing the sum of squared residuals: 

SS = Sum [y(k) - ycalc(k)]^2 , 

where y(k) and ycalc(k) are respectively the observed and calculated value of the dependent variable for observation k. ycalc(k) is a function of the regression parameters b(0), b(1) ... Here the observed values obey the following equation: 

y(k) = b(0) + b(1) * x(1,k) + b(2) * x(2,k) + ... 

i.e 

y = A * b. 

To calculate additional regression statistical values, use RegressTest routine.

The following example performs multiple linear regression.

using Dew.Math;
using Dew.Stats.Units;
using Dew.Stats;
namespace Dew.Examples
{
  private void Example()
  {
    Matrix A = new Matrix(0,0);
    Matrix ATA = new Matrix(0,0);
    Vector y = new Vector(0);
    Vector b = new Vector(0);
    Vector w = new Vector(0);
    Vector b = new Vector(0);
    // independent variables
    A.SetIt(4,2,false, new double[] {1.0, 2.0,
                    -3.2, 2.5,
                     8.0, -0.5,
                     -2.2, 1.8});
    w.SetIt(false, new double[] {1,2,2,1}); // weights
    y.SetIt(false, new double[] {-3.0, 0.25, 8.0, 5.5}); // dependent variables
    TRegStats rs = MulLinRegress(y,A,b,w,true,yhat,ATA); //do regression
    // b=(19.093757944, -2.0141843616, -10.082487055)
    RegressTest(y,yhat,ATA,RegStat,w); // do basic regression stats
    // RegStat = (ResidualVar:0.037230395108; R2:0.99965713428;
    // AdjustedR2:0.99897140285; F:1457.7968725; SignifProb: 0.01851663347)
  }
}
What do you think about this topic? Send feedback!
Copyright (c) 1999-2010 by Dew Research. All rights reserved.