| Title: | Study Design Toolbox for Movement Ecology Studies |
|---|---|
| Description: | Toolbox and 'shiny' application to help researchers design movement ecology studies, focusing on two key objectives: estimating home range areas, and estimating fine-scale movement behavior, specifically speed and distance traveled. It provides interactive simulations and methodological guidance to support study planning and decision-making. The application is described in Silva et al. (2023) <doi:10.1111/2041-210X.14153>. |
| Authors: | Inês Silva [cre, aut, cph] (ORCID: <https://orcid.org/0000-0003-4850-6193>) |
| Maintainer: | Inês Silva <[email protected]> |
| License: | GPL (>= 3) |
| Version: | 0.3.3 |
| Built: | 2026-05-27 11:07:46 UTC |
| Source: | https://github.com/ecoisilva/movedesign |
This function fits continuous-time movement models to simulated location
data using the ctmm package. It estimates movement parameters for each
simulated trajectory, allowing for parallel execution. It currently
supports both home range and speed estimation workflows.
fitting_models( obj, set_target = c("hr", "ctsd"), parallel = FALSE, trace = FALSE, ncores = parallel::detectCores(), ... )fitting_models( obj, set_target = c("hr", "ctsd"), parallel = FALSE, trace = FALSE, ncores = parallel::detectCores(), ... )
obj |
A list of simulated movement datasets, each a |
set_target |
A character vector specifying the research targets. Current options:
|
parallel |
Logical. If |
trace |
Logical. If |
ncores |
Integer. Number of CPU cores to use for parallel processing. Defaults to all available cores minus one. |
... |
Additional arguments used internally. |
The function generates initial parameter estimates for each dataset
using ctmm::ctmm.guess(). If the data includes simulated location
error, it adds an error model accordingly. Models are fitted using
ctmm::ctmm.select(), which performs model selection to find the
best-fit movement process. Finally, all fitted models are recentered
to (0, 0) for downstream consistency.
A list of fitted movement models, all recentered to the origin.
This function is intended for internal use and may assume inputs follow specific structure and constraints not referenced explicitly.
ctmm::ctmm.guess(), ctmm::ctmm.select()
A dataset listing typical GPS fix rates for animal tracking devices. Useful for selecting typical sampling schedules in wildlife tracking projects.
fixratesfixrates
A data.frame with 40 rows and 7 variables:
Human-readable fix schedule, e.g., "1 fix every month". Helps interpret sampling intervals in practical terms.
Sampling interval in seconds, i.e., time between consecutive location fixes.
Sampling frequency in seconds, i.e., how often a fix occurs (inverse of dti).
Sampling frequency in hours, offering a more intuitive unit for comparison.
Logical. TRUE if the fix rate is commonly used in animal tracking studies. Useful for identifying standard settings.
...
Evaluates whether the cumulative mean of a tracked error metric in simulation outputs has stabilized, indicating convergence. This function helps determine if repeated simulations or resampling have produced stable estimates, which is critical for reliable inference in animal movement projects.
Use this function after running md_run() or
md_replicate() to check the reliability of outputs
before further interpretation or reporting.
md_check( obj, m = NULL, tol = 0.05, n_converge = 9, plot = TRUE, pal = c("#007d80", "#A12C3B") )md_check( obj, m = NULL, tol = 0.05, n_converge = 9, plot = TRUE, pal = c("#007d80", "#A12C3B") )
obj |
A |
m |
Numeric (optional). If provided, restricts the convergence
check to results for a specific population sample size ( |
tol |
Numeric. The tolerance threshold for absolute change in
the cumulative mean to declare convergence. Defaults to
|
n_converge |
Integer. Number of consecutive steps within tolerance required to confirm convergence. |
plot |
Logical. If |
pal |
Character vector of color(s) of the plot, such as
|
The cumulative mean of error is calculated, and the absolute changes
over the last n_converge steps are inspected. If all are
below the specified tolerance, convergence is declared.
If plot = TRUE, a plot is shown of absolute stepwise change
in the cumulative mean, with a shaded region indicating the
convergence threshold, aiding visual assessment.
An object of class "movedesign_check" with the
following elements:
has_convergedLogical scalar indicating whether convergence was achieved.
recent_deltasNumeric vector of absolute changes in cumulative mean
over the last n_converge steps.
max_deltaMaximum absolute change among the last steps.
toleranceNumeric, the input tolerance tol.
n_convergeInteger, the input n_converge.
Character. Name of the variable checked.
Numeric vector. The last cumulative means checked.
if(interactive()) { output <- md_replicate(input, n_replicates = 20) md_check(output, tol = 0.05, n_converge = 10) }if(interactive()) { output <- md_replicate(input, n_replicates = 20) md_check(output, tol = 0.05, n_converge = 10) }
The final step in the movedesign workflow. Takes replicated
outputs from two or more study designs, ranks them by estimation
performance, identifies the best-performing design, and produces
a density plot of relative error across replicates.
Use this function after running md_replicate() for each design
and confirming convergence with md_check(). For a quick visual
comparison before full replication, use md_compare_preview()
instead.
md_compare( x, stat = c("mean", "median"), ci = 0.8, method = "HDI", pal = c("#007d80", "#A12C3B"), m = NULL, show_text = TRUE )md_compare( x, stat = c("mean", "median"), ci = 0.8, method = "HDI", pal = c("#007d80", "#A12C3B"), m = NULL, show_text = TRUE )
x |
A list of at least two |
stat |
Character. Summary statistic used to represent the
centre of the error distribution in the plot and ranking.
Must be |
ci |
Numeric. Coverage probability of the credible interval
computed over the distribution of relative error across
replicates. Must be strictly between 0 and 1. Defaults to
|
method |
Character. Method used to compute the credible
interval, passed to |
pal |
A character vector of colors for the density curves,
CI shading, and centre line. Defaults to |
m |
(Optional) Numeric. If provided, restricts all results
and ranking to a specific population sample size. Defaults to
|
show_text |
Logical. Whether to display annotation text in
the plot with the mean (or median) relative errors.
Defaults to |
Designs are ranked separately for each target metric (home range, speed) and group (if present). The ranking criterion combines absolute relative error and distance of the credible interval from zero: designs with lower error and tighter intervals closer to zero rank higher. A design is identified as the overall winner only if it ranks first across all groups for a given target.
The function prints a density plot showing the full
distribution of relative error across replicates for each
design. The centre statistic (stat) and credible interval
(ci) are overlaid. When groups are present, density curves
for each group are shown side by side using the colors in
pal.
This function is designed to be called at the end of the
movedesign workflow:
Build each design with md_prepare().
Run md_replicate() for each design.
Confirm convergence with md_check().
Compare and rank designs with md_compare().
An object of class movedesign_report.
A density plot of relative error is printed as a side effect;
to reproduce it later, call md_plot() on any of the input
designs.
This object contains:
Data frame with one row per design per target
(and per group if grouping is used). Columns include
the centre error statistic (error), credible
interval bounds (error_lci, error_uci), CI width,
distance from zero error, and rank. Lower rank
indicates better performance.
Data frame identifying designs that rank first across all groups for each target. A design is a winner when it has the lowest absolute error and the credible interval closest to zero across every group. Returns empty if no single design dominates.
md_replicate(),
md_check() for convergence diagnostics,
and refer to bayestestR::ci() for details on credible interval
computation and interpretation.
Other workflow_steps:
md_prepare(),
md_replicate(),
md_run(),
md_simulate()
if (interactive()) { data(buffalo) inputA <- md_prepare( data = buffalo, models = models, species = "buffalo", n_individuals = 5, dur = list(value = 1, unit = "month"), dti = list(value = 1, unit = "day"), add_individual_variation = TRUE, grouped = TRUE, set_target = "hr", which_meta = "mean") inputB <- md_prepare( data = buffalo, models = models, species = "buffalo", n_individuals = 5, dur = list(value = 10, unit = "days"), dti = list(value = 1, unit = "day"), add_individual_variation = TRUE, grouped = TRUE, set_target = "hr", which_meta = "mean") outputA <- md_replicate(inputA, n_replicates = 20) outputB <- md_replicate(inputB, n_replicates = 20) # Plot with 80% credible intervals: md_compare(list(outputA, outputB), ci = 0.80, method = "HDI") }if (interactive()) { data(buffalo) inputA <- md_prepare( data = buffalo, models = models, species = "buffalo", n_individuals = 5, dur = list(value = 1, unit = "month"), dti = list(value = 1, unit = "day"), add_individual_variation = TRUE, grouped = TRUE, set_target = "hr", which_meta = "mean") inputB <- md_prepare( data = buffalo, models = models, species = "buffalo", n_individuals = 5, dur = list(value = 10, unit = "days"), dti = list(value = 1, unit = "day"), add_individual_variation = TRUE, grouped = TRUE, set_target = "hr", which_meta = "mean") outputA <- md_replicate(inputA, n_replicates = 20) outputB <- md_replicate(inputB, n_replicates = 20) # Plot with 80% credible intervals: md_compare(list(outputA, outputB), ci = 0.80, method = "HDI") }
Plots estimation error of the chosen targets for two or more
study designs, each represented by a single md_run() output.
Use this function to quickly compare how design choices
affect estimation performance before committing to a full
replication with md_replicate().
Because each design is represented by a single stochastic run,
results are preliminary. For robust, publication-ready
comparisons, run md_replicate() for each design and compare
with md_compare().
md_compare_preview( ..., n_resamples = NULL, error_threshold = 0.05, pal = c("#007d80", "#A12C3B") )md_compare_preview( ..., n_resamples = NULL, error_threshold = 0.05, pal = c("#007d80", "#A12C3B") )
... |
One or more |
n_resamples |
A single positive integer. The number of
random combinations of individuals generated at each population
sample size per design. Each combination produces one
population-level estimate. Set to |
error_threshold |
Numeric. Relative error threshold shown
as a horizontal reference line in the plot (e.g. |
pal |
A character vector of two colors, used for estimates
within and outside the error threshold respectively.
Defaults to |
If n_resamples is not NULL, the function draws n_resamples
random combinations of individuals at each population sample size
and computes a population-level estimate for each. This step
Each design is represented by a single stochastic run. Apparent
differences between designs may reflect random variation rather
than genuine performance differences. Use md_replicate() to
generate robust, replicated results for each design, and
md_compare() to compare multiple designs.
A ggplot object. Displays relative error as a function of
population sample size, with one panel (or two if two target)
per design. Point estimates, confidence intervals, and a horizontal
reference line at error_threshold.
md_run() to generate each input object.
md_plot_preview() for a single-design equivalent.
md_replicate() for robust multi-replicate outputs per design.
md_check() to assess convergence across replicates.
if (interactive()) { data(buffalo) inputA <- md_prepare( data = buffalo, models = models, species = "buffalo", n_individuals = 5, dur = list(value = 1, unit = "month"), dti = list(value = 1, unit = "day"), add_individual_variation = FALSE, grouped = TRUE, set_target = "hr", which_meta = "mean") inputB <- md_prepare( data = buffalo, models = models, species = "buffalo", n_individuals = 5, dur = list(value = 10, unit = "days"), dti = list(value = 1, unit = "day"), add_individual_variation = TRUE, grouped = TRUE, set_target = "hr", which_meta = "mean") outputA <- md_run(inputA) outputB <- md_run(inputB) md_compare_preview(list(outputA, outputB), error_threshold = 0.05) }if (interactive()) { data(buffalo) inputA <- md_prepare( data = buffalo, models = models, species = "buffalo", n_individuals = 5, dur = list(value = 1, unit = "month"), dti = list(value = 1, unit = "day"), add_individual_variation = FALSE, grouped = TRUE, set_target = "hr", which_meta = "mean") inputB <- md_prepare( data = buffalo, models = models, species = "buffalo", n_individuals = 5, dur = list(value = 10, unit = "days"), dti = list(value = 1, unit = "day"), add_individual_variation = TRUE, grouped = TRUE, set_target = "hr", which_meta = "mean") outputA <- md_run(inputA) outputB <- md_run(inputB) md_compare_preview(list(outputA, outputB), error_threshold = 0.05) }
Guides the user to assign each argument required for a movement design workflow, including species label and key simulation settings. Users may choose to set a specific population sample size (number of animals tagged/to be tagged) or optimize the population sample size considering a specific analytical target.
md_configure(data, models = NULL, parallel = FALSE)md_configure(data, models = NULL, parallel = FALSE)
data |
A named list of simulated movement datasets, each a
|
models |
(Optional) Named list of fitted ctmm models (from
|
parallel |
Logical. If |
The argument data is required and must be supplied directly (as
a list of telemetry objects, obtained from ctmm::as.telemetry()).
The argument models is optional, and if omitted, models will be
fitted automatically.
An object of class movedesign_input (and movedesign). This is
a structured S3 list containing all validated inputs, model fits,
and derived parameters for the study design workflow.
if(interactive()) { data(buffalo) md_params <- md_configure(data = buffalo) }if(interactive()) { data(buffalo) md_params <- md_configure(data = buffalo) }
Pools two or more md_run() outputs into a single
movedesign_processed object by concatenating all simulated
individuals, fitted models, and seeds. The merged object behaves
exactly as if all individuals had been simulated in one call:
if each input contains 5 individuals, the merged output contains
10.
The distinction from md_stack() is important. md_merge()
treats all inputs as parts of one larger dataset; replicate
identity is lost and individual counts accumulate. md_stack()
instead assigns a replicate ID to each md_run() output and
aggregates population-level inference across them, keeping each
run as a separate replicate.
Call md_merge() directly only when you have run md_run()
separately and need to pool the raw outputs before downstream
analyses.
md_merge(x, ...)md_merge(x, ...)
x |
Either a list of |
... |
Reserved for internal use. |
Before merging, all inputs are checked for consistent metadata
(e.g. dur, dti, set_target). Movement timescale parameters
(tau_p, tau_v) are compared after rounding to one decimal
place, to tolerate minor numerical differences arising from
separate model fitting runs. If any field mismatches are found,
the function stops with an informative message listing the
affected fields.
A single movedesign_output object that contains all merged
simulation outputs and inherits metadata from the first input
object.
if (interactive()) { data(buffalo) input <- md_prepare( data = buffalo, models = models, species = "buffalo", n_individuals = 5, dur = list(value = 1, unit = "month"), dti = list(value = 1, unit = "day"), add_individual_variation = FALSE, set_target = "hr", which_meta = "mean") output1 <- md_run(input) output2 <- md_run(input) # Both of the following are equivalent: md_merge(output1, output2) md_merge(list(output1, output2)) }if (interactive()) { data(buffalo) input <- md_prepare( data = buffalo, models = models, species = "buffalo", n_individuals = 5, dur = list(value = 1, unit = "month"), dti = list(value = 1, unit = "day"), add_individual_variation = FALSE, set_target = "hr", which_meta = "mean") output1 <- md_run(input) output2 <- md_run(input) # Both of the following are equivalent: md_merge(output1, output2) md_merge(list(output1, output2)) }
Repeatedly simulates movement datasets across a range of candidate population sample sizes to identify the minimal sample size and associated sampling parameters (i.e., duration, sampling interval) needed to achieve estimates for key movement and space-use metrics (e.g., home range area, speed) within the specified relative error threshold.
The function quantifies estimation error for each metric and sample size, evaluating which population sample size reliably meet target thresholds, and reports final recommendations.
md_optimize( obj, n_replicates = 10, error_threshold = 0.05, plot = FALSE, verbose = TRUE, parallel = FALSE, ncores = parallel::detectCores(), trace = TRUE, ... )md_optimize( obj, n_replicates = 10, error_threshold = 0.05, plot = FALSE, verbose = TRUE, parallel = FALSE, ncores = parallel::detectCores(), trace = TRUE, ... )
obj |
A movement design input object (see |
n_replicates |
Integer. Number of simulation replicates at each candidate sample size. |
error_threshold |
Numeric. Upper limit of the relative error
in estimation (e.g., |
plot |
Logical. If TRUE, displays a diagnostic plot of the final results. |
verbose |
Logical. If |
parallel |
Logical; if |
ncores |
Integer; number of CPU cores to use for parallel
processing. Defaults to all available cores detected by
|
trace |
Logical; if |
... |
Reserved for internal use. |
The function iteratively runs movement design simulations for
increasing population sample sizes (m), evaluating error for
each replicate and metric via meta-analyses. Convergence is checked
using the error threshold and stability of cumulative mean error.
The function stops when a sample size meets all criteria or the
maximum population sample size is reached. Results can be visualized
using if plot = TRUE.
A list of class movedesign_report containing:
summary: Data frame of summary statistics for each
replicate, sample size, and metric.
error_threshold: Numeric. The error threshold used.
sampling_duration: Character string. Final sampling duration.
sampling_interval: Character string. Final sampling interval.
sample_size_achieved: Logical. Indicates if convergence was
achieved and the threshold met.
init_m: Integer. Maximum sample size evaluated.
minimum_m: Integer. Minimum sample size
achieving the threshold.
Some biologgers inherently involve a trade-off between fix frequency and battery life. Shorter intervals between location fixes offer higher temporal resolution but reduce deployment duration due to increased power consumption. In contrast, longer deployments require less frequent sampling to conserve battery.
This trade-off makes it challenging to estimate multiple metrics with differing data needs: high-resolution data (shorter intervals) improve speed estimation, while extended deployments (longer durations) are vital for accurate home range area estimates. A sampling design that minimizes error for one metric may increase error for another.
Researchers facing these constraints should consider prioritizing a single research target (e.g., either home range area or speed), or use stratified designs to balance data needs across individuals.
if(interactive()) { obj <- md_configure(data = buffalo, models = models) out <- md_optimize(tmp, error_threshold = 0.05, plot = TRUE) }if(interactive()) { obj <- md_configure(data = buffalo, models = models) out <- md_optimize(tmp, error_threshold = 0.05, plot = TRUE) }
Produces a publication-ready density plot showing the distribution of
relative error estimates from study design simulations. The plot
highlights the mean and a shaded credible interval (CI) region,
following the computation of credible intervals as implemented in
bayestestR::ci(). If groups are present, density curves for each
group are overlaid for comparison, using customizable colors.
This function is typically used after running md_replicate(),
providing a visual diagnostic of simulation results.
md_plot( x, stat = c("mean", "median"), ci = 0.8, method = "HDI", pal = c("#007d80", "#A12C3B"), m = NULL, show_text = TRUE, ... )md_plot( x, stat = c("mean", "median"), ci = 0.8, method = "HDI", pal = c("#007d80", "#A12C3B"), m = NULL, show_text = TRUE, ... )
x |
A
|
stat |
Character string specifying which summary statistic to
display. Must be |
ci |
Numeric scalar between 0 and 1. The probability of the
credible interval (CI) to be estimated. Default to |
method |
Character. Credible interval estimation method (passed
to |
pal |
Character vector of color(s) for the density, CI shading,
and mean line. If a single group, supply one color (default:
|
m |
Numeric (Optional). If provided, restricts the results to a
specific population sample size ( |
show_text |
Logical, whether to display text annotations in
the plots. Default is |
... |
Reserved for internal use. |
This plot helps users assess the reliability of simulation outputs by visualizing the distribution of relative errors. When multiple groups are simulated, the plot enables direct visual comparison of performance across groups. If credible intervals cannot be calculated, a warning is issued and only the density curves are displayed.
It is strongly recommended to use md_check() to assess whether
the distributions shown here have stabilized. Checking for
convergence ensures that the summary statistics and uncertainty
estimates depicted in the plot are reliable and not unduly
influenced by too few replicates or ongoing variability.
Running md_check() helps you determine if additional simulation
replicates are needed to achieve stable inference in your design
evaluation.
A ggplot object showing:
Density curve(s) of the relative error distribution.
Shaded region for the central credible interval.
Vertical dashed lines at mean(s).
Overlaid densities if multiple groups are present.
Percent-formatted x-axis for interpretation.
This object can be further customized with additional ggplot2
layers if needed.
md_replicate(),
md_check() for convergence diagnostics,
and refer to bayestestR::ci() for details on credible interval
computation and interpretation.
if (interactive()) { input <- md_prepare( data = buffalo, models = models, species = "buffalo", n_individuals = 5, dur = list(value = 1, unit = "month"), dti = list(value = 1, unit = "day"), add_individual_variation = TRUE, grouped = TRUE, set_target = "hr", which_meta = "mean" ) output <- md_replicate(input, n_replicates = 20) # Plot with 80% credible intervals: md_plot(output, ci = 0.80, method = "HDI") }if (interactive()) { input <- md_prepare( data = buffalo, models = models, species = "buffalo", n_individuals = 5, dur = list(value = 1, unit = "month"), dti = list(value = 1, unit = "day"), add_individual_variation = TRUE, grouped = TRUE, set_target = "hr", which_meta = "mean" ) output <- md_replicate(input, n_replicates = 20) # Plot with 80% credible intervals: md_plot(output, ci = 0.80, method = "HDI") }
Generates a quick visualization of relative error for home range or movement speed estimation from a single replicate of a movedesign workflow. The plot can display either the estimates from that replicate for a random combination of individuals, or, when resampling is enabled, summaries derived from repeated draws of individuals at each population sample size (based on the specified number of resamples).
This functions shows preliminary outputs for a single stochastic run
from md_run() (a movedesign_processed object) and should not be
used to evaluate study design by itself. Instead, users should run
md_replicate() and check for convergence with md_check().
md_plot_preview( obj, n_resamples = NULL, error_threshold = 0.05, pal = c("#007d80", "#A12C3B"), ... )md_plot_preview( obj, n_resamples = NULL, error_threshold = 0.05, pal = c("#007d80", "#A12C3B"), ... )
obj |
An object of class |
n_resamples |
A single positive integer. The number of
random combinations of individuals generated at each population
sample size. Each combination produces one population-level
estimate. Set to |
error_threshold |
Numeric. Relative error threshold shown as
a reference line in the plot (e.g. |
pal |
A character vector of two colors, used for estimates
within and outside the error threshold respectively.
Defaults to |
... |
Reserved for internal use. |
This plot summarizes a single replicate, so it is subject to
stochastic variation. The plot shown here may look very
different with another run of the same design. Use md_replicate()
to aggregate results across many independent runs, and md_check()
to confirm that estimates have stabilised before drawing conclusions.
A ggplot object. Displays relative error as a function of
population sample size, with point estimates, confidence
intervals, and a horizontal reference line at error_threshold.
md_run() to generate the input object.
md_replicate() for robust outputs based on multiple replicates.
md_check() to assess convergence across replicates.
if (interactive()) { data(buffalo) input <- md_prepare( data = buffalo, models = models, species = "buffalo", n_individuals = 5, dur = list(value = 1, unit = "month"), dti = list(value = 1, unit = "day"), add_individual_variation = FALSE, grouped = TRUE, set_target = "hr", which_meta = "mean") output <- md_run(input) md_plot_preview(output, error_threshold = 0.05) }if (interactive()) { data(buffalo) input <- md_prepare( data = buffalo, models = models, species = "buffalo", n_individuals = 5, dur = list(value = 1, unit = "month"), dti = list(value = 1, unit = "day"), add_individual_variation = FALSE, grouped = TRUE, set_target = "hr", which_meta = "mean") output <- md_run(input) md_plot_preview(output, error_threshold = 0.05) }
This function produces two complementary visualizations of replicate
performance across a range of population sample sizes , up to
the maximum number of individuals requested. It
summarizes and plots relative errors regarding the estimation of a
set target (e.g., home range or speed estimation), and classified by
whether the error falls within a user-defined acceptable threshold.
Error for one randomly-selected replicate, rendered as point estimates with confidence interval bars. Reflects the outcome a researcher would observe from a single empirical study.
Mean error collapsed across all replicates (with confidence intervals as a narrow bar, and prediction intervals as a wide shaded band), with per-replicate jitter in the background. Conveys the full distribution of outcomes with the set sampling parameters and population sample size.
Both panels share a common color palette (within/outside the acceptable error threshold) and, when two groups are present, a common shape scale. By default, the function plots only the second item listed above.
md_plot_replicates( obj, ci = 0.95, view = "summary_only", pal = c("#007d80", "#A12C3B"), ... )md_plot_replicates( obj, ci = 0.95, view = "summary_only", pal = c("#007d80", "#A12C3B"), ... )
obj |
A movement design output object (returned by
either |
ci |
Confidence level for the intervals. Applied to both
the narrow confidence bars and wide prediction bands. Must be
between |
view |
Layout selector. Indicate whether to return the
complete two-panel layout ( |
pal |
Character vector of two valis hex color code for
within and for outside the threshold
(default: |
... |
Reserved for internal use. |
A patchwork / ggplot object containing:
Top plot: A ggplot object displaying the results from a
single randomly selected replicate, showing individual error
estimates and their confidence intervals.
Bottom plot: A ggplot object summarizing mean relative
error across all replicates, with aggregated estimates in the
foreground and individual replicates shown in lighter tones in
the background.
md_plot() for the density plot for the maximum . md_replicate() to produce a movedesign_output. md_optimize() to produce a movedesign_optimized.
if(interactive()) { obj <- md_replicate(...) # Default: both panels md_plot_replicates(obj) # Summary panel, custom palette, 80% CI: md_plot_replicates( obj, ci = 0.90, view = "summary_only", pal = c("#1e2a38", "#9e3419")) }if(interactive()) { obj <- md_replicate(...) # Default: both panels md_plot_replicates(obj) # Summary panel, custom palette, 80% CI: md_plot_replicates( obj, ci = 0.90, view = "summary_only", pal = c("#1e2a38", "#9e3419")) }
Prepares and validates all inputs needed to evaluate the study design of animal movement projects using parameters derived from empirical tracking data. The function checks data integrity, fits or verifies movement models, extracts key parameters, and consolidates all settings into a structured object for reproducible and streamlined downstream analyses.
If you do not have empirical data, use md_simulate()
instead, which builds inputs from user-specified parameters.
md_prepare( species = NULL, data, models = NULL, n_individuals = NULL, dur = NULL, dti = NULL, set_target = c("hr", "ctsd"), which_meta = "mean", add_individual_variation = FALSE, groups = NULL, parallel = FALSE, .seed = NULL )md_prepare( species = NULL, data, models = NULL, n_individuals = NULL, dur = NULL, dti = NULL, set_target = c("hr", "ctsd"), which_meta = "mean", add_individual_variation = FALSE, groups = NULL, parallel = FALSE, .seed = NULL )
species |
Character. A label for the focal species (scientific or common name). Used for display and bookkeeping only; does not affect results. |
data |
A named list of telemetry objects, created with
|
models |
(Optional) Named list of fitted movement
models, one per individual, created with |
n_individuals |
A single positive integer. The target number
of animals in the study design (equivalent to number of tags to
be deployed in the field). This defines the population sample
size used in downstream analyses, and does not need to match the
number of individuals in |
dur |
Study duration. A list with elements Example: Valid units: |
dti |
Sampling interval between consecutive GPS fixes.
A list with elements Example: |
set_target |
Character vector specifying the target metrics to be evaluated in the study design workflow. Choose one or both:
Defaults to |
which_meta |
Character. Specifies the analytical target for population-level inference. Choose one:
|
add_individual_variation |
Logical. If |
groups |
(Optional) A named list assigning individuals
to two groups, required when Example: list(
A = c("Animal_01", "Animal_02"),
B = c("Animal_03", "Animal_04")
)
|
parallel |
Logical. Whether to use parallel processing
during model fitting. Defaults to |
.seed |
(Optional) Integer. Random seed for reproducibility.
If |
This function is designed to streamline and standardize the preparation of input data and study design parameters for simulation-based movement ecology analyses. It performs the following key steps:
Validates that data is a non-empty list of telemetry
objects.
Fits movement models to each individual if not supplied.
Checks supplied movement models for validity.
Extracts parameters (tau_p, tau_v, sigma) from fitted
models for use in downstream simulations.
Consolidates all settings, parameters, and model objects into a single structured object.
By default (add_individual_variation = FALSE), all
simulated animals share the same movement parameters,
estimated from the population mean. Setting
add_individual_variation = TRUE instead randomly draws parameters
from the population distribution for each individual, which
better reflects natural variability but increases
uncertainty in downstream estimates.
An object of class movedesign_input, accepted by all
downstream functions such as md_run() and
md_replicate(). Contains the validated inputs, fitted
models, extracted movement parameters, and all metadata
needed for study design evaluation.
md_simulate() to build inputs from directly specified
parameters rather than empirical data,
md_run(),
md_replicate().
Other workflow_steps:
md_compare(),
md_replicate(),
md_run(),
md_simulate()
if(interactive()) { data(buffalo) input <- md_prepare( data = buffalo, models = models, species = "buffalo", n_individuals = 5, dur = list(value = 1, unit = "month"), dti = list(value = 1, unit = "day"), set_target = "hr", which_meta = "mean") summary(input) }if(interactive()) { data(buffalo) input <- md_prepare( data = buffalo, models = models, species = "buffalo", n_individuals = 5, dur = list(value = 1, unit = "month"), dti = list(value = 1, unit = "day"), set_target = "hr", which_meta = "mean") summary(input) }
Runs the full movedesign workflow multiple times and aggregates
outputs across independent replicates. Use this function after
md_run() to quantify how stochasticity and design choices affect
estimation performance, and to produce the robust, replicated
results needed for a reliable design evaluation. Use md_check()
afterwards to assess whether enough replicates have been run for
stable inference.
Can also extend a previous run of md_replicate(): passing an
existing movedesign_output object appends new replicates to the
existing outputs rather than starting over.
md_replicate( obj, n_replicates, verbose = TRUE, trace = TRUE, parallel = FALSE, error_threshold = 0.05, ncores = parallel::detectCores(), ... )md_replicate( obj, n_replicates, verbose = TRUE, trace = TRUE, parallel = FALSE, error_threshold = 0.05, ncores = parallel::detectCores(), ... )
obj |
An object of class |
n_replicates |
A single positive integer. The number of
independent replicates to run. Must be at least |
verbose |
Logical. If |
trace |
Logical. If |
parallel |
Logical. If |
error_threshold |
Numeric. The acceptable error
threshold used when summarising estimation performance across
replicates (e.g. |
ncores |
Integer. Number of CPU cores to use when
|
... |
Reserved for internal use. |
Each replicate calls md_run() with a unique random seed,
ensuring results are statistically independent. If the function is
interrupted, it returns all results completed up to that point
rather than discarding them. This makes it safe to stop a long run
early and still retrieve partial results.
Setting parallel = TRUE can substantially reduce runtime for
large replication runs.
Passing a movedesign_output object as obj adds new
replicates to the existing results. This is useful when an
initial run needs more replicates for stable inference without
discarding completed work.
There is no universal rule for how many replicates are sufficient.
After an initial run, use md_check() to evaluate whether the
cumulative mean of the tracked error metric has stabilised across
replicates. If convergence has not been reached, pass the returned
movedesign_output object back to md_replicate() to append
more replicates without discarding completed work. Repeat until
md_check() confirms convergence.
An object of class movedesign_output, accepted by md_check(),
md_plot(), and md_plot_replicates().
md_prepare() and md_simulate() to build the input object.
md_run() for a single exploratory run before committing to
full replication.
md_check() to assess whether cumulative estimation error has
stabilised across replicates (the recommended criterion for
deciding when enough replicates have been run).
md_plot() and md_plot_replicates() to visualize outputs.
Other workflow_steps:
md_compare(),
md_prepare(),
md_run(),
md_simulate()
if (interactive()) { data(buffalo) input <- md_prepare( data = buffalo, models = models, species = "buffalo", n_individuals = 5, dur = list(value = 1, unit = "month"), dti = list(value = 1, unit = "day"), add_individual_variation = TRUE, grouped = FALSE, set_target = "hr", which_meta = "mean") output <- md_replicate(input, n_replicates = 5) md_check(output) # Append more replicates to an existing result: output <- md_replicate(output, n_replicates = 10) }if (interactive()) { data(buffalo) input <- md_prepare( data = buffalo, models = models, species = "buffalo", n_individuals = 5, dur = list(value = 1, unit = "month"), dti = list(value = 1, unit = "day"), add_individual_variation = TRUE, grouped = FALSE, set_target = "hr", which_meta = "mean") output <- md_replicate(input, n_replicates = 5) md_check(output) # Append more replicates to an existing result: output <- md_replicate(output, n_replicates = 10) }
The main workhorse of the movedesign workflow. Runs one full round
of simulation and analyses to evaluate whether the design meets its
estimation targets. #' Call this function once your design has been
built using md_prepare() for empirical data, or md_simulate()
for user-specified parameters.
Because a single run is subject to stochastic
variation, treat outputs from md_run() as exploratory, and use
md_replicate() for more robust inferences (as it aggregates
results across multiple replicates).
md_run(design, trace = TRUE, .seeds = NULL)md_run(design, trace = TRUE, .seeds = NULL)
design |
An object of class |
trace |
Logical. If |
.seeds |
(Optional) List of integer seeds, one per individual,
used to reproduce a previous run exactly.
Seeds from a prior run are stored in the |
Progress messages are printed by default.
Every individual simulation is assigned a unique random
seed, stored in $seedList of the returned object.
Passing that list to .seeds in a subsequent call
reproduces the run exactly. This is particularly useful
when replicating a result first produced in the Shiny
app.
Typical workflow:
Prepare a study design with md_prepare().
Run all simulations and analyses with md_run().
Summarize or plot outputs from the returned object.
An object of class movedesign_processed, accepted by
downstream functions such as md_plot_preview(),
or md_compare_preview().
md_prepare() and md_simulate() to build the input
object. md_replicate() to run the workflow multiple
times and aggregate results, which is recommended over
a single md_run() call for any final design
evaluation.
md_plot_preview() and md_compare_preview() to inspect
or compare these preliminary outputs.
Other workflow_steps:
md_compare(),
md_prepare(),
md_replicate(),
md_simulate()
if(interactive()) { input <- md_prepare( data = buffalo, models = models, species = "buffalo", n_individuals = 5, dur = list(value = 1, unit = "month"), dti = list(value = 1, unit = "day"), add_individual_variation = FALSE, set_target = "hr", which_meta = "mean") output <- md_run(input) }if(interactive()) { input <- md_prepare( data = buffalo, models = models, species = "buffalo", n_individuals = 5, dur = list(value = 1, unit = "month"), dti = list(value = 1, unit = "day"), add_individual_variation = FALSE, set_target = "hr", which_meta = "mean") output <- md_run(input) }
Simulates continuous-time movement trajectories based on user-specified movement parameters. The function is designed to support study design workflows by generating synthetic tracking data under specified the movement, sampling, and analytical assumptions.
Use this function when you do not have empirical data available.
For workflows grounded in real data, use md_prepare() instead,
which extracts movement parameters directly from fitted models.
md_simulate( n_individuals = NULL, tau_p, tau_v, sigma, dur = NULL, dti = NULL, set_target = c("hr", "ctsd"), which_meta = "mean", grouped = FALSE, parallel = FALSE, seed = NULL )md_simulate( n_individuals = NULL, tau_p, tau_v, sigma, dur = NULL, dti = NULL, set_target = c("hr", "ctsd"), which_meta = "mean", grouped = FALSE, parallel = FALSE, seed = NULL )
n_individuals |
Integer. Number of tracked individuals (tags)
to simulate. Defines the target population sample size. When
|
tau_p |
Position autocorrelation timescale, corresponding to the average home range crossing time. Provide a list with two elements:
Example: When list( A = list(value = 6, unit = "hours"), B = list(value = 12, unit = "hours") ) |
tau_v |
Velocity autocorrelation timescale, corresponding to directional persistence (how long does an animal maintains a consistent direction and speed before changing course). Same format as |
sigma |
Location variance parameter. Captures the overall spatial extent of movement. Same format as |
dur |
Sampling duration. A list with elements Example: |
dti |
Sampling interval between relocations.
A list with elements Example: |
set_target |
Character vector specifying the target metrics to be evaluated in the study design workflow. Choose one or both:
Defaults to |
which_meta |
Character specifying the population-level analytical target. Choose one:
|
grouped |
Logical. Set to |
parallel |
Logical. Whether to use parallel processing
during model fitting. Defaults to |
seed |
Optional integer. Random seed for reproducibility.
If |
Each simulated trajectory represents a single continuously-tracked
animal, generated from a continuous-time movement model with the
parameters you supply. The time vector is constructed from dur
and dti, and then one trajectory per individual is drawn from
that model.
Simulated data are immediately passed through the full
movedesign workflow (model fitting, aggregation, and
estimation of the target metrics) so the returned object is
ready for study design evaluation without further steps.
When grouped = TRUE, simulations are generated independently for
each using their own movement parameters but currently share the
same sampling parameters (dur and dti). Group structure
only affects downstream inference when which_meta = "ratio".
An object of class movedesign_input. This is the standard input
object for the movedesign workflow and can be passed directly
to downstream functions such as md_run() or md_replicate().
It contains the simulated trajectories, fitted movement models,
and all metadata needed for study design evaluation.
Results are only as informative as the parameters you provide.
Where possible, derive parameters from real tracking data using
md_prepare(). Simulations based on arbitrary or weakly justified
parametersvalues may be useful for exploration purposes, but should
be interpreted with caution in any design or inference context.
md_prepare() to derive parameters from real tracking
data.
Other workflow_steps:
md_compare(),
md_prepare(),
md_replicate(),
md_run()
if(interactive()) { # Single group: # (simulate 10 individuals over 3 months with fixes every 2 hours) input <- md_simulate( n_individuals = 4, tau_p = list(value = 6, unit = "hours"), tau_v = list(value = 30, unit = "minutes"), sigma = list(value = 1, unit = "km^2"), dur = list(value = 1, unit = "month"), dti = list(value = 2, unit = "hours")) # Two groups with different parameters: input_grouped <- md_simulate( n_individuals = 10, tau_p = list( A = list(value = 6, unit = "hours"), B = list(value = 12, unit = "hours") ), tau_v = list( A = list(value = 0.5, unit = "hours"), B = list(value = 1, unit = "hours") ), sigma = list( A = list(value = 1, unit = "km^2"), B = list(value = 2, unit = "km^2") ), dur = list(value = 3, unit = "months"), dti = list(value = 2, unit = "hours"), grouped = TRUE, which_meta = "ratio") }if(interactive()) { # Single group: # (simulate 10 individuals over 3 months with fixes every 2 hours) input <- md_simulate( n_individuals = 4, tau_p = list(value = 6, unit = "hours"), tau_v = list(value = 30, unit = "minutes"), sigma = list(value = 1, unit = "km^2"), dur = list(value = 1, unit = "month"), dti = list(value = 2, unit = "hours")) # Two groups with different parameters: input_grouped <- md_simulate( n_individuals = 10, tau_p = list( A = list(value = 6, unit = "hours"), B = list(value = 12, unit = "hours") ), tau_v = list( A = list(value = 0.5, unit = "hours"), B = list(value = 1, unit = "hours") ), sigma = list( A = list(value = 1, unit = "km^2"), B = list(value = 2, unit = "km^2") ), dur = list(value = 3, unit = "months"), dti = list(value = 2, unit = "hours"), grouped = TRUE, which_meta = "ratio") }
Assigns a replicate ID to each md_run() output, re-runs
population-level resampling for each, and aggregates inference
results into a unified output. Calling md_stack() on
a list of n md_run() outputs produces the same result as
calling md_replicate() with n_replicates = n.
Use this function when the md_run() calls have already been
made; for example, when runs were executed in parallel outside
the standard workflow, or recovered after an interruption.
The distinction from md_merge() is important. md_merge()
pools all inputs into one larger dataset (e.g., if each run has
5 individuals, the output has 10, and the design corresponds to
a single replicate.
md_stack() assigns each run a separate replicate ID:
number of individuals does not accumulate, and population-level
inference is aggregated across replicates.
md_stack(obj, error_threshold = 0.05, ...)md_stack(obj, error_threshold = 0.05, ...)
obj |
A list of |
error_threshold |
Numeric. The acceptable error
threshold used when summarising estimation performance across
replicates (e.g. |
... |
Reserved for internal use. |
A list of class movedesign_output.
Lists all continuous-time movement process models in ctmm. Each row is a different movement model applicable for animal movement.
movmodsmovmods
A data.frame with 5 rows and 6 variables:
Full descriptive name of the model (e.g., "Ind. Ident.
Distr. (IID)"). Used throughout ctmm. See reference for more
details on each model and their properties.
Abbreviated name, used where space is limited.
Logical. TRUE if the model includes the position autocorrelation timescale (i.e., home range crossing time).
Logical. TRUE if the model includes the velocity autocorrelation timescale (i.e., directional persistence).
Logical; TRUE if the model supports range residency, meaning the animal is likely to remain within a bounded area or "home range" instead of expanding indefinitely.
Character string summarizing which autocorrelation parameters (e.g., tau_p, tau_v) the model estimates. Shown in HTML for documentation.
...
Calabrese et al. (2016). ctmm: an R package for analyzing
animal relocation data as a continuous-time stochastic process.
Methods in Ecology and Evolution, 7(9), 1124-1132
https://doi.org/10.1111/2041-210X.12559.
Silva et al. (2022). Autocorrelation-informed home range estimation: A review and practical guide. Methods in Ecology and Evolution, 13(3), 534-544 <10.1111/2041-210X.13786>.
S3 method for plotting a movedesign_optimized object.
Returns the precomputed ggplot stored in the object.
## S3 method for class 'movedesign_optimized' plot(x, ...)## S3 method for class 'movedesign_optimized' plot(x, ...)
x |
A |
... |
Unused |
movedesign_check objectsPrint method for movedesign_check objects
## S3 method for class 'movedesign_check' print(x, ...)## S3 method for class 'movedesign_check' print(x, ...)
x |
An object of class |
... |
Unused |
movedesign_input
Print method for movedesign_input
## S3 method for class 'movedesign_input' print(x, ...)## S3 method for class 'movedesign_input' print(x, ...)
x |
An object of class |
... |
Additional arguments |
movedesign_optimized objectsPrint a structured summary of a movedesign_optimized object produced
by md_optimize(). This includes study design details, replication
settings, estimation performance per target metric, and an optional
convergence assessment.
## S3 method for class 'movedesign_optimized' print( x, verbose = TRUE, m = NULL, ci = 0.95, tol = 0.05, n_converge = 9, plot = TRUE, pal = c("#007d80", "#A12C3B"), ... )## S3 method for class 'movedesign_optimized' print( x, verbose = TRUE, m = NULL, ci = 0.95, tol = 0.05, n_converge = 9, plot = TRUE, pal = c("#007d80", "#A12C3B"), ... )
x |
An object of class |
verbose |
Logical. If |
m |
Numeric (optional). Restricts results to a specific population
sample size. Defaults to |
ci |
Numeric. Confidence level for intervals (applied to narrow
confidence bars and wide prediction bands). Must be between
|
tol |
Numeric. Tolerance threshold for absolute change in
cumulative mean to declare convergence. Default is |
n_converge |
Integer. Number of consecutive steps within
tolerance required to confirm convergence. Default is |
plot |
Logical. If |
pal |
Character vector of colors for the convergence plot, e.g.
|
... |
Additional arguments (currently unused). |
movedesign_output
Print method for movedesign_output
## S3 method for class 'movedesign_output' print( x, verbose = FALSE, m = NULL, ci = 0.95, tol = 0.05, n_converge = 9, plot = TRUE, pal = c("#007d80", "#A12C3B"), ... )## S3 method for class 'movedesign_output' print( x, verbose = FALSE, m = NULL, ci = 0.95, tol = 0.05, n_converge = 9, plot = TRUE, pal = c("#007d80", "#A12C3B"), ... )
x |
An object of class |
verbose |
Logical. If |
m |
Optional integer specifying the sample size used in convergence checks. |
ci |
Numeric value giving the confidence level used when summarizing
estimator error. Default is |
tol |
Numeric tolerance used when assessing convergence. Default is
|
n_converge |
Integer giving the number of convergence steps to evaluate. |
plot |
Logical indicating whether convergence diagnostics should
produce plots when |
pal |
Character vector specifying colors used in convergence plots. |
... |
Additional arguments |
movedesign_processed
Print method for movedesign_processed
## S3 method for class 'movedesign_processed' print(x, ...)## S3 method for class 'movedesign_processed' print(x, ...)
x |
An object of class |
... |
Additional arguments |
movedesign_report objectsPrint method for movedesign_report objects
## S3 method for class 'movedesign_report' print(x, ...)## S3 method for class 'movedesign_report' print(x, ...)
x |
An object of class |
... |
Unused |
movedesign session fileReads a .rds file exported from the movedesign
Shiny application, validates its structure, and reconstitutes
each component to its corresponding movedesign class.
The returned list always contains:
design_inputA movedesign_input object: sampling design
parameters as specified by the user.
design_processedA movedesign_processed object: results from a
single simulation replicate.
(Optional) If multiple replicates have been run:
design_outputA movedesign_output object: aggregated results
across all simulation replicates.
read_md(filepath)read_md(filepath)
filepath |
Path to an |
A named list of three movedesign objects.
## Not run: md_objects <- read_md("path/to/my_file.rds") md_objects$design_input # movedesign_input object md_objects$design_processed # movedesign_processed object md_objects$design_output # movedesign_output (if available) ## End(Not run)## Not run: md_objects <- read_md("path/to/my_file.rds") md_objects$design_input # movedesign_input object md_objects$design_processed # movedesign_processed object md_objects$design_output # movedesign_output (if available) ## End(Not run)
Run movedesign R Shiny application
run_app( onStart = NULL, options = list(), enableBookmarking = NULL, uiPattern = "/", ... )run_app( onStart = NULL, options = list(), enableBookmarking = NULL, uiPattern = "/", ... )
onStart |
A function called before the app runs. Only relevant for programmatic usage. |
options |
A named list passed to |
enableBookmarking |
One of |
uiPattern |
A regular expression used to match request paths. The request path must match the expression in full to be handled by the UI. |
... |
arguments to pass to golem_opts.
See |
No return value. This function is called for its side effects.
movedesign_check objectsSummary method for movedesign_check objects
## S3 method for class 'movedesign_check' summary(object, verbose = FALSE, ...)## S3 method for class 'movedesign_check' summary(object, verbose = FALSE, ...)
object |
An object of class |
verbose |
Add interpretation text |
... |
Unused |
movedesign_input
Summary method for movedesign_input
## S3 method for class 'movedesign_input' summary(object, ...)## S3 method for class 'movedesign_input' summary(object, ...)
object |
An object of class |
... |
Additional arguments |
Print a structured summary of a movedesign_optimized object
produced by md_optimize(). The summary
reports the study design, replication settings, estimation
performance for each target metric, and a convergence
assessment.
This method runs automatically when calling
summary(output) on a movedesign_optimized object.
## S3 method for class 'movedesign_optimized' summary( object, verbose = FALSE, error_threshold = NULL, m = NULL, ci = 0.95, tol = 0.05, n_converge = 9, plot = TRUE, pal = c("#007d80", "#A12C3B"), ... )## S3 method for class 'movedesign_optimized' summary( object, verbose = FALSE, error_threshold = NULL, m = NULL, ci = 0.95, tol = 0.05, n_converge = 9, plot = TRUE, pal = c("#007d80", "#A12C3B"), ... )
object |
A |
verbose |
Logical. If |
error_threshold |
Numeric. Upper limit of the relative error
in estimation (e.g., |
m |
Numeric (Optional). If provided, restricts the results to
a specific population sample size ( |
ci |
Confidence level for the intervals. Applied to both
the narrow confidence bars and wide prediction bands. Must be
between |
tol |
Numeric. The tolerance threshold for absolute change in
the cumulative mean to declare convergence. Defaults to
|
n_converge |
Integer. Number of consecutive steps within tolerance required to confirm convergence. |
plot |
Logical. If |
pal |
Character vector of color(s) of the plot, such as
|
... |
Additional arguments |
Print a structured summary of a movedesign_output object
produced by md_replicate() or md_stack(). The summary
reports the study design, replication settings, estimation
performance for each target metric, and a convergence
assessment.
This method runs automatically when calling
summary(output) on a movedesign_output object.
## S3 method for class 'movedesign_output' summary( object, verbose = FALSE, m = NULL, ci = 0.95, tol = 0.05, n_converge = 9, plot = TRUE, pal = c("#007d80", "#A12C3B"), ... )## S3 method for class 'movedesign_output' summary( object, verbose = FALSE, m = NULL, ci = 0.95, tol = 0.05, n_converge = 9, plot = TRUE, pal = c("#007d80", "#A12C3B"), ... )
object |
A |
verbose |
Logical. If |
m |
Numeric (Optional). If provided, restricts the results to
a specific population sample size ( |
ci |
Confidence level for the intervals. Applied to both
the narrow confidence bars and wide prediction bands. Must be
between |
tol |
Numeric. The tolerance threshold for absolute change in
the cumulative mean to declare convergence. Defaults to
|
n_converge |
Integer. Number of consecutive steps within tolerance required to confirm convergence. |
plot |
Logical. If |
pal |
Character vector of color(s) of the plot, such as
|
... |
Additional arguments |
md_replicate(), md_stack() to generate results.
md_check() to inspect convergence directly.
md_compare() to compare designs after convergence.
if(interactive()) { data(buffalo) input <- md_prepare( species = "African buffalo", data = buffalo, n_individuals = 5, dur = list(value = 1, unit = "month"), dti = list(value = 1, unit = "day"), set_target = "hr", which_meta = "mean") output <- md_replicate(input, n_replicates = 20) # Print standard summary: summary(output) # Run full convergence diagnostics: summary(output, verbose = TRUE, tol = 0.05) }if(interactive()) { data(buffalo) input <- md_prepare( species = "African buffalo", data = buffalo, n_individuals = 5, dur = list(value = 1, unit = "month"), dti = list(value = 1, unit = "day"), set_target = "hr", which_meta = "mean") output <- md_replicate(input, n_replicates = 20) # Print standard summary: summary(output) # Run full convergence diagnostics: summary(output, verbose = TRUE, tol = 0.05) }
movedesign_processed
Summary method for movedesign_processed
## S3 method for class 'movedesign_processed' summary(object, ...)## S3 method for class 'movedesign_processed' summary(object, ...)
object |
An object of class |
... |
Additional arguments |
movedesign_report objectsSummary method for movedesign_report objects
## S3 method for class 'movedesign_report' summary(object, ...)## S3 method for class 'movedesign_report' summary(object, ...)
object |
An object of class |
... |
Unused |