| mota {mota} | R Documentation |
Identifies arbitrary functional relations among columns of an input matrix. This is done with use of optimal transformations and a special test function designed to quantify the information contained in them. See [1] for further information about the test function.
mota(x, numOfBootSamp = 35, sampleSize = floor(length(x[,1])/2), threshold1 = 0.01, threshold2 = 0.07, threshold3 = 0.08, progress = FALSE)
x |
(N X P) matrix, with N replicates for P parameters (see details) |
numOfBootSamp |
The number of bootstrap samples drawn from x to estimate the mean optimal transformation |
sampleSize |
Size of the bootstrap samples |
threshold1 |
Lower threshold. The higher, the more conservative is the algorithm. threshold1 determines
the value of the test function beneath which mota definitely assigns no functional relation.
For values of the test function between threshold1 and threshodl2, mota adds
additional parameters as predictors to explain more variance of the response in order to
finally exceed threshold2. |
threshold2 |
Upper threshold. The higher, the more conservative gets the algorithm. threshold2 should not
exceed 1/12. threshold2 determines the value of the mean test function above which
a functional relation is assigned to be strong. |
threshold3 |
Additional threshold to increase sensitivity. |
progress |
optional progress report in command line. Works only for Mac OS X and Windows GUIs. |
The matrix x is the only input required. mota investigates x for functional relations among
the columns. Note, these relations may in general be non-linear, which renders this approach superior to
algorithms based simply on the investigation of correlations. Roughly, mota takes column i as
response and tries to find the optimal combination of the other columns j!=i to explain the variance
of the response. Optimal transformations are employed to map potential nonlinear relations on a linear
model. The test function calculates the variance of the mean optimal transformation for each column, see references
for details. Predictors (columns) not associated with the response have low values of the test function. The mean of the
optimal transformation is estimated by drawing bootstrap samples of size sampleSize from x.
The sampleSize does not equal the number of rows to ensure sufficient independency of the drawn bootstrap
samples. threshold1 and threshold2 may be determined analytically [1]. threshold3 needs to be larger than threshold2. It
improves under certain circumstances the sensitivity of the algorithm, however, it is not required for the functionallity
of the algortithm. The number of bootstrap samples is a good trade off between computational speed and specificity,
see, again, [1].
mota was designed for the identifiability analysis of nonlinear dynamical models. The generality of the concept,
however, suggests applications in various fields. Whenever there is a need of detecting arbitrary functional relations
between subgroups of parameters, mota may be superior especially for non-linear relations.
An object of class mota with following attributes:
S |
A (P X P) matrix with 1 indicating functional relations |
x |
The input matrix |
Hout |
Value of the testfunction for the functional relation found for each paramater |
Use 'summary' and 'plot' to investigate the output. The attributes may be accessed with use of 'attr'. So, in order
to get the matrix S one has to type S<-attr(motaOutput,"S") in the command line
Stefan Hengl
ace from the package acepack, summary.mota, plot.mota, attr
x<-array(data=0,dim=c(200,4)) # # generate uniformly distributed data x[,4]<-runif(200,1,5) x[,3]<-runif(200,1,5) x[,2]<-runif(200,1,5) # # introduce functional relation x[,1]<-x[,2]^2+5*sin(x[,3]) # # test with mota motaOut<-mota(x) # # investigate result summary(motaOut)