allocative.efficiency: Allocative efficiency estimation

Description Usage Arguments Details Value References Examples

Description

Fits frontier to data and estimates technical and allocative efficiency

Usage

1
2
3
allocative.efficiency(X, y, X.price, y.price, X.constrained = NA,
  H.inv = NA, H.mult = 1, model = "br", method = "u",
  scale.constraints = TRUE)

Arguments

X

Matrix of inputs

y

Vector of outputs

X.price

Matrix of input prices

y.price

Vector of output prices

X.constrained

Matrix of inputs where constraints apply

H.inv

Inverse of the smoothing matrix (must be positive definite); defaults to rule of thumb

H.mult

Scaling factor for rule of thumb smoothing matrix

model

Type of frontier to use; "br" for boundary regression, "sf" for stochastic frontier

method

Constraints to apply; "u" for unconstrained, "m" for monotonically increasing, and "mc" for monotonically increasing and concave

scale.constraints

Boolean, whether to scale constraints by their average value, can help with convergence

Details

This function estimates allocative inefficiency using the methodology in McKenzie (2018). The estimation process is a non-parametric analogue of Schmidt and Lovell (1979). First, the frontier is fit using either a boundary regression or stochastic frontier as in Racine et al. (2009), from which technical efficiency is estimated. Then, gradients and price ratios are computed for each observation and compared to determine the extent of misallocation. Specifically, log-overallocation is computed as

\log≤ft(\frac{w_i^j}{p_i}\right) - \log≤ft(φ_i\frac{\partial f(x_i)}{\partial x^j}\right),

where φ_i is the efficiency of observation i, \partial f(x_i) / \partial x^j is the marginal productivity of input j at observation i, w_i^j is the cost of input j for observation i, and p_i is the price of output for observation i.

Value

Returns a list with the following elements

y.fit

Estimated value of the frontier at X.fit

gradient.fit

Estimated gradient of the frontier at X.fit

technical.efficiency

Estimated technical efficiency

log.overallocation

Estimated log-overallocation of each input for each observation

X.eval

Matrix of inputs used for fitting

X.constrained

Matrix of inputs where constraints apply

H.inv

Inverse smoothing matrix used in fitting

method

Method used to fit frontier

scaling.factor

Factor by which constraints are multiplied before quadratic programming

References

\insertRef

AignerLovellSchmidtsnfa

\insertRefMcKenziesnfa

\insertRefParmeterRacinesnfa

\insertRefSchmidtLovellsnfa

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
data(USMacro)

USMacro <- USMacro[complete.cases(USMacro),]

#Extract data
X <- as.matrix(USMacro[,c("K", "L")])
y <- USMacro$Y

X.price <- as.matrix(USMacro[,c("K.price", "L.price")])
y.price <- rep(1e9, nrow(USMacro)) #Price of $1 billion of output is $1 billion

#Run model
efficiency.model <- allocative.efficiency(X, y,
                                         X.price, y.price,
                                         X.constrained = X,
                                         model = "br",
                                         method = "mc")

#Plot technical/allocative efficiency over time
library(ggplot2)

technical.df <- data.frame(Year = USMacro$Year,
                          Efficiency = efficiency.model$technical.efficiency)

ggplot(technical.df, aes(Year, Efficiency)) +
  geom_line()

allocative.df <- data.frame(Year = rep(USMacro$Year, times = 2),
                            log.overallocation = c(efficiency.model$log.overallocation[,1],
                                                   efficiency.model$log.overallocation[,2]),
                            Variable = rep(c("K", "L"), each = nrow(USMacro)))

ggplot(allocative.df, aes(Year, log.overallocation)) +
  geom_line(aes(color = Variable))

#Estimate average overallocation across sample period
lm.model <- lm(log.overallocation ~ 0 + Variable, allocative.df)
summary(lm.model)
  

snfa documentation built on May 1, 2019, 9:16 p.m.