Joint Binocular Pupil Models

library(gp3bayes)
sim <- simulate_binocular_pupil_timecourse(
  n_participants = 12,
  trials_per_participant = 4,
  time_points = 31,
  residual_correlation = 0.70,
  eye_bias = 0.02,
  seed = 3040
)
prep <- prepare_binocular_pupil_timecourse(sim$data)
prep
#> <gp3bayes_binocular_pupil_prepared>
#>   Rows: 1488 
#>   Left: pupil_left 
#>   Right: pupil_right
audit_binocular_pupil_readiness(prep)
#> <gp3bayes_binocular_pupil_audit>
#>   Status: pass 
#>                    metric        value
#>                      rows 1.488000e+03
#>   left_available_fraction 9.791667e-01
#>  right_available_fraction 9.805108e-01
#>   both_available_fraction 9.744624e-01
#>     mean_right_minus_left 2.025271e-02
#>       sd_right_minus_left 2.705794e-02
#>       pearson_correlation 9.892452e-01

No averaged pupil column is created. Left and right eyes remain separate responses.

spec <- specify_binocular_pupil_model(
  prep,
  temporal_structure = "smooth",
  family = "gaussian",
  residual_correlation = TRUE
)
spec
#> <gp3bayes_binocular_pupil_specification>
#>   Family: gaussian 
#>   Temporal structure: smooth 
#>   Residual correlation: TRUE 
#>   Fit performed: FALSE
fit <- fit_binocular_pupil_model(
  spec,
  backend = "cmdstanr",
  chains = 4,
  cores = 2
)

trajectory <- estimate_binocular_pupil_trajectory(fit)
plot_binocular_pupil_trajectory(trajectory)

pupil_binocular_correlation(fit)
pupil_binocular_difference(trajectory)
pupil_binocular_agreement_table(trajectory, tolerance = 0.10)

Residual eye correlation is an association parameter. High posterior correlation does not establish that the two eyes are interchangeable or justify arbitrary eye substitution.

mirror server hosted at Truenetwork, Russian Federation.