psfm: psfm

View source: R/psfm.R

psfmR Documentation

psfm

Description

Function to implement various panel data stochastic frontier estimators

Usage

psfm(formula, model_name = c("TRE_Z", "GTRE_Z", "TRE",
                    "GTRE", "TFE", "FD", "GTRE_SEQ1", "GTRE_SEQ2"), data,
                    maxit.bobyqa = 100, maxit.psoptim = 10, maxit.optim =
                    10, REPORT = 1, trace = 3, pgtol = 0, individual,
                    halton_num = NULL, start_val = FALSE, gamma = FALSE,
                    PSopt = FALSE, optHessian, inefdec= TRUE, Method = "L-BFGS-B",
                    verbose = FALSE,rand.gtre = NULL, rand.psoptim = NULL)

Arguments

formula

a symbolic description for the model to be estimated

model_name

model name for the estimation

data

a pdata.frame

maxit.bobyqa

Maximum number of iterations for the bobyqa optimization routine

maxit.psoptim

Maximum number of iterations for the psoptim optimization routine

maxit.optim

Maximum number of iterations for the optim optimization routine

REPORT

reporting parameter

trace

trace

pgtol

pgtol

individual

individual unit in the regression model

halton_num

number of Halton draws to use in SML models

start_val

starting value (optional)

gamma

gamma

PSopt

use psoptim optimization routine (T or F)

optHessian

Logical. Should a numerically differentiated Hessian matrix be returned while using the optim routine? (for optim routine)

inefdec

Production or cost function

Method

The method to be used for optim. See 'Details' within optim.

verbose

Logical. Print optimization progress messages? Default is FALSE.

rand.psoptim

Integer. Seed for replication of psoptim. Default to NULL.

rand.gtre

Integer. Seed for replication of the gtre model. Default to NULL.

Details

The generalized true random effects model (GTRE, 4-component model) and true random effects models (TRE) are both estimated by simulated maximum likelihood based on the paper by the Fillipini and Greene (2016, JPA). The TRE_Z and GTRE_Z allow for modeling the u-component of the GTRE and TRE with determinants of inefficiency. The first-difference estimator (FD) of Wang and Ho (2010, JoE) as well as the True Fixed Effect model estimated by within-maximum likelihood of Chen, Schmidt and Wang (2014, JoE) are also available.

Value

An object of class "sfareg" containing components that vary by model. All models return:

out

A matrix with parameter estimates, standard errors, and t-values.

opt

A list containing the optimization results from the final optimization procedure (not returned for GTRE_SEQ1 and GTRE_SEQ2).

total_time

The total computation time for model estimation.

start_v

The starting values used in the optimization (not returned for GTRE_SEQ1 and GTRE_SEQ2).

model_name

The name of the panel stochastic frontier model estimated.

formula

The formula used in the model specification.

coefficients

A vector of estimated parameters.

std.errors

A vector of standard errors for the estimated parameters (NA if optHessian = FALSE).

t.values

A vector of t-values for the estimated parameters (NA if optHessian = FALSE).

call

The matched call.

data

The data used in estimation.

Additional model-specific components:

For GTRE and GTRE_Z models:

H

Predicted time-invariant technical efficiency for each individual.

For GTRE, GTRE_Z, TRE and TRE_Z models:

U

Predicted time-varying technical efficiency for each observation.

For TFE model:

r_hat_m

Estimated individual-specific random effects.

exp_u_hat

Predicted technical efficiency.

For FD model:

u_hat

Predicted technical efficiency in levels.

h_hat

Estimated z heterogeneity function values.

exp_u_hat

Predicted technical efficiency.

For GTRE_SEQ1 and GTRE_SEQ2 models:

other_parms

A matrix of additional parameters (lambda, sigma, beta_0 for SEQ1; sigma_u, sigma_v, sigma_h, sigma_r, lambda, sigma for SEQ2).

Note

Standard errors require optHessian set to TRUE

Note

The GTRE_SEQ1 and GTRE_SEQ2 models use sequential estimation methods and do not return optimization objects or starting values. All panel models require the individual argument to identify panel units.

Author(s)

David Bernstein

References

Fillipini and Greene (2016, JPA); Wang and Ho (2010, JoE); Chen, Schmidt and Wang (2014, JoE)

See Also

see also

Examples


library(sfa)     

data_trial <- data_gen_p(t=10,N=100, rand = 100, 
                         sig_u = 1,  sig_v = 0.3, 
                         sig_r = .2, sig_h = .4, 
                         cons = 0.5, beta1 = 0.5,
                         beta2 = 0.5)

max_tre_z   <-  psfm(formula    = y_tre_z ~ x1 +x2| z_gtre, 
                     model_name = "TRE",                    ## "TRE_Z" also works
                     data       = data_trial,
                     individual = "name",
                     PSopt      = TRUE)


sfa documentation built on Jan. 22, 2026, 1:08 a.m.