inertia.tfa
calculates the transfer function of inertia of a matrix given a perturbation
structure and a range of desired perturbation magnitude. Currently inertia.tfa
can
only work with rank-one, single-parameter perturbations (see Hodgson & Townley 2006). If vector="n"
then either bound="upper"
or bound="lower"
must be specified, so calculating the transfer function of the upper or lower bound on population
inertia respectively. Specifying vector
overrides calculation of a bound, and will yield a
transfer function of case-specific inertia.
The perturbation structure is determined by d%*%t(e)
. Therefore, the rows to be perturbed
are determined by d
and the columns to be perturbed are determined by e
. The specific
values in d and e will determine the relative perturbation magnitude. So for example, if only entry
[3,2] of a 3 by 3 matrix is to be perturbed, then d = c(0,0,1)
and e = c(0,1,0)
. If entries
[3,2] and [3,3] are to be perturbed with the magnitude of perturbation to [3,2] half that of [3,3] then
d = c(0,0,1)
and e = c(0,0.5,1)
. d
and e
may also be expressed as column
vectors of class matrix, e.g. d = matrix(c(0,0,1), ncol=1)
, e = matrix(c(0,0.5,1), ncol=1)
.
See Hodgson et al. (2006) for more information on perturbation structures.
The perturbation magnitude is determined by prange
, a numeric vector that gives the continuous
range of perterbation magnitude to evaluate over. This is usually a sequence (e.g.
prange=seq(-0.1,0.1,0.001)
), but single transfer functions can be calculated using a single
perturbation magnitude (e.g. prange=-0.1
). Because of the nature of the equation, used in calculating
the transfer function, prange
is used to find a range of lambda from which the perturbation magnitudes
are back-calculated and matched to their corresponding inertia, so that the output perturbation magnitude p
will match prange
in length and range but not in numerical value (see value and Hodgson & Townley 2004 for
more information).
inertia.tfa
uses the resolvent matrix in its calculation, which cannot be computed if any
lambdarange
are equal to the dominant eigenvalue of A
. digits
specifies the
values of lambda that should be excluded in order to avoid a computationally singular system.
Any values equal to the dominant eigenvalue of A
rounded to an accuracy of digits
are excluded. digits
should only need to be changed when the system is found to be
computationally singular, in which case increasing digits
should help to solve the problem.
If not, then changing the range or step size of prange
may help.
inertia.tfa
will not work for imprimitive or reducible matrices.
There is an S3 plotting method available (see plot.tfa
and examples below)