Helper functions meant to be used in conjunction with
mbte_fit
.
tr_linear() tr_exponential() tr_logistic()
A fitting-quosure
will be returned.
tr_linear
: Determine a linear trend using
lm
.
tr_exponential
: The presence of an exponenetial trend is
determined by applying a log-transformation to the signal-values and
fitting them via lm
. A vector of the correct length
with NA
's will be returned if some values of the signal are zero or
negative.
tr_logistic
: Fit a sigmoid model using
nls2
. This fitting helper requires the `nls2`-package
(the "port"-algorithm with 500 iterations is used). The signal-tibble to
fit must have at least five rows (see mbte_fit
). Otherwise
NA
's are returned.
The formula used for fitting is
value ~ A / (1 + exp(B * (C - time))) + D
. NOTE: warnings are
suppressed.
filtered_signals
(dataset used in examples)
data(filtered_signals) # Use fitting helpers to fit signals # # NOTE: The unquoting operator (`!!`) is used, since fitting helpers return # quosures. fits1 <- mbte_fit(filtered_signals, lin = !!tr_linear()) fits1#> # A tibble: 37 x 4 #> mv signal_nr signal fits #> <chr> <int> <list> <list> #> 1 mv1 1 <tibble [22 × 2]> <tibble [22 × 1]> #> 2 mv3 2 <tibble [22 × 2]> <tibble [22 × 1]> #> 3 mv5 1 <tibble [30 × 2]> <tibble [30 × 1]> #> 4 mv6 1 <tibble [21 × 2]> <tibble [21 × 1]> #> 5 mv6 3 <tibble [30 × 2]> <tibble [30 × 1]> #> 6 mv7 1 <tibble [56 × 2]> <tibble [56 × 1]> #> 7 mv8 1 <tibble [29 × 2]> <tibble [29 × 1]> #> 8 mv8 2 <tibble [26 × 2]> <tibble [26 × 1]> #> 9 mv9 1 <tibble [63 × 2]> <tibble [63 × 1]> #> 10 mv10 1 <tibble [25 × 2]> <tibble [25 × 1]> #> # … with 27 more rows# Equivalent without using fitting-helpers (columns for time and value of # signal have to be provided explicitly) fits2 <- mbte_fit(filtered_signals, lin = lm(value ~ t, .signal)) fits2#> # A tibble: 37 x 4 #> mv signal_nr signal fits #> <chr> <int> <list> <list> #> 1 mv1 1 <tibble [22 × 2]> <tibble [22 × 1]> #> 2 mv3 2 <tibble [22 × 2]> <tibble [22 × 1]> #> 3 mv5 1 <tibble [30 × 2]> <tibble [30 × 1]> #> 4 mv6 1 <tibble [21 × 2]> <tibble [21 × 1]> #> 5 mv6 3 <tibble [30 × 2]> <tibble [30 × 1]> #> 6 mv7 1 <tibble [56 × 2]> <tibble [56 × 1]> #> 7 mv8 1 <tibble [29 × 2]> <tibble [29 × 1]> #> 8 mv8 2 <tibble [26 × 2]> <tibble [26 × 1]> #> 9 mv9 1 <tibble [63 × 2]> <tibble [63 × 1]> #> 10 mv10 1 <tibble [25 × 2]> <tibble [25 × 1]> #> # … with 27 more rows