DEFINITION MODULE MultLinReg;
(*******************************************************************
Module MultLinReg (Version 1.0)
Copyright (c) 2002-2006 by Dimitrios Gyalistras and ETH Zurich.
Purpose Performs multiple linear regression.
Remarks --
Programming
o Design
Dimitrios Gyalistras 08/02/2002
o Implementation
Dimitrios Gyalistras 08/02/2002
ETH Zurich
Systems Ecology
CHN E 35.1
Universitaetstrasse 16
8092 Zurich
SWITZERLAND
URLs:
<mailto:RAMSES@env.ethz.ch>
<http://www.sysecol.ethz.ch>
<http://www.sysecol.ethz.ch/SimSoftware/RAMSES>
Last revision of definition: 25/05/2002 AF
*******************************************************************)
IMPORT Errors;
FROM LgMatrices IMPORT LMatrix, LVector;
CONST (* result codes returned *)
allOk = Errors.allOk;
notDone = Errors.onlyAnInsert;
PROCEDURE FitMultLinReg( (* inputs *)
xDat : LMatrix;
yDat : LMatrix;
nXVarsToUse : INTEGER;
nDataRowsToUse : INTEGER;
(* outputs *)
muX : LMatrix;
sigX : LMatrix;
VAR muY : LONGREAL;
VAR sigY : LONGREAL;
VAR alpha : LONGREAL;
beta : LMatrix;
eps : LMatrix;
VAR smin : LONGREAL;
VAR se : LONGREAL;
VAR r2 : LONGREAL;
VAR fVal : LONGREAL;
VAR df : INTEGER;
VAR pVal : LONGREAL;
VAR resCode : INTEGER;
VAR errTxt : ARRAY OF CHAR );
(*
The procedure estimates the parameters alpha and beta(i) (i=1..nX) of
the regression equation
y = alpha + Sum(i=1,nX) beta(i)*x(i) + eps
with
eps ~ N( 0, se).
Meaning of input and output parameters:
xDat = Predictors (independent data, nX x nXRows)
yDat = Predictand (dependent data, 1 x nYRows)
nXVarsToUse = Number of predictors to actually use for regression,
must be <= nX.
nDataRowsToUse = Number of data rows to actually use for regression,
must be <= Min( nXRows, nYRows ).
muX = means of x-variables
sigX = standard deviations of x-variables
muY = mean of y-variable
sigY = standard deviation of y-variable
alpha = regression intercept
beta = regression coefficients (nXVarsToUse x 1)
eps = regression residuals (nDataPtsToUse x 1)
smin = minimum sum of squares from regression
se = standard deviation of the residuals, also known as
the "standard error of regression" (note, se^2 is
an unbiased estimator of the error variance).
r2 = coefficient of determination
fVal = F-value from testing of the hypothesis
Ho: alpha = beta1 = beta2 = ... = 0, i.e. the
entire regression model is not significant.
df = degrees of freedom for fitting of the full model
pVal = p-value for the full model, i.e. probability that
Ho is rejected although it is correct.
*)
END MultLinReg.