metafrontier v0.3.0 - #2
Merged
Merged
Conversation
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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 viaefficiencies()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 viaBenchmarking::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 inprint()/summary(); warning gaps closed across panel, QP, EM, and Malmquist paths.rts = "fdh",type = "hyperbolic", user-supplied DDF direction vectors/matrices,slack = TRUEtwo-stage slacks; permutation poolability test dispatched bypoolability_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
phi >= 1bound 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
Tests: 650 passing, 0 failures. R CMD check: 0 errors, 0 warnings.