Nothing
pnorm(log.p = TRUE)), with an asymptotic closed form in the far
left tail of the conditional distribution. The previous
natural-scale ratio Phi(mu*/sigma* - sigma*) / Phi(mu*/sigma*)
could return 0, Inf, or values above one on platforms without
extended-precision long doubles (the CRAN noLD additional check)
when both Phi terms were subnormal, which occurred in degenerate
fits with sigma_u near zero. On standard platforms results are
unchanged to near machine precision; in the affected tail region the
new evaluation is also more accurate than the previous fallback to
the JLMS value.E[exp(-u)|eps]
(estimator = "bc88"), which provides consistent efficiency
estimates. The previous JLMS estimator remains available via
estimator = "jlms", and both are stored on every fit;
efficiencies(fit, estimator = ) switches without refitting.
Deterministic and stochastic TGRs are unaffected (they do not depend
on the estimator), but TE and TE* values change slightly relative to
0.2.x.malmquist_meta() output id column now carries the user-supplied
firm identifier (previously a within-group loop index).as_metafrontier_model() method for frontier::sfa() fits is
now registered for the correct class "frontier"; the previous
registration ("sfa") never dispatched.te_group/te_meta whenever the input rows were not already in
string-sorted order. Coefficients, TGRs, and group means were
unaffected. Results are now row-order invariant (regression-tested).T
(previously the firm-specific last period), matching Battese and
Coelli's (1992) unbalanced formulation and the package's own
simulator. Balanced panels are numerically unchanged.na.action, and uses the same BFGS-to-Nelder-Mead fallback cascade
as the cross-sectional path.phi >= 1) in the
output-oriented LPs that made cross-period evaluation of
super-efficient DMUs infeasible even under CRS, silently biasing
Malmquist TC and MPI means. Cross-period scores with phi < 1 now
solve correctly.as_metafrontier_model() is now idempotent (converting an already
converted object is a no-op), so the previously documented
pre-conversion workflow works.poolability_test() now derives data.name from the passed
expression instead of deparsing the stored call.autoplot(boot) (and the base plot() method) now actually draw
the dashed CI bound lines promised by the documentation.autoplot(malm, which = "mpi_trend") now plots each transition at
its end period (axis 2..T), consistent with the caption convention
"change relative to the previous period".estimator = c("bc88", "jlms") on metafrontier() and
malmquist_meta() (see Breaking changes).objective = c("lp", "qp") on metafrontier(): both identification
criteria of Battese, Rao and O'Donnell (2004) for the deterministic
metafrontier. The default LP minimises the sum of absolute
deviations (O'Donnell, Rao and Battese, 2008, Eqs. 23-25); the QP
minimises the sum of squared deviations, solved exactly via
quadprog (new in Suggests) with a constrOptim() barrier
fallback. The bootstrap respects the choice.engine = c("internal", "sfaR", "frontier", "Benchmarking") on
metafrontier(): delegate group-frontier estimation to external
packages; engine = "Benchmarking" also delegates the pooled DEA
metafrontier via XREF/YREF.check_convergence(): new exported diagnostic reporting one row per
estimation stage (group frontiers and metafrontier). print() and
summary() methods now include convergence status; every stage
warns on non-zero optimiser codes.malmquist_meta(id = ): explicit firm matching across periods, with
errors on duplicated (id, period) pairs, warnings counting dropped
observations on unbalanced panels, and a message when falling back
to positional matching. Cross-period infeasible programmes (possible
under vrs/drs/irs/fdh) are now counted and reported in a
consolidated warning, stored as n_infeasible, and shown by
print()/summary(); the SFA path announces its pointwise-maximum
approximation in a message and in the documentation.simulate_panel_metafrontier() gains an attrition
argument for generating unbalanced test panels.rts = "fdh" (free disposable hull; exact enumeration for
radial measures, binary MIP for DDF), type = "hyperbolic" (graph
efficiency; closed form under CRS, bisection otherwise; always
feasible cross-period), user-supplied direction vectors or
firm-specific direction matrices for DDF (reported via the additive
ddf_gap), and slack = TRUE two-stage slack maximisation.poolability_test() now dispatches a permutation test for DEA fits
(group labels exchangeable under the pooled-technology null), with
B and seed arguments.coef(), vcov(), and summary() expose all estimated parameters:
extraPar = TRUE returns variance parameters (and eta for BC92)
with back-transformed values; vcov(which = "group") returns full
per-group covariance matrices; group summary tables now include the
variance parameters and eta with standard errors.simulate_metafrontier() gains beta_groups (group-specific slope
coefficients; the true TGR is then computed against the pointwise
maximum over group frontiers and varies within groups),
input_means (group-specific input distributions), and
input_corr (correlated log inputs).em_converged) and warns when it did not.boot_tgr(): Fixed orientation/rts not propagating to bootstrap
replicates (always defaulted to output/CRS).boot_tgr(): Fixed hardcoded group column name; now respects
the user's original group variable..loglik_to_u_hat() now respects the dist argument
with correct JLMS formulas for half-normal, truncated-normal, and
exponential distributions.autoplot methods now use proper conditional S3 registration
(@exportS3Method ggplot2::autoplot) instead of direct export()..extract_benchmarking() now attempts to retrieve XREF/YREF from
Farrell objects and .estimate_from_models() gives a clear error
when DEA models lack the required X/y/beta.technology_gap_ratio() documentation now correctly notes that TGR
can exceed 1 under the stochastic metafrontier.simulate_panel_metafrontier(): Simulate balanced panel data with
time-varying inefficiency and technical change for Monte Carlo studies.eta parameter.boot_tgr(): Bootstrap confidence intervals for technology gap ratios.
Supports parametric (residual resampling) and nonparametric (case
resampling) approaches, with percentile and BCa interval types.ncores argument using the parallel package.print, confint, and plot for boot_tgr objects.latent_class_metafrontier(): EM algorithm for estimating latent class
stochastic frontier models within the metafrontier framework.select_n_classes(): Automatic selection of the optimal number of
latent classes via BIC.print, summary, coef, and efficiencies for
lc_metafrontier objects.autoplot.metafrontier(): Visualise TGR distributions and efficiency
decompositions using ggplot2.autoplot.malmquist_meta(): Plot Malmquist index components over time.autoplot.boot_tgr(): Visualise bootstrap distributions and
confidence intervals for TGR.as_metafrontier_model(): Convert pre-fitted model objects from
sfaR (sfacross), frontier (sfa), and Benchmarking (Farrell)
packages into metafrontier-compatible format..safe_mills()) prevents NaN in extreme tail regions for both
panel SFA and latent class models.lm.wfit() for
weighted regression instead of explicit diagonal weight matrices.dea_batch_fast() for
improved performance on large datasets.boot_tgr() now validates R >= 1 with an
informative error message.summary() methods now return invisible S3 objects for
programmatic access, with print() methods for display.@examples on all exported S3 methods and autoplot functions.@param documentation for control argument in
metafrontier() with optim options.Initial CRAN release.
metafrontier(): Main estimation function supporting SFA- and DEA-based
metafrontiers.y ~ x1 + x2 | z1 + z2).models= argument (sfaR, frontier).malmquist_meta(): Metafrontier Malmquist TFP index with three-way
decomposition (TEC x TGC x TC*) following O'Donnell, Rao, and Battese (2008).technology_gap_ratio() / tgr_summary(): Extract and summarise TGR by group.efficiencies(): Extract group, metafrontier, and TGR efficiency scores.poolability_test(): Likelihood ratio test for technology heterogeneity.simulate_metafrontier(): Data-generating process for Monte Carlo studies.print, summary, coef, vcov, logLik,
fitted, residuals, nobs, plot, confint, predict.Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.