Skip to contents

Use this additive formula marker in F_settings$mu_form or index_settings$q_form, including inside for_fleet() and for_survey(). Ordinary formula coefficients provide the F or q scale; the curve multiplies it. This curve does not select an age at which F must equal its scale.

Usage

double_logistic(x, by = NULL)

Arguments

x

Name of a numeric age/size column. F curves require age or a catch covariate constant over years at each age within its applicable fleet.

by

Optional categorical column giving separate curves.

Value

Formula marker; direct calls raise an error.

Details

The four-parameter curve follows WHAM's raw product: $$S(x)=\frac{1}{1+\exp\{-(x-a_{50,up})/k_{up}\}} \frac{1}{1+\exp\{(x-a_{50,down})/k_{down}\}},$$ with positive \(k_{up},k_{down}\). There is no peak normalization or midpoint ordering. The accompanying F/q coefficient is a scale multiplier, not necessarily maximum realized F/q. Reversed midpoints are permitted; sparse tails and alternative parameter combinations can yield weak or multimodal estimates. Check uncertainty and recovery before routine use.

WHAM's age counter runs from 1 to the number of ages; tinyAM instead uses the numeric coordinates in x. Account for this offset in comparisons. F curves support no residual process, IID or AR1 residuals; static curves cancel from intrinsic RW/correlated-RW increments and are rejected there. Catchability curves multiply q after its inverse link, including logit q.

References

Miller, T. J. and Stock, B. C., WHAM, src/selectivity.hpp, get_selAA(), double-logistic model 3, revision ffcbfd093161e8210aa20716933975191b661807 (GPL-3). https://github.com/timjmiller/wham/blob/ffcbfd093161e8210aa20716933975191b661807/src/selectivity.hpp

Examples

~ double_logistic(age)
#> ~double_logistic(age)
#> <environment: 0x5edf8584e5a0>
~ double_logistic(age, by = fleet)
#> ~double_logistic(age, by = fleet)
#> <environment: 0x5edf8584e5a0>
~ 0 + for_fleet("Trawl", ~ factor(year) + logistic(age)) +
  for_fleet("Gillnet", ~ factor(year) + double_logistic(age))
#> ~0 + for_fleet("Trawl", ~factor(year) + logistic(age)) + for_fleet("Gillnet", 
#>     ~factor(year) + double_logistic(age))
#> <environment: 0x5edf8584e5a0>