Description Usage Arguments Details Value Note Author(s) References See Also Examples

Routine `tenonradial`

uses reduced linear programming to compute the nonradial output- or input-based measure of technical efficiency, which is known as the Russell measure. In input-based nonradial efficiency measurement, this measure allows for non-proportional/different reductions in each positive input, and this is what permits it to shrink an input vector all the way back to the efficient subset. In output-based nonradial efficiency measurement, the Russell measure allows for non-proportional/different expansions of each positive output.

1 2 3 4 5 6 |

`formula` |
an object of class “formula” (or one that can be coerced to that class): a symbolic description of the model. The details of model specification are given under ‘Details’. |

`data` |
an optional data frame containing the variables in the model. If not found in data, the variables are taken from environment ( |

`subset` |
an optional vector specifying a subset of observations for which technical efficiency is to be computed. |

`rts` |
character or numeric. string: first letter of the word “c” for constant, “n” for non-increasing, or “v” for variable returns to scale assumption. numeric: 3 for constant, 2 for non-increasing, or 1 for variable returns to scale assumption. |

`base` |
character or numeric. string: first letter of the word “o” for computing output-based or “i” for computing input-based technical efficiency measure. string: 2 for computing output-based or 1 for computing input-based technical efficiency measure |

`ref` |
an object of class “formula” (or one that can be coerced to that class): a symbolic description of inputs and outputs that are used to define the technology reference set. The details of technology reference set specification are given under ‘Details’. If reference is not provided, the technical efficiency measures for data points are computed relative to technology based on data points themselves. |

`data.ref` |
an optional data frame containing the variables in the technology reference set. If not found in |

`subset.ref` |
an optional vector specifying a subset of observations to define the technology reference set. |

`full.solution` |
logical. The detailed solution is returned. See |

`print.level` |
numeric. 0 - nothing is printed; 1 - print summary of the model and data. 2 - print summary of technical efficiency measures. 3 - print estimation results observation by observation. Default is 1. |

Routine `tenonradial`

computes the nonradial output- or input-based measure of technical efficiency under assumption of constant, non-increasing, or variable returns to scale technology. The details of the estimator can be found e.g., in Färe, Grosskopf, and Lovell (1994) or Badunenko and Mozharovskyi (2020).

Models for `tenonradial`

are specified symbolically. A typical model has the form `outputs ~ inputs`

, where `outputs`

(`inputs`

) is a series of (numeric) terms which specifies outputs (inputs). The same goes for reference set. Refer to the examples.

Results can be summarized using `summary.npsf`

.

`tenonradial`

returns a list of class `npsf`

containing the following elements:

`model` |
string: model name. |

`K` |
numeric: number of data points for which efficiency is estimated. |

`M` |
numeric: number of outputs. |

`N` |
numeric: number of inputs. |

`Kref` |
numeric: number of data points in the reference. |

`rts` |
string: RTS assumption. |

`base` |
string: base for efficiency measurement. |

`te` |
numeric: nonradial measure (Russell) of technical efficiency. |

`te.detail` |
numeric: |

`intensity` |
numeric: |

`esample` |
logical: returns TRUE if the observation in user supplied data is in the estimation subsample and FALSE otherwise. |

`esample.ref` |
logical: returns TRUE if the observation in the user supplied reference is in the reference subsample and FALSE otherwise. |

In case of one input (output), the input (output)-based Russell measure is equal to Debrue-Farrell (`teradial`

) measure of technical efficiency.

Results can be summarized using `summary.npsf`

.

Oleg Badunenko <oleg.badunenko@brunel.ac.uk>, Pavlo Mozharovskyi <pavlo.mozharovskyi@telecom-paris.fr>

Badunenko, O. and Mozharovskyi, P. (2016), Nonparametric Frontier Analysis using Stata, *Stata Journal*, **16**3, 550–89, doi: 10.1177/1536867X1601600302

Badunenko, O. and Mozharovskyi, P. (2020), Statistical inference for the Russell measure of technical efficiency, *Journal of the Operational Research Society*, **71**3, 517–527, doi: 10.1080/01605682.2019.1599778

Färe, R. and Lovell, C. A. K. (1978), Measuring the technical efficiency of production, *Journal of Economic Theory*, **19**, 150–162, doi: 10.1016/0022-0531(78)90060-1

Färe, R., Grosskopf, S. and Lovell, C. A. K. (1994), *Production Frontiers*, Cambridge U.K.: Cambridge University Press, doi: 10.1017/CBO9780511551710

`teradial`

, `teradialbc`

, `tenonradialbc`

, `nptestrts`

, `nptestind`

, `sf`

, `summary.npsf`

for printing summary results

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 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 | ```
require( npsf )
# Prepare data and matrices
data( pwt56 )
head( pwt56 )
# Create some missing values
pwt56 [49, "K"] <- NA # create missing
Y1 <- as.matrix ( pwt56[ pwt56$year == 1965, c("Y"), drop = FALSE] )
X1 <- as.matrix ( pwt56[ pwt56$year == 1965, c("K", "L"), drop = FALSE] )
X1 [51, 2] <- NA # create missing
X1 [49, 1] <- NA # create missing
data( ccr81 )
head( ccr81 )
# Create some missing values
ccr81 [64, "x4"] <- NA # create missing
ccr81 [68, "y2"] <- NA # create missing
Y2 <- as.matrix( ccr81[ , c("y1", "y2", "y3"), drop = FALSE] )
X2 <- as.matrix( ccr81[ , c("x1", "x2", "x3", "x4", "x5"), drop = FALSE] )
# Computing without reference set
# Using formula
# Country is a categorical variable, so nonradial gives error message
# t1 <- tenonradial ( Country ~ K + L, data = pwt56 )
# for computing the efficiencies of countries in 1965
# with technology reference set is defined by observations in 1965
# (that same sample of countries)
t2 <- tenonradial ( Y ~ K + L, data = pwt56, rts = "v",
base = "in", print.level = 2)
# Using a subset
t3 <- tenonradial ( Y ~ K + L, data = pwt56, subset = year == 1965,
rts = "VRS", base = "in", print.level = 3 )
t4 <- tenonradial ( Y ~ K + L, data = pwt56, subset = Nu < 10,
rts = "vrs", base = "I" )
t5 <- tenonradial ( Y ~ L, data = pwt56, subset = Nu < 10, rts = "v" )
# Multiple outputs
t8 <- tenonradial ( y1 + y2 + y3 ~ x1 + x2 + x3 + x4 + x5, data = ccr81,
rts = "v", base = "i" )
# Using a subset
t7 <- tenonradial ( y1 + y2 + y3 ~ x1 + x2 + x3 + x4 + x5, data = ccr81,
subset = x5 != 22, rts = "n", base = "o" )
# Computation using matrices
t9 <- tenonradial ( Y1 ~ X1, rts = "v", base = "i" )
# Define subsets on a fly
t10 <- tenonradial ( Y1[-1,] ~ X1[-2,1] )
t11 <- tenonradial ( Y1[-3,] ~ X1[-1,], rts = "v", base = "o" )
# Multiple outputs
t12 <- tenonradial ( Y2 ~ X2 )
t13 <- tenonradial ( Y2[-66,] ~ X2[-1, -c(1,3)] )
# Computing with reference set
# Using formula
# For computing the efficiencies of countries with order number
# less than 10 with technology reference set defined by countries
# with order number larger than 10 and smaller than 11 (in effect
# no reference set, hence warning) type
t14 <- tenonradial ( Y ~ K + L, data = pwt56, subset = Nu < 10,
ref = Y ~ K + L, data.ref = pwt56,
subset.ref = Nu > 10 & Nu < 11 ) # warning
# For computing the efficiencies of countries with order number
# less than 10 with technology reference set defined by countries
# with order number larger than 10 and smaller than 15 type
t15 <- tenonradial ( Y ~ K + L, data = pwt56, subset = Nu < 10, ref = Y ~ K + L,
data.ref = pwt56, subset.ref = Nu > 10 & Nu < 15 )
# For computing the efficiencies of countries in 1965
# with technology reference set is defined by observations in both
# 1965 and 1990 (all) type
t16 <- tenonradial ( Y ~ K + L, data = pwt56, subset = year == 1965,
rts = "v", base = "i",
ref = Y ~ K + L, data.ref = pwt56 )
# For computing the efficiencies of countries in 1990
# with technology reference set is defined by observations in 1965
# type
t17 <- tenonradial ( Y ~ K + L, data = pwt56, subset = year == 1990,
ref = Y ~ K + L, data.ref = pwt56, subset.ref = year == 1965 )
# Using matrices
t18 <- tenonradial ( Y1[-1,] ~ X1[-2,], ref = Y1[-2,] ~ X1[-1,] )
# error: not equal number of observations in outputs and inputs
# t19 <- tenonradial ( Y1[-1,] ~ X1[-(1:2),],
# ref = Y1[-2,] ~ X1[-1,1] )
# Combined formula and matrix
# error: not equal number of inputs in data and reference set
# t20 <- tenonradial ( Y ~ K + L, data = pwt56, subset = Nu < 10,
# ref = Y1[-2,] ~ X1[-1,1] )
t21 <- tenonradial ( Y ~ K + L, data = pwt56, subset = Nu < 10,
ref = Y1[-2,] ~ X1[-1,] )
## Not run:
# Really large data-set
data(usmanuf)
head(usmanuf)
nrow(usmanuf)
table(usmanuf$year)
# This will take some time depending on computer power
t22 <- tenonradial ( Y ~ K + L + M, data = usmanuf,
subset = year >= 1995 & year <= 2000 )
# Summary
summary ( t22$te )
# Write efficiencies to the data frame:
usmanuf$te_nonrad_crs_out[ t22$esample ] <- t22$te
head(usmanuf, 17)
## End(Not run)
``` |

Embedding an R snippet on your website

Add the following code to your website.

For more information on customizing the embed code, read Embedding Snippets.