Skip to contents

Calculate the Malmquist productivity index and its components using Data Envelopment Analysis.

Usage

compute_malmquist(data, input, output, id, time, orientation = c("in", "out"))

Arguments

data

Dataset to analyse.

input

A character vector with input variables.

output

A character vector with output variables.

id

A string with the DMU id or name variable.

time

A string with the time period variable.

orientation

Model orientation.

Value

A list of class pioneer_mlm

Details

Results are returned a la Farrell. This implies that for output-oriented models values above one signify improvements in productivity, while values less than one imply deterioration in productivity. For input-oriented models the interpretation is reversed; values less than one denote improvements and values above one denote deterioration.

Note that compute_malmquist() only works for balanced panel datasets.

References

Färe, R., Grosskopf, S. (1996). Intertemporal production frontiers: With dynamic DEA. Springer.

Examples

# Load example data
chnEconomy <- deaR::EconomyLong
# Estimate Malmquist
mod <- compute_malmquist(
  data = chnEconomy,
  id = 'DMUs',
  time = 'Period',
  input = c('Labor', 'Capital'),
  output = 'GIOV',
  orientation = 'in')
# Print results
print(mod)
#> Malmquist scores:
#>   [1]        NA        NA        NA        NA        NA        NA        NA
#>   [8]        NA        NA        NA        NA        NA        NA        NA
#>  [15]        NA        NA        NA        NA        NA        NA        NA
#>  [22]        NA        NA        NA        NA        NA        NA        NA
#>  [29]        NA        NA        NA 1.1780355 1.1912934 1.0813121 1.0472603
#>  [36] 1.1889356 1.1408227 1.1046565 1.0830010 1.1459807 1.1000532 1.0661701
#>  [43] 1.1117657 1.0299074 1.1872104 1.0860022 1.1015615 1.1441110 1.0747190
#>  [50] 0.9936366 1.2003931 1.3423497 1.1429375 1.1502118 1.1200655 1.2081663
#>  [57] 1.1379615 1.1576109 1.0796899 1.2619715 1.1855282 1.2366110 1.1565728
#>  [64] 1.0970963 1.1173138 1.1763298 1.3196605 1.1138652 1.2625204 1.0291044
#>  [71] 1.1241910 1.0840453 1.0330009 1.1310008 1.0062198 1.1424261 1.0929556
#>  [78] 1.1937091 1.0970270 1.1369533 1.0519112 1.1012828 1.5496943 1.1418819
#>  [85] 1.1614256 1.1561414 1.0955397 1.1984846 1.1208359 1.2027845 1.2082476
#>  [92] 1.0993345 1.0946658 1.0431310 1.0873712 1.1735938 1.1491537 1.3412337
#>  [99] 1.1211711 1.0718728 1.0882051 1.0406440 0.9959118 1.0073886 1.1391823
#> [106] 1.0554915 1.0020171 1.0578750 1.0327001 1.1369224 1.0580648 1.0306628
#> [113] 1.0985916 1.0755866 1.0608294 1.0741206 1.0227697 1.1345259 1.3148455
#> [120] 1.1169615 1.0026375 1.1976344 1.1254329 1.2062809 1.0862691 0.9835349
#> [127] 0.9625288 0.8754982 1.1542688 1.0372490 1.0822687 0.9523534 0.9860017
#> [134] 1.0378863 0.9392529 1.0341747 0.9656799 1.0530417 1.0015634 0.9421143
#> [141] 0.9678752 1.0176088 0.9487704 1.0296258 1.0024542 1.0332103 1.1219405
#> [148] 1.0403226 0.9929593 1.1341202 1.0401633 0.9538121 0.9584683 0.9822538
#> [155] 0.9254895
# Get summary
summary(mod)
#> Mean malmquist: 1.0974
#> -----------
#>    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
#>  0.8755  1.0332  1.0951  1.0974  1.1446  1.5497      31 
# Convert to data frame
df <- as.data.frame(mod)