Difference between revisions of "Replacevars"
imported>Chuck (→Outputs) 
imported>Scott m (Scott moved page Replace to Replacevars: rename function) 
(No difference)

Revision as of 06:40, 27 September 2017
Contents
Purpose
Replace variables based on factorbased models.
Synopsis
 repdata = replace(model,vars,data);
 repdata = replace(model,data);
 rm = replace(model,vars);
 rm = replace(model,vars,rmtype);
Description
This function generates a matrix (or matrices) that can be used to replace "bad" variables from data matrices with the values that are most consistent with a given factorbased model (PCA, PLS, PCR, CLS, MCR, etc.). The outputs of this function are dependent on the inputs provided:
 If a model and a list of variables to replace are provided, then the function returns the matrix or matrices required to do the mathematical replacement operation
 If the data on which to operate is also provided, then the function returns the data with the replaced values.
Inputs
 model = can be one of the following:
 data = a matrix or DataSet Object in which the specified variables are to be replaced. If vars is omitted, data is searched for nonfinite values (NaN or Inf) and these are replaced. When data is supplied, only the replaced data repdata is returned.
Optional Inputs
 vars = an optional row vector containing the column indices of the variables to be replaced.
 rmtype = an optional string indicating the type of replacement matrix to output (only valid when next output is omitted).
 matrix = returns an entire rm matrix
 loads = (default) returns the pseudoinverse of the loadings.
See below for details on these outputs.
Outputs
 repdata = The data with the chosen variables replaced.
 rm = This output can be used with data to replace the variables indicated by vars with the values which are most consistent with the given model. This output is only available when data is not provided.
 If input rmtype is not provided or is 'loads', then rm will be a structure containing three matrices which can be used to replace varibles using:
 data(:,rm.vars) = data * rm.ploads * rm.loads
 If rmtype is 'matrix' then rm will be a matrix which can be used to replace variables using:
 data = data * rm
 Note: The 'matrix' form of rm will nearly always require a significantly larger amount of memory, but can be applied easier.
Examples
A PCA model was created on a data matrix xold giving a model structure model. The loadings, a set of loadings column vectors, were extracted to a variable loads using
 loads = model.loads{2};.
It was found that the sensor measuring variable 9 has gone "bad" and we would like to replace it in the new data matrix xnew. A replacement matrix rm is first created using REPLACE.
 rm = replace(loads,9);
The new data matrix with variable 9 replaced rxnew is then calculated by multiplying xnew by rm.
 rxnew = xnew\*rm;