jitter | R Documentation |
Iteratively run a Stock Synthesis model with different jittered starting parameter values based on the jitter fraction. Output files are renamed in the format Report1.sso, Report2.sso, etc.
jitter(
dir = NULL,
mydir = lifecycle::deprecated(),
Intern = lifecycle::deprecated(),
Njitter,
printlikes = TRUE,
jitter_fraction = NULL,
init_values_src = NULL,
exe = "ss3",
verbose = FALSE,
extras = NULL,
...
)
dir |
Directory where model files are located. |
mydir |
Deprecated. Use |
Intern |
Deprecated. Use |
Njitter |
Number of jitters, or a vector of jitter iterations.
If |
printlikes |
A logical value specifying if the likelihood values should be printed to the console. |
jitter_fraction |
The value, typically 0.1, used to define a uniform
distribution in cumulative normal space to generate new initial parameter values.
The default of |
init_values_src |
Either zero or one, specifying if the initial values to
jitter should be read from the control file or from the par file, respectively.
The default is |
exe |
Executable name. Can be just the name of the executable
file if it is in the specified directory or in the user's PATH. Can
also include the absolute path or a path relative to the specified
directory. Needs to be a single character string, not a vector.
On Windows, |
verbose |
A logical value specifying if output should be printed to the screen. |
extras |
Additional ADMB command line arguments passed to the executable, such as "-nohess" |
... |
Additional arguments passed to |
This function will loop through models using the default strategy set by the
future
package in the current working environment. In general, this means models
will run sequentially. To run multiple models simultaneously using parallel
computing, see future::plan()
Note that random number generation occurs outside of R directly in stock synthesis.
When running jitters in parallel (i.e. future
strategy is not sequential
), no formal
steps are taken to ensure independence of random numbers generated across
cores. However, when running in parallel, there is a pause of i seconds before the
ith jitter starts. The stock synthesis random number seed is based on the
system time down to the second, so this is intended to produce random numbers
from different seeds for each jitter. Random numbers may still not technically
be considered statistically independent. If jitter results are only used as a
general heuristic for model convergence, this mild lack of independence should
not matter much.
When running models in parallel, the transfer of large files leads to expensive
overheads and parallel processing may not be faster. Covariance files are
especially expensive to transfer, so the option extras = '-nohess'
is
recommended when using parallel processing.
A vector of likelihoods for each jitter iteration.
James T. Thorson, Kelli F. Johnson, Ian G. Taylor, Kathryn L. Doering, Kiva L. Oken, Elizabeth F. Perl
Other run functions:
copy_SS_inputs()
,
populate_multiple_folders()
,
profile()
,
retro()
,
run()
,
tune_comps()
## Not run:
#### Run jitter from par file with arbitrary, but common, choice of 0.1
modeldir <- tail(dir(system.file("extdata", package = "r4ss"), full.names = TRUE), 1)
numjitter <- 25
jit.likes <- jitter(
dir = modeldir, Njitter = numjitter,
jitter_fraction = 0.1, init_values_src = 1
)
#### Run same jitter in parallel
ncores <- parallelly::availableCores(omit = 1)
future::plan(future::multisession, workers = ncores)
jit.likes <- jitter(
dir = modeldir, Njitter = numjitter,
jitter_fraction = 0.1, init_values_src = 1
)
future::plan(future::sequential)
#### Read in results using other r4ss functions
# (note that un-jittered model can be read using keyvec=0:numjitter)
profilemodels <- SSgetoutput(dirvec = modeldir, keyvec = 1:numjitter, getcovar = FALSE)
# summarize output
profilesummary <- SSsummarize(profilemodels)
# Likelihoods
profilesummary[["likelihoods"]][1, ]
# Parameters
profilesummary[["pars"]]
## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.