| qDEA | R Documentation |
Note: Optional arguments in function call have default values of 'NULL'
qDEA(
X,
Y,
qout = 1/nrow(X),
qoutS = qout,
X0 = NULL,
Y0 = NULL,
DX0 = NULL,
DY0 = NULL,
orient = "out",
RTS = "CRS",
dmulist = NULL,
nqiter = 1,
nboot = 0,
transform = TRUE,
mcells = 5,
mlist = NULL,
seedval = 1001,
qtol = 1e-06,
BIGM = 1e+09,
eps = 1e-06,
skipzprob = TRUE,
replaceA1 = FALSE,
baseqDEA = FALSE,
unbounded = (-1000),
obj2test = 1e-04,
replaceM = FALSE,
alpha = 0.05,
betaq = 0.5,
siglist = c(0.1, 0.05, 0.01),
CILag = 1,
printlog = TRUE,
prntmod = 100,
printtxt = "",
getproject = FALSE,
getbootpeers = FALSE,
solver = "highs"
)
X |
Reference dmu's = ndmu x number of inputs input matrix. |
Y |
Reference dmu's = ndmu x number of outputs output matrix. |
qout |
Maximal proportion of dmu's allowed external to DEA hull. Default = 1/ndmu |
qoutS |
Proportion of external points to identify using qDEA slicing (Atwood and Shaik 2020 EJOR)with qoutS <= qout. Default = qout |
X0 |
Inputs for set of ndmu0 dmu's to be processed. Default = X |
Y0 |
Outputs for set of ndmu0 dmu's to be processed. Default = Y |
DX0 |
Input directions for ndmu0 dmu's in X0 and Y0. (Must be provided if orient = 'ddea'). Default = NULL |
DY0 |
Output directions for ndmu0 dmu's in X0 and Y0. (Must be provided if orient = 'ddea') Default = NULL |
orient |
Model orientation ('in','out','inout','oneone','ddea'). (!!If orient='ddea',DX0,and DY0 must be provided) Default='out' |
RTS |
Returns to scale.('CRS,'VRS,'DRS','IRS) Default 'CRS'. |
dmulist |
Index vector of dmus in (X0,Y0) to process. NULL = process all. |
nqiter |
Maximal number of qDEA iterations. Default = 1. |
nboot |
Number of bootstrap replications. Default = 0. |
transform |
Transform DDEA distance to traditional efficiency metrics (input or output orientations only) Default=TRUE |
mcells |
Number of subsample sizes for bootstapping. Default = 5 |
mlist |
Optional list of user chosen subsample sizes. Default = NULL |
seedval |
Seed value for random number generator - used in bootstapping. Default = 1001. |
qtol |
q search tolerance with iterative qDEA. Default = 1E-6 |
BIGM |
Default Big M in RHS of qDEA stage 2 process. Default = 1E9 |
eps |
Search tolerance in qDEA improvement tests. Default = 1E-6 |
skipzprob |
Skip qDEA if qout=0. Default=TRUE. |
replaceA1 |
Put dmu0's data in first row of reference sets. Default=FALSE |
baseqDEA |
Use basic qDEA model from EJOR article. Default=FALSE |
unbounded |
qDEA reported as unbounded if obj<=unbounded. Default = (-1E3) |
obj2test |
Convergance tol for objective in iterative qDEA.Default = 1E-4 |
replaceM |
Subsample with replacement in subsample bootstrap. Default=FALSE |
alpha |
Alpha level for Simar-Wilson(2011)subsample size selection procedure. Default = 0.05 |
betaq |
qDEA convergence rate. 0.5 => "root n" convergence. |
siglist |
Vector of user's desired confidence interval widths Default = c(0.10, 0.05, 0.01) |
CILag |
CILag level for Simar-Wilson (2011) subsample size selection procedure. Default = 1 |
printlog |
Progress of DDEA dmu's solved when (X0,Y0) >1 dmus. |
prntmod |
Print progress every prntmod dmus. Default=100. |
printtxt |
Additional text to print with progress printlog. |
getproject |
Compute projected values for dmu's in dmulist. Default=FALSE |
getbootpeers |
Pull and store peers for each bootstrapped solution. Default=FALSE |
solver |
LP solver Default='highs' |
'###################################################################'
A list of individual items and lists of addiitional/optional output
effvals = vector of DDEA distances (efficiencies if transform=TRUE and input or output orientation).
effvalsq = vector of qDDEA distances (efficiencies if transform=TRUE and input or output orientation).
distvals = vector of DDEA distances
distvalsq = vector of qDEA distances
distMAT = ndmu0 by 3 matrix with DDEA,qDDEA-S1,qDDEA-S2 distances. '###########################################################################'
INPUT_DATA = A list containing:
X = reference dmu's = ndmu x number of inputs input matrix.
Y = reference dmu's = ndmu x number of outputs output matrix.
X0 = inputs for set of ndmu0 dmu's processed.
Y0 = outputs for set of ndmu0 dmu's processed.
DX0 = input directions for ndmu0 dmu's processed.
DY0 = output directions for ndmu0 dmu's processed.
qout = maximal proportion of dmu's allowed external to DEA hull.
qoutS = proportion of external points to identify using qDEA slicing.
RTS = returns to scale.
orient = model orientation. ('ddea','in','out','inout','oneone')
baseqDEA = use basic qDEA model from EJOR article
dmulist0 = DMU0 index in originally inputs X0,Y0,DX0,and DY0
'###################################################################'
BOOT_DATA = A list containing:
effvals.bc = vector of DDEA bias corrected distance or efficiency metrics (efficiencies if transform=TRUE and input or output orientation)
effvalsq.bc = vector of qDEA bias corrected distance or efficiency metrics (efficiencies if transform=TRUE and input or output orientation)
distvals.bc = vector of bias corrected DDEA distances
distvalsq.bc = vector of bias corrected qDEA distances
mcells = number of subsample sizes for bootstapping
mlist = list of subsample sizes used in bootstraps
BOOTdmus = matrix containing indexes of reference dmus chosen for each bootstrap
BOOT = nboot by mcells by ndmu0 array of bootstrapped DDEA distances (efficiencies if transform=TRUE and input or output orientation)
BOOTS = nboot by mcells by ndmu0 array of DDEA bootstrapped s-statistics (statn = (m(n)/n)^beta (statm - statn)
BOOTs = nboot by ndmu0 matrix of DDEA bootstrapped s-statistics (at sample size chosen by Simar and Wilson (2011) suggested process)
BOOTq = nboot by mcells by ndmu0 array of bootstrapped qDEA distances (efficiencies if transform=TRUE and input or output orientation)
BOOTSq = nboot by mcells by ndmu0 array of qDEA bootstrapped s-statistics (statn = (m(n)/n)^beta (statm - statn)
BOOTsq = nboot by ndmu0 matrix of qDEA bootstrapped s-statistics (at sample size chosen by Simar and Wilson (2011) suggested process
mpick = length(ndmu0) index vector of DDEA bootstrap sample size chosen from mlist using Simar and Wilson (2011) suggested sample size selection process
mpickq = length(ndmu0) index vector of qDDEA bootstrap sample size chosen from mlist using Simar and Wilson (2011) suggested sample size selection process
beta = DDEA convergence rate indicated Simar-Wilson (2011)
betaq = qDEA convergence rate indicated Atwood and Shaik(2020) = 0.5
siglist = vector of user's desired confidence interval widths
CI = ndmu0 by 2 by length(siglist) array of DDEA confidence intervals (estimated using quantiles on bias corrcted "s" statistics)
CIq = ndmu0 by 2 by length(siglist) array of qDEA confidence intervals (estimated using quantiles on bias corrcted "s" statistics)
CIq_norm = ndmu0 by 2 by length(siglist) array of qDEA confidence intervals (estimated using sample mean and standard error of bootstrapped "s" statistics and assuming normality) (Atwood and Shaik 2020)
'###################################################################'
PEER_DATA = A list containing:
PEERS = dataframe of DDEA peers and projection weights for each dmu0
PEERSq = dataframe of qDDEA-S2 peers and projection weights each dmu0
DOUTq = data frame indicating external dmus for each dmu's qDEA solution
BPEERS = ndmu0 by mcells by (nIN+nOUT) by 2(dmu-z,zweight) array of DDEA subsampled peers (dmu-z) and projection weights (z) if(nboot>0&getbootpeers==TRUE)
BPEERSq = ndmu0 by mcells by (nIN+nOUT) by 2(dmu-z,zweight) array of qDEA subsampled peers (dmu-z) and projection weights (z) if(nboot>0&getbootpeers==TRUE)
BPEERS1 = data.frame of DDEA subsampled peers and projection weights (z) if(nboot>0&getbootpeers==TRUE) for chosen subsample size data.frame: nb = bootstrap rep, dmu0 = given dmu, dmuz = reference dmu, z = reference dmu projection weight
BPEERS1q = data.frame of qDEA subsampled peers and projection weights (z) if(nboot>0&getbootpeers==TRUE) for chosen subsample size data.frame: nb = bootstrap rep, dmu0 = given dmu, dmuz = reference dmu, z = reference dmu projection weight
'###################################################################'
PROJ_DATA = Projected Values. A list containing:
X0HAT = DDEA projected input levels (if getproject=TRUE)
Y0HAT = DDEA projected output levels (if getproject=TRUE)
X0HAT.bc = bias corrected DDEA projected input levels (if nboot>0 and getproject=TRUE) (if nboot>0 and getproject=TRUE) )
X0HATq = qDEA projected input levels (if getproject=TRUE)
Y0HATq = qDEA projected output levels (if getproject=TRUE)
X0HATq.bc = bias corrected qDEA projected input levels (if nboot>0 and getproject=TRUE)
Y0HATq.bc = bias corrected qDEA projected output levels (if nboot>0 and getproject=TRUE) )
'###################################################################'
LP_DATA = LP Models, data, and results. A list containing:
status = ndmu0 by 3 matrix with LP status of DDEA,qDDEA-S1,qDDEA-S2
qhat = proportion of dmu's external to hull in qDEA solution (NA indicates qDEA for given DMU was unbounded)
qiter = number of qDEA iterations completed.
PSOL = ndmu0 by ? matrix with DDEA LP solutions for each dmu0
PSOLq1 = ndmu0 by ? matrix with qDDEA-S1 LP solutions for each dmu0
PSOLq2 = ndmu0 by ? matrix with qDDEA-S2 Lp solutions for each dmu0
RCOST = ndmu0 by ? matrix of LP reduced costs for DDEA solutions
RCOSTq1 = ndmu0 by ? matrix of LP reduced costs for qDDEA-S1 solutions
RCOSTq2 = ndmu0 by ? matrix of LP reduced costs for qDDEA-S2 solutions
LPModels = list of LP0, LP1, and LP2 LP objects from qDEA_solve function
# Examples from CST(2006): Cooper, W., Seiford, L., and Tone, K., 2006.
# Introduction to Data Envelopment Analysis and Its Uses. Springer, New York.
# CST One Input - One Output Example - Table 1.1
data(CST11)
X = as.matrix(CST11$EMPLOYEES)
Y = as.matrix(CST11$SALES_EJOR)
qout = 1/nrow(X)
sol = qDEA(X, Y, RTS = 'crs', orient = 'in', qout = qout)
# DEA efficiency scores
sol$effvals
# qDEA input efficiency scores allowing one external point
sol$effvalsq
# CST Two Input - One Output Example - Table 1.3
data(CST21)
X = as.matrix(cbind(CST21$EMPLOYEES, CST21$FLOOR_AREA))
Y = as.matrix(CST21$SALES)
qout = 1/nrow(X)
sol = qDEA(X, Y, RTS = 'crs', orient = 'in', qout = qout)
sol$effvals
sol$effvalsq
# CST One Input - Two Output Example - Table 1.4
data(CST12)
X = as.matrix(CST12$EMPLOYEES)
Y = as.matrix(cbind(CST12$CUSTOMERS, CST12$SALES))
qout = 1/nrow(X)
sol = qDEA(X, Y, RTS = 'crs', orient = 'out', qout = qout)
sol$effvals
sol$effvalsq
# CST Two Input - Two Output Example - Table 1.5
data(CST22)
X = as.matrix(cbind(CST22$DOCTORS, CST22$NURSES))
Y = as.matrix(cbind(CST22$OUT_PATIENTS, CST22$IN_PATIENTS))
qout = 1/nrow(X)
sol = qDEA(X, Y, RTS = 'crs', orient = 'in', qout = qout)
# DEA efficiency scores - see table 1.6 CCR estimates
round(sol$effvals, 2)
# qDEA efficiency scores allowing one external point
round(sol$effvalsq, 2)
# Atwood-Shaik EJOR qDEA Examples (longer running examples)
data(CST11)
X = as.matrix(CST11$EMPLOYEES)
Y = as.matrix(CST11$SALES_EJOR)
###############################################################################
# EJOR Efficiency Results Table 1 Input Orientation
tmpC1=qDEA(X,Y,RTS='crs',orient='in',qout=1/8,getproject=TRUE)
tmpC2=qDEA(X,Y,RTS='crs',orient='in',qout=2/8,getproject=TRUE)
# Table 1 Input Orientation
round(cbind(tmpC1$distvals,tmpC1$PROJ_DATA$X0HAT,tmpC1$PROJ_DATA$Y0HAT,
tmpC1$distvalsq,tmpC1$PROJ_DATA$X0HATq,tmpC1$PROJ_DATA$Y0HATq,
tmpC2$distvalsq,tmpC2$PROJ_DATA$X0HATq,tmpC2$PROJ_DATA$Y0HATq),3)
###############################################################################
# EJOR Efficiency Results Table 1 Output Orientation
tmpC3=qDEA(X,Y,RTS='crs',orient='out',qout=1/8,getproject=TRUE)
tmpC4=qDEA(X,Y,RTS='crs',orient='out',qout=2/8,getproject=TRUE)
# Table 1 Output Orientation
round(cbind(tmpC3$distvals,tmpC3$PROJ_DATA$X0HAT,tmpC3$PROJ_DATA$Y0HAT,
tmpC3$distvalsq,tmpC3$PROJ_DATA$X0HATq,tmpC3$PROJ_DATA$Y0HATq,
tmpC4$distvalsq,tmpC4$PROJ_DATA$X0HATq,tmpC4$PROJ_DATA$Y0HATq),3)
################################################################################
# EJOR Efficiency Results Table 1 one-one Orientation
tmpC5=qDEA(X,Y,RTS='crs',orient='oneone',qout=1/8,getproject=TRUE)
tmpC6=qDEA(X,Y,RTS='crs',orient='oneone',qout=2/8,getproject=TRUE)
# Table 1 one-one Orientation
round(cbind(tmpC5$distvals,tmpC5$PROJ_DATA$X0HAT,tmpC5$PROJ_DATA$Y0HAT,
tmpC5$distvalsq,tmpC5$PROJ_DATA$X0HATq,tmpC5$PROJ_DATA$Y0HATq,
tmpC6$distvalsq,tmpC6$PROJ_DATA$X0HATq,tmpC6$PROJ_DATA$Y0HATq),3)
############################################################################
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.