reference_rows = [
[
"<code>OLS</code>",
"<code>fit(x, y)</code>",
"1D float predictions",
"<code>intercept</code>, <code>coef</code>, <code>intercept_se</code>, <code>coef_se</code>",
"<code>(B, p + 1)</code> with intercept, else <code>(B, p)</code>",
"Uses Linfa linear regression; <code>summary(vcov='hc1')</code> is default, and the linear-summary surface also accepts <code>'vanilla'</code>, <code>'newey_west'</code>, and <code>'cluster'</code>.",
],
[
"<code>Ridge</code>",
"<code>fit(x, y)</code>",
"1D float predictions",
"<code>intercept</code>, <code>coef</code>, <code>intercept_se</code>, <code>coef_se</code>, <code>penalty</code>, <code>penalties</code>, <code>best_penalty_index</code>, <code>cv_mse</code>, <code>intercept_path</code>, <code>coef_path</code>",
"<code>(B, p + 1)</code> with intercept",
"Closed-form L2-regularized least squares solved through an augmented QR least-squares system. Passing a penalty grid runs cross-validation, stores the full coefficient path, refits the selected penalty on the full sample, and exposes the same linear-summary covariance options as OLS.",
],
[
"<code>FixedEffectsOLS</code>",
"<code>fit(x, fe_uint32, y)</code>",
"No dedicated <code>predict()</code> method",
"<code>coef</code>, <code>coef_se</code>",
"<code>(B, p)</code>",
"Uses <code>within</code> to partial out fixed effects, then Linfa OLS with <code>fit_intercept=False</code> on the residualized design. The summary covariance options match the other linear estimators.",
],
[
"<code>SyntheticControl</code>",
"<code>fit(donors, treated)</code>",
"1D float synthetic path from donor outcomes",
"<code>weights</code>, <code>pre_rmse</code>",
"<code>(B, n_donors)</code>",
"Fits nonnegative donor weights that sum to one by minimizing pre-treatment squared error under a simplex constraint.",
],
[
"<code>SyntheticDID</code>",
"<code>fit(y, treated_units, t_pre)</code>",
"No dedicated <code>predict()</code> method",
"<code>att</code>, <code>unit_weights</code>, <code>time_weights</code>, <code>treated_outcome</code>, <code>synthetic_outcome</code>, <code>treatment_effect</code>, <code>pre_rmse</code>, <code>unit_intercept</code>, <code>time_intercept</code>, <code>zeta_omega</code>, <code>zeta_lambda</code>",
"No bootstrap method",
"Synthetic difference-in-differences for balanced outcome panels. It solves the Arkhangelsky-style simplex least-squares unit and time weighting problems with intercepts and ridge regularization in Rust.",
],
[
"<code>BalancingWeights</code>",
"<code>fit(covariates, target_covariates, baseline_weights=None, target_weights=None)</code>",
"No dedicated <code>predict()</code> method",
"<code>weights</code>, <code>beta</code>, <code>weighted_mean</code>, <code>target_mean</code>, <code>mean_diff</code>, <code>l2_diff</code>, <code>effective_sample_size</code>, <code>success</code>",
"No bootstrap method",
"Dual calibration solver for entropy and quadratic balancing weights. Intended for ATT-style reweighting, covariate shift, and domain adaptation tasks where one sample is reweighted to match another sample's covariate mean.",
],
[
"<code>EPLM</code>",
"<code>fit(y, d, w)</code>",
"No dedicated <code>predict()</code> method",
"<code>coef</code>, <code>se</code>, <code>vcov</code>, <code>nuisance_coef</code>",
"No bootstrap method",
"Robins-Newey style partially linear E-estimator implemented as an exactly identified stacked-moment system with a linear working model for <code>E[D|W]</code>.",
],
[
"<code>AverageDerivative</code>",
"<code>fit(y, d, w)</code>",
"No dedicated <code>predict()</code> method",
"<code>method</code>, <code>coef</code>, <code>se</code>, <code>vcov</code>",
"No bootstrap method",
"Graham-Pinto style average-derivative estimator with <code>method='ob' | 'ipw' | 'dr'</code> under a scalar continuous-treatment working model.",
],
[
"<code>PartiallyLinearDML</code>",
"<code>fit(y, d, x)</code>",
"No dedicated <code>predict()</code> method",
"<code>coef</code>, <code>se</code>, <code>vcov</code>, <code>outcome_penalties</code>, <code>treatment_penalties</code>",
"No bootstrap method",
"Cross-fit ridge implementation of the partially linear Double-ML score. The nuisance fits are selected fold by fold from a common ridge penalty grid.",
],
[
"<code>AIPW</code>",
"<code>fit(y, d, x)</code>",
"No dedicated <code>predict()</code> method",
"<code>ate</code>, <code>se</code>, <code>vcov</code>, <code>outcome0_penalties</code>, <code>outcome1_penalties</code>, <code>propensity_penalties</code>",
"No bootstrap method",
"Cross-fit ridge AIPW estimator for a binary-treatment ATE. Outcome regressions are fit separately by treatment arm and the ridge propensity fit is clipped away from 0 and 1.",
],
[
"<code>ElasticNet</code>",
"<code>fit(x, y)</code>",
"1D float predictions",
"<code>intercept</code>, <code>coef</code>, <code>intercept_se</code>, <code>coef_se</code>",
"<code>(B, p + 1)</code> with intercept, else <code>(B, p)</code>",
"Regularized point estimates with HC1-style covariance built from residuals.",
],
[
"<code>Logit</code>",
"<code>fit(x, y_int32)</code>",
"1D <code>int32</code> class labels",
"<code>intercept</code>, <code>coef</code>, <code>intercept_se</code>, <code>coef_se</code>",
"<code>(B, p + 1)</code> with intercept, else <code>(B, p)</code>",
"Binary logistic regression. Standard errors come from the Fisher information.",
],
[
"<code>MultinomialLogit</code>",
"<code>fit(x, y_int32)</code>",
"1D <code>int32</code> class labels",
"<code>coef</code> and <code>se</code> matrices of shape <code>(classes, features_with_intercept)</code>",
"<code>(B, classes * features_with_intercept)</code>",
"Intercept and slopes are packed together by class in the summary matrix.",
],
[
"<code>Poisson</code>",
"<code>fit(x, y)</code>",
"1D float mean counts",
"<code>intercept</code>, <code>coef</code>, <code>intercept_se</code>, <code>coef_se</code>",
"<code>(B, p + 1)</code> with intercept, else <code>(B, p)</code>",
"Custom Newton-CG Poisson MLE with optional L2 penalty via <code>alpha</code>; <code>summary(vcov='vanilla')</code> gives Fisher SEs and <code>summary(vcov='sandwich')</code> gives QMLE sandwich SEs.",
],
[
"<code>TwoSLS</code>",
"<code>fit(x_endog, x_exog, z, y)</code>",
"1D float predictions from the stage-two design matrix",
"<code>intercept</code>, <code>coef</code>, <code>intercept_se</code>, <code>coef_se</code>",
"<code>(B, k + 1)</code> with intercept, else <code>(B, k)</code>",
"Closed-form linear IV / 2SLS estimator. Supports multiple endogenous regressors, and its summary method now shares the same <code>vanilla</code>, <code>hc1</code>, <code>newey_west</code>, and <code>cluster</code> covariance interface as the other linear estimators.",
],
[
"<code>FTRL</code>",
"<code>fit(x, y_int32)</code>",
"1D float scores in <code>[0, 1]</code>",
"<code>coef</code>, <code>coef_se</code>",
"<code>(B, p)</code>",
"Online-style classification model with a different summary schema and no explicit intercept output.",
],
[
"<code>GMM</code>",
"<code>fit(data_dict, theta0, weighting='auto')</code>",
"No dedicated <code>predict()</code> method",
"<code>coef</code>, <code>se</code>, <code>vcov</code>, <code>criterion</code>, <code>nit</code>, <code>weighting</code>, <code>vcov_type</code>, <code>omega_type</code>, <code>weight_matrix</code>, <code>nobs</code>, <code>n_moments</code>, <code>j_stat</code>, <code>j_df</code>",
"No bootstrap method",
"Requires <code>moment_fn(theta, data)</code> returning an <code>(n, m)</code> matrix of per-observation moments and optionally <code>jacobian_fn(theta, data)</code> returning the sample Jacobian of shape <code>(m, p)</code>.",
],
[
"<code>MEstimator</code>",
"<code>fit(data_dict, theta0)</code>",
"No dedicated <code>predict()</code> method",
"<code>coef</code>, <code>se</code>",
"<code>(B, p)</code>",
"Requires <code>objective_fn(theta, data) -> (obj, grad)</code> and <code>score_fn(theta, data)</code> returning an <code>(n, p)</code> matrix.",
],
]
display(
HTML(
"<div style='width: 100%; overflow-x: auto;'>"
+ html_table(
["Estimator", "Fit", "Predict", "Summary Keys", "Bootstrap", "Notes"],
reference_rows,
table_attrs="style='width: 100%; min-width: 100%; table-layout: auto;'",
)
+ "</div>"
)
)