tfs_inertia and tfsm_inertia differentiate a transfer function to
find sensitivity of population inertia to perturbations.
tfs_inertia evaluates the transfer function of a specific perturbation
structure. 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 values in d and e
determine the relative perturbation magnitude. 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
numeric one-column matrices, 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.
tfsm_inertia returns a matrix of sensitivity values for observed
transitions (similar to that obtained when using sens to
evaluate sensitivity of asymptotic growth), where a separate transfer function
for each nonzero element of A is calculated (each element perturbed
independently of the others).
The formula used by tfs_inertia and tfsm_inertia cannot be
evaluated at lambda-max, therefore it is necessary to find the limit of the
formula as lambda approaches lambda-max. This is done using a bisection
method, starting at a value of lambda-max + startval. startval
should be small, to avoid the potential of false convergence. The algorithm
continues until successive sensitivity calculations are within an accuracy
of one another, determined by tolerance: a tolerance of 1e-10
means that the sensitivity calculation should be accurate to 10 decimal
places. However, as the limit approaches lambda-max, matrices are no longer
invertible (singular): if matrices are found to be singular then
tolerance should be relaxed and made larger.
For tfs_inertia, there is an extra option to return and/or plot the above
fitting process using return.fit=TRUE and plot.fit=TRUE
respectively.