estimate_timecourse_params_tf: Fit Timecourses

View source: R/impulse_fitting.R

estimate_timecourse_params_tfR Documentation

Fit Timecourses

Description

Fit Timecourses

Usage

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
)

Arguments

measurements

a tibble containing:

tc_id

a unique indicator for each timecourse"

time

a numeric predictor variable

abundance

a numeric response variable

noise (optional)

if provided, a numeric variable specifying the noise estimate for each observation. This will be used to calculate the Gaussian likelihood if priors are used, or to calculate a weighted sum-of-squares estimate if priors are not used

model

model to fit:

sigmoid

one sigmoidal response

impulse

two sigmoidal responses

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)

v_sd

Gaussian SD of assymptotes (v_inter and v_final)

rate_shape

Shape of rate Gamma

rate_scale

Scale of rate Gamma

time_shape

Shape of t_rise and t_fall - t_rise Gamma

time_scale

Scale of t_rise and t_fall - t_rise Gamma

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

Value

a timecourse list:

invalid_timecourse_fits

tibble of parameter initializations for initializations that went to NaN for debugging

loss

tibble of losses for each tc_id and inititalization (init_id)

parameters

tibble of final parameters for each tc_id and initialization (init_id)

Examples


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
    ))


calico/impulse documentation built on June 4, 2024, 5:28 a.m.