Experimental Interpretable Pupil Response Shape

library(gp3bayes)
sim <- simulate_pupil_response_shape(
  n_participants = 12,
  trials_per_participant = 4,
  time_points = 41,
  condition_amplitude_ratio = 1.25,
  condition_onset_shift = 100,
  seed = 3060
)

The 0.5 experimental family is intentionally singular rather than an arbitrary nonlinear-formula API. It represents a positive-amplitude asymmetric gated response using baseline, log-amplitude, onset, log-rise, log-duration, and log-decay parameters.

spec <- specify_pupil_response_shape_model(
  sim$data,
  family = "gaussian",
  condition_effects = c("amplitude", "onset", "duration"),
  participant_effects = c("baseline", "amplitude")
)
spec
#> <gp3bayes_pupil_response_shape_specification>
#>   EXPERIMENTAL: TRUE
#>   Family: gaussian 
#>   Condition effects: amplitude, onset, duration 
#>   Fit performed: FALSE
translated <- translate_pupil_response_shape_to_brms(spec)
fit <- fit_pupil_response_shape_model(
  spec,
  backend = "cmdstanr",
  chains = 4,
  iter = 2500,
  warmup = 1250,
  cores = 2
)

pars <- estimate_pupil_response_parameters(fit)
pupil_response_parameter_table(pars)
plot_pupil_response_parameters(pars)

The parameters remain properties of this response model. gp3bayes does not relabel amplitude as attention, onset as surprise, or duration as cognitive effort.