Description Usage Arguments Details Value Note Author(s) See Also Examples

`ODEsobol.ODEnetwork`

performs the variance-based Sobol' sensitivity
analysis for objects of class `ODEnetwork`

. Package
`ODEnetwork`

is required for this function to work.

1 2 3 4 5 |

`mod` |
[ |

`pars` |
[ |

`times` |
[ |

`n` |
[ |

`rfuncs` |
[ |

`rargs` |
[ |

`sobol_method` |
[ |

`ode_method` |
[ |

`parallel_eval` |
[ |

`parallel_eval_ncores` |
[ |

`...` |
further arguments passed to or from other methods. |

If the object of class `ODEnetwork`

supplied for `mod`

doesn't
include any events, the solution of the ODE network is determined
analytically using `simuNetwork`

. In the presence
of events, `simuNetwork`

uses
`ode`

to solve the ODE network numerically.

The sensitivity analysis is done for all state variables and all
timepoints simultaneously. If `sobol_method = "Jansen"`

,
`soboljansen`

from the package `sensitivity`

is used to estimate the Sobol' sensitivity indices and if
`sobol_method = "Martinez"`

, `sobolmartinez`

is used (also from the package `sensitivity`

).

List of length `2 * nrow(mod$state)`

and of class
`ODEsobol`

containing in each element a list of the Sobol' sensitivity
analysis results for the corresponding state variable (i.e. first order
sensitivity indices `S`

and total sensitivity indices `T`

) for
every point of time in the `times`

vector. This list has an extra
attribute `"sobol_method"`

where the value of argument
`sobol_method`

is stored (either `"Jansen"`

or
`"Martinez"`

).

In situations where the solution of the ODE model has to be determined
numerically, it might be helpful to try a different type of ODE-solver
(argument `ode_method`

) if the simulation of the model takes too long.
The `ode_method`

s `"vode"`

, `"bdf"`

, `"bdf_d"`

,
`"adams"`

, `"impAdams"`

and `"impAdams_d"`

might be faster than the standard `ode_method`

`"lsoda"`

.

If `n`

is too low, the Monte Carlo estimation of the sensitivity
indices might be very bad and even produce first order indices < 0 or
total indices > 1. First order indices in the interval [-0.05, 0) and total
indices in (1, 1.05] are considered as minor deviations and set to 0
resp. 1 without a warning. First order indices < -0.05 or total indices
> 1.05 are considered as major deviations. They remain unchanged and a
warning is thrown. Up to now, first order indices > 1 or total indices < 0
haven't occured yet. If this should be the case, please contact the package
author.

Frank Weber

```
soboljansen,
sobolmartinez,
plot.ODEsobol
```

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | ```
##### A network of 4 mechanical oscillators connected in a circle #####
# Definition of the network using the package "ODEnetwork":
M_mat <- rep(2, 4)
K_mat <- diag(rep(2 * (2*pi*0.17)^2, 4))
K_mat[1, 2] <- K_mat[2, 3] <-
K_mat[3, 4] <- K_mat[1, 4] <- 2 * (2*pi*0.17)^2 / 10
D_mat <- diag(rep(0.05, 4))
library("ODEnetwork")
lfonet <- ODEnetwork(masses = M_mat, dampers = D_mat, springs = K_mat)
# The parameters to be included in the sensitivity analysis and their lower
# and upper boundaries:
LFOpars <- c("k.1", "k.2", "k.3", "k.4",
"d.1", "d.2", "d.3", "d.4")
LFObinf <- c(rep(0.2, 4), rep(0.01, 4))
LFObsup <- c(rep(20, 4), rep(0.1, 4))
# Setting of the initial values of the state variables:
lfonet <- setState(lfonet, state1 = rep(2, 4), state2 = rep(0, 4))
# The timepoints of interest:
LFOtimes <- seq(25, 150, by = 2.5)
# Sobol' sensitivity analysis (here only with n = 500, but n = 1000 is
# recommended):
set.seed(1739)
# Warning: The following code might take very long! There are warnings
# occurring which might be due to "n" being too low.
suppressWarnings(
LFOres_sobol <- ODEsobol(mod = lfonet,
pars = LFOpars,
times = LFOtimes,
n = 500,
rfuncs = "runif",
rargs = paste0("min = ", LFObinf,
", max = ", LFObsup),
sobol_method = "Martinez",
parallel_eval = TRUE,
parallel_eval_ncores = 2)
)
``` |

Embedding an R snippet on your website

Add the following code to your website.

For more information on customizing the embed code, read Embedding Snippets.