Skip to content

metafrontier v0.3.0 - #1

Closed
iik1 wants to merge 1 commit into
mainfrom
rjournal-revision-0.3.0
Closed

metafrontier v0.3.0#1
iik1 wants to merge 1 commit into
mainfrom
rjournal-revision-0.3.0

Conversation

@iik1

@iik1 iik1 commented Jul 14, 2026

Copy link
Copy Markdown
Owner

New features

  • estimator = c("bc88", "jlms"): Battese-Coelli (1988) conditional-expectation efficiency estimator implemented for all distributions (including heteroscedastic and BC92/BC95 panel closed forms) and made the default; both estimators stored, switchable via efficiencies() without refitting.
  • objective = c("lp", "qp"): both identification criteria for the deterministic metafrontier; QP solved exactly via quadprog with a constrOptim barrier fallback; the bootstrap forwards the choice.
  • engine = c("internal", "sfaR", "frontier", "Benchmarking") backend delegation; engine = "Benchmarking" computes both DEA stages via Benchmarking::dea() XREF/YREF.
  • malmquist_meta(id = ) explicit firm matching (duplicate errors, dropped-observation warnings, positional fallback message); cross-period infeasibility counted, warned, stored, and printed; the SFA path documents and announces its pointwise-maximum approximation.
  • check_convergence() plus convergence blocks in print()/summary(); warning gaps closed across panel, QP, EM, and Malmquist paths.
  • DEA: rts = "fdh", type = "hyperbolic", user-supplied DDF direction vectors/matrices, slack = TRUE two-stage slacks; permutation poolability test dispatched by poolability_test() for DEA fits.
  • coef()/vcov()/summary() expose eta and variance parameters (extraPar, which = "group").
  • simulate_metafrontier(): beta_groups, input_means, input_corr; simulate_panel_metafrontier(): attrition; unbalanced BC92 panels fully supported.

Bug fixes

  • Panel TE row-order alignment (observation-level efficiencies were misaligned for non-string-sorted input rows).
  • BC92 decay anchored at the global final period on unbalanced panels.
  • Cross-period DEA: removed an erroneous phi >= 1 bound that silently produced NA for super-efficient DMUs even under CRS.
  • as_metafrontier_model(): frontier-class dispatch fixed, conversion made idempotent.
  • autoplot() bootstrap CI lines now drawn; MPI trend plotted at end periods.
  • poolability_test() data.name; latent class EM cleanup.

Docs

  • Vignettes rewritten and rebuilt; man pages expanded; likelihood derivation comments added.

Tests: 650 passing, 0 failures. R CMD check: 0 errors, 0 warnings.

New features:
- estimator = c('bc88', 'jlms'): Battese-Coelli (1988) conditional
  expectation as the new default efficiency estimator; both stored,
  switchable via efficiencies() without refitting.
- objective = c('lp', 'qp'): both identification criteria for the
  deterministic metafrontier (QP solved exactly via quadprog with a
  constrOptim barrier fallback); the bootstrap forwards the choice.
- engine = c('internal', 'sfaR', 'frontier', 'Benchmarking'):
  backend delegation for group frontiers; Benchmarking XREF/YREF
  drives the pooled DEA metafrontier.
- malmquist_meta(id = ): explicit firm matching with strict checks;
  cross-period infeasibilities counted, warned, and reported; the
  SFA path documents and announces its pointwise-maximum
  approximation.
- check_convergence() diagnostics; convergence blocks in print()
  and summary(); warning gaps closed in panel, QP, EM, and
  Malmquist paths.
- DEA: rts = 'fdh', hyperbolic (graph) efficiency, user-supplied
  DDF direction vectors/matrices, two-stage slack analysis;
  permutation poolability test for DEA fits.
- coef()/vcov()/summary() expose eta and variance parameters
  (extraPar, which = 'group').
- simulate_metafrontier(): beta_groups, input_means, input_corr;
  simulate_panel_metafrontier(): attrition; unbalanced BC92 panels
  fully supported.

Bug fixes:
- Panel TE row-order alignment; BC92 decay anchored at the global
  final period; cross-period DEA phi lower bound; frontier-class
  dispatch and converter idempotency; poolability data.name;
  autoplot CI lines and MPI trend axis; EM cleanup.

Docs: vignettes rewritten and rebuilt, man pages expanded,
likelihood derivation comments added. 650 tests passing; R CMD
check clean.
@iik1
iik1 force-pushed the rjournal-revision-0.3.0 branch from 55d4927 to 8bd70c3 Compare July 14, 2026 18:08
@iik1 iik1 changed the title v0.3.0: R Journal revision (submission 2026-51) metafrontier v0.3.0 Jul 14, 2026
@iik1 iik1 closed this Jul 14, 2026
@iik1
iik1 deleted the rjournal-revision-0.3.0 branch July 14, 2026 18:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant