The power analysis vignette now includes an “Examining other metrics of performance” section showing bias, simulation variance, model-based variance, relative RMSE, and coverage curves alongside the existing power curves, and the summary chunk now uses summarize_simulation() directly to demonstrate the full set of metrics it returns. Bias and RMSE are reported as a percentage of the outcome mean.
summarize_simulation() now falls back to an uncorrected 95% CI when no t-statistics are available, so coverage and correct_rejection_rate are populated for methods like ASCM and CSA whose default inference does not produce a t-statistic.
Updated the autoeffect result extractors (.extract_results_autoeffect and .se_adjust_cluster_autoeffect) to read the renamed tidymodels-style columns from autoeffect::cumulative_effects() (lag, estimate, std.error, statistic, p.value). Requires autoeffect >= 0.2.11. (#43)
optic_simulation() now stops early with an informative message when the input data contains NAs in any required column: unit_var, time_var, the outcome (formula LHS) of any model, or any covariate (formula RHS minus treatment-construct terms) referenced by any model. Treatment columns are excluded because they are simulated by optic. This replaces a class of cryptic downstream errors (e.g. autoeffect’s “spec_strategy out of sync” message) with a single upfront error that names the offending columns. (#41)
Added a power analysis vignette demonstrating simulation-based power analysis for TWFE, debiased AR, ASCM, and CSA estimators using the overdoses dataset. Adds augsynth and ggplot2 to Suggests. (#40)
Autoeffect model p-values now use the t-distribution (via cumulative_effects()) instead of manually computing with the normal distribution. This fixes inflated Type I error rates for DAR models. (#38)
Clustered standard error support for autoeffect models, delegating to autoeffect::cumulative_effects(cluster=). Unsupported SE adjustments (huber, arellano) now warn and skip. (#37)
Internal changes
Moved SE adjustment behavior into the model type registry, replacing if-else chain in noconf_postmodel(). (#37)
Autoeffect models now extract covariates from the formula RHS like reg/autoreg models, eliminating separate x_formula or cov_names parameters. Deprecation warnings added for the old interface. (#36)
Internal changes
Restored match.arg() for type and call validation in new_optic_model() constructor. (#35)
Added autoeffect model type support for debiased autoregressive treatment effect estimation. New model type "autoeffect" integrates with the autoeffect package. (#34)