
R/tabularise.nls.R
equation.nls.RdCreate the model equation of several self-starting nonlinear models available in the stats package.
# S3 method for class 'nls'
equation(
object,
ital_vars = FALSE,
use_coefs = FALSE,
coef_digits = 2L,
fix_signs = TRUE,
swap_var_names = NULL,
var_names = swap_var_names,
op_latex = c("\\cdot", "\\times"),
...
)
# S3 method for class 'summary.nls'
equation(
object,
ital_vars = FALSE,
use_coefs = FALSE,
coef_digits = 2L,
fix_signs = TRUE,
swap_var_names = NULL,
op_latex = c("\\cdot", "\\times"),
...
)An nls or summary.nls object.
Logical, defaults to FALSE. Should the variable names not
be wrapped in the \operatorname command?
Logical, defaults to FALSE. Should the actual model
estimates be included in the equation instead of math symbols? If TRUE,
var_names= is ignored.
Integer, defaults to 2. The number of decimal places to
round to when displaying model estimates with use_coefs = TRUE.
Logical, defaults to TRUE. If disabled, coefficient
estimates that are negative are preceded with a + (e.g. 5(x) + -3(z)).
If enabled, the + - is replaced with a - (e.g. 5(x) - 3(z)).
A named character vector as c(old_var_name = "new name")
A named character vector as c(old_var_name = "new name")
The LaTeX product operator character to use in fancy
scientific notation, either \\cdot (by default), or \\times.
Additional arguments (not used yet).
A character string with a LaTeX equation.
equation <- equatiomatic::equation
chick1 <- ChickWeight[ChickWeight$Chick == 1, ]
chick1_nls <- nls(data = chick1, weight ~ SSlogis(Time, Asym, xmid, scal))
summary(chick1_nls)
#>
#> Formula: weight ~ SSlogis(Time, Asym, xmid, scal)
#>
#> Parameters:
#> Estimate Std. Error t value Pr(>|t|)
#> Asym 937.0300 465.8677 2.011 0.07516 .
#> xmid 35.2230 8.3120 4.238 0.00218 **
#> scal 11.4052 0.9052 12.599 5.08e-07 ***
#> ---
#> Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#>
#> Residual standard error: 2.919 on 9 degrees of freedom
#>
#> Number of iterations to convergence: 0
#> Achieved convergence tolerance: 7.343e-06
#>
equation(chick1_nls)
#> $$
#> \begin{aligned} \operatorname{weight} = \frac{Asym}{1 + e^{(xmid - \operatorname{Time}) /scal}} + \epsilon \end{aligned}
#> $$
equation(summary(chick1_nls))
#> $$
#> \begin{aligned} \operatorname{weight} = \frac{Asym}{1 + e^{(xmid - \operatorname{Time}) /scal}} + \epsilon \end{aligned}
#> $$
chick1_nls2 <- nls(data = chick1,
weight ~ SSlogis(Time, Asym = A, xmid = x, scal = scale))
summary(chick1_nls2)
#>
#> Formula: weight ~ SSlogis(Time, Asym = A, xmid = x, scal = scale)
#>
#> Parameters:
#> Estimate Std. Error t value Pr(>|t|)
#> A 937.0300 465.8677 2.011 0.07516 .
#> x 35.2230 8.3120 4.238 0.00218 **
#> scale 11.4052 0.9052 12.599 5.08e-07 ***
#> ---
#> Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#>
#> Residual standard error: 2.919 on 9 degrees of freedom
#>
#> Number of iterations to convergence: 0
#> Achieved convergence tolerance: 7.343e-06
#>
equation(chick1_nls2)
#> $$
#> \begin{aligned} \operatorname{weight} = \frac{A}{1 + e^{(x - \operatorname{Time}) /scale}} + \epsilon \end{aligned}
#> $$
equation(summary(chick1_nls2))
#> $$
#> \begin{aligned} \operatorname{weight} = \frac{A}{1 + e^{(x - \operatorname{Time}) /scale}} + \epsilon \end{aligned}
#> $$
equation(summary(chick1_nls2), swap_var_names = c(
weight = "Body weight [gm]",
Time = "Number of days"))
#> $$
#> \begin{aligned} \operatorname{Body \ weight \ [gm]} = \frac{A}{1 + e^{(x - \operatorname{Number \ of \ days}) /scale}} + \epsilon \end{aligned}
#> $$