Extracts the predicted NSEC value as desired from an object of class bayesnecfit or bayesmanecfit.

nsec(
  object,
  sig_val = 0.01,
  precision = 1000,
  posterior = FALSE,
  x_range = NA,
  hormesis_def = "control",
  xform = identity,
  prob_vals = c(0.5, 0.025, 0.975)
)

Arguments

object

An object of class bayesnecfit or bayesmanecfit returned by bnec.

sig_val

Probability value to use as the lower quantile to test significance of the predicted posterior values. against the lowest observed concentration (assumed to be the control), to estimate NEC as an interpolated NOEC value from smooth ECx curves.

precision

The number of unique x values over which to find NSEC - large values will make the NSEC estimate more precise.

posterior

A logical value indicating if the full posterior sample of calculated NSEC values should be returned instead of just the median and 95 credible intervals.

x_range

A range of x values over which to consider extracting NSEC.

hormesis_def

A character vector, taking values of "max" or "control". See Details.

xform

A function to apply to the returned estimated concentration values.

prob_vals

A vector indicating the probability values over which to return the estimated NSEC value. Defaults to 0.5 (median) and 0.025 and 0.975 (95 percent credible intervals).

Value

A vector containing the estimated NSEC value, including upper and lower 95% credible interval bounds.

Details

For hormesis_def, if "max", then NSEC values are calculated as a decline from the maximum estimates (i.e. the peak at NEC); if "control", then ECx values are calculated relative to the control, which is assumed to be the lowest observed concentration.

Calls to functions ecx and nsec and compare_fitted do not require the same level of flexibility in the context of allowing argument newdata (from a posterior_predict perspective) to be supplied manually, as this is and should be handled within the function itself. The argument precision controls how precisely the ecx or nsec value is estimated, with argument x_range allowing estimation beyond the existing range of the observed data (otherwise the default range) which can be useful in a small number of cases. There is also no reasonable case where estimating these from the raw data would be of value, because both functions would simply return one of the treatment concentrations, making NOEC a better metric in that case.

See also

Examples

# \donttest{
library(bayesnec)

data(manec_example)
nsec(manec_example)
#>       Q50      Q2.5     Q97.5 
#> 1.4748441 0.2385101 1.5403468 
#> attr(,"precision")
#> [1] 1000
#> attr(,"sig_val")
#> [1] 0.01
#> attr(,"toxicity_estimate")
#> [1] "nsec"
# }