Regcon: Difference between revisions

From Eigenvector Research Documentation Wiki
Jump to navigation Jump to search
imported>Donal
No edit summary
imported>Donal
Line 52: Line 52:
%---
%---
% Use REGCON to get a PLS model's regression vector and intercept, then apply  
% Use REGCON to get a PLS model's regression vector and intercept, then apply  
% it to X-block data to get predicted Y values. REGCON takes care of preprocessing
% it to X-block data to get predicted Y values.  
% details provided the preprocessing used was either Mean Centering, Autoscaling,  
% REGCON takes care of preprocessing details provided the preprocessing used was  
% or None (see note 1, above).
% either Mean Centering, Autoscaling, or None (see note 1, above).
%
%
% Run the plsdemo to generate a PLS model:
% Run the plsdemo to generate a PLS model:
Line 77: Line 77:
%---
%---
</pre>
</pre>
===See Also===
===See Also===


[[analysis]], [[auto]], [[mncn]], [[modlpred]], [[modlrder]], [[pcr]], [[pls]], [[ridge]]
[[analysis]], [[auto]], [[mncn]], [[modlpred]], [[modlrder]], [[pcr]], [[pls]], [[ridge]]

Revision as of 14:13, 15 July 2014

Purpose

Converts a regression model to y = ax + b form.

Synopsis

[a,b] = regcon(mod)  % using REGRESSION model
[a,b] = regcon(regv,xmn,ymn)  % mean centered only
[a,b] = regcon(regv,xmn,ymn,xst,yst)  % mean centered and scaled


Description

regcon can be used to convert a model mod generated by the pcr, pls, or analysis functions, into a form expressed by the linear equation y = ax + b.

NOTES:

(1) IMPORTANT: regcon can only convert a regression model which uses Mean Centering, Autoscaling, or None as the preprocessing. Any other preprocessing will be rejected and cause an error.
(2) If the model was built with some variables excluded, regcon will infill with zeros as appropriate so that the output can be used on the original X-block with all variables present.
(3) Note that the command to use in Matlab is actually in the form y = a*x' + b, not y = a*x + b.

Alternatively, regcon can be used to convert the individual parts of a regression model, including the vector of regression coefficients regv and the means and scaling factors of the x- and y-block variables, to y = ax + b form.

Inputs

Alternatively, the following 5 individual parts of a regression model can be used as inputs:

  • regv = column vector of regression coefficients
  • xmn = predictor variable means
  • ymn = predicted variable means
  • xst = predictor variable scaling
  • yst = predicted variable scaling

Note: If xmn or ymn is not supplied or is set equal to 0 or [], then it is assumed to be zero (i.e. no centering was used in the model). If xst or yst is not supplied or is set equal to 0 or [], then it is assumed to be one (i.e. no scaling was used in the model).

Outputs

  • a = regression coefficients (a, in y = ax + b)
  • b = intercept (b, in y = ax + b)

Examples

[a,b] = regcon(mod); using REGRESSION model
[a,b] = regcon(regv,xmn,ymn); mean centered only
[a,b] = regcon(regv,xmn,ymn,xst,yst); mean centered and scaled
[a,b] = regcon(regv,xmn,ymn,[],yst); x data centered but not scaled
[a,b] = regcon(regv,0,0,xst,yst); x and y scaled by not centered
%---
% Use REGCON to get a PLS model's regression vector and intercept, then apply 
% it to X-block data to get predicted Y values. 
% REGCON takes care of preprocessing details provided the preprocessing used was 
% either Mean Centering, Autoscaling, or None (see note 1, above).
%
% Run the plsdemo to generate a PLS model:
pause off; plsdemo; pause on; close all
% This builds a PLS model using xblock1 and yblock1 as calibration X and Y

% Use regcon to get the regression parameters
[a,b] = regcon(model);

% Use the regcon output to predict y from the calibration X-block:
y1 = a*xblock1.data' + b;
% Verify y predicted by the regression equation (regcon) is the same as PLS model's ypred
comparevars(model.pred{2}, y1')
% or view them:
% [model.pred{2} y1']

% Do the same comparison using the validation X-block data, xblock2. 
% The PLS-predicted y is in valid.pred{2}.
yt1 = a*xblock2.data' + b;
comparevars(valid.pred{2}, yt1')
% [valid.pred{2} yt1']
%---

See Also

analysis, auto, mncn, modlpred, modlrder, pcr, pls, ridge