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)