Regcon: Difference between revisions
imported>Donal (→Inputs) |
imported>Donal |
||
Line 80: | Line 80: | ||
===See Also=== | ===See Also=== | ||
[[analysis]], [[auto]], [[mncn]], [[modlpred]], [[modlrder]], [[pcr]], [[pls]], [[ | [[analysis]], [[auto]], [[mncn]], [[modlpred]], [[modlrder]], [[pcr]], [[pls]], [[mlr]] |
Revision as of 21:35, 22 August 2016
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, mlr, 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'] %---