View source: R/impulse_fitting.R
estimate_timecourse_params_tf | R Documentation |
Fit Timecourses
estimate_timecourse_params_tf(
measurements,
model = "sigmoid",
n_initializations = 100,
max_n_initializations = 1000,
use_prior = TRUE,
prior_pars = c(v_sd = 1.2, rate_shape = 2, rate_scale = 0.25, time_shape = 2,
time_scale = 15),
fit_intercept = FALSE,
learning_rate = 0.1,
n_iterations = 100,
verbose = FALSE
)
measurements |
a tibble containing:
|
model |
model to fit:
|
n_initializations |
Number of initializations to use for each timecourse. |
max_n_initializations |
Maximum number of initializations that can be used |
use_prior |
If FALSE, fit least squares. If TRUE, add priors for a MAP estimate. |
prior_pars |
Named numeric vector of parameters to use for priors (if use_prior is TRUE)
|
fit_intercept |
If TRUE, the intercept will be fit, if FALSE, the intercept will be constrainted to zero |
learning_rate |
learning rate for the Adams optimizer |
n_iterations |
the number of iterations to run the optimizer |
verbose |
if TRUE then print additional information |
a timecourse list:
tibble of parameter initializations for initializations that went to NaN for debugging
tibble of losses for each tc_id and inititalization (init_id)
tibble of final parameters for each tc_id and initialization (init_id)
library(dplyr)
library(impulse)
auto_config_tf()
set.seed(123)
timecourses <- simulate_timecourses(n = 2, observation_level_noise = 0.5)
timecourses %>%
tidyr::unnest_legacy(measurements) %>%
# separate by true model
tidyr::nest_legacy(-true_model, .key = "measurements") %>%
# fit all models to each timecourse
tidyr::crossing(tibble::tibble(model = c("sigmoid", "impulse"))) %>%
dplyr::mutate(timecourse_params = purrr::map2(
measurements,
model,
estimate_timecourse_params_tf,
n_initializations = 20,
use_prior = TRUE,
fit_intercept = TRUE
))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.