In this paper I used data envelopemnt analysis to find efficent schools using hypothetical example to show the actual usage of the model for a real project. For the example I have used 3 primary schools and used simulated data.
3 inputs as u1,u2,u3
u1 = Teacher Experiance u2 = Number of computers in schools u3 = School facilities index( measured in 0 to 100)
1 output as v1
v1 = Average of grade 5 scholarship exam marks
data table as follows
library(dplyr)## 
## Attaching package: 'dplyr'## The following objects are masked from 'package:stats':
## 
##     filter, lag## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, uniondf1matrix = matrix(c(117,10,5,25,85,12,8,37,90,20,6,86),ncol =4 ,byrow = TRUE)
df1 <- as.data.frame(df1matrix)
colnames(df1) <- c("scholarship marks(v)","teacher experiance(u1)","number of computers(u2)","school facilites index(u3)")
df1 %>%
  mutate(school = c("A","B","C"))##   scholarship marks(v) teacher experiance(u1) number of computers(u2)
## 1                  117                     10                       5
## 2                   85                     12                       8
## 3                   90                     20                       6
##   school facilites index(u3) school
## 1                         25      A
## 2                         37      B
## 3                         86      CFor School A
max z = 117v/(10u1+5u2+25u3) // maximizing efficiency for school A(efficency = weighted outputs/weighted inputs)
subject to // constraints
117v/(10u1+5u2+25u3) <= 1 // for school A ,efficiecnty cannnot be greater than 1
85v/(12u1+8u2+37u3) <= 1 // for school B ,efficiecnty cannnot be greater than 1
90v/(20u1+6u2+86u3) <= 1 // for school C ,efficiecnty cannnot be greater than 1
v,u1,u2,u3 >= 0
For school1
max z = 117v
subjetc to
117v -(10u1 +5u2 + 25u3) <= 0
85v - (12u1 + 8u2 + 37u3) <= 0
90v -(20u1 + 6u2 + 86u3) <= 0
10u1 + 5u2 + 25u3 = 1
ui , v >= 0
….
For school B
max z = 85v
subjetc to
117v -(10u1 +5u2 + 25u3) <= 0
85v - (12u1 + 8u2 + 37u3) <= 0
90v -(20u1 + 6u2 + 86u3) <= 0
12u1 + 8u2 + 37u3 = 1
ui , v >= 0
….
For School C
max z = 90v
subjetc to
117v -(10u1 +5u2 + 25u3) <= 0
85v - (12u1 + 8u2 + 37u3) <= 0
90v -(20u1 + 6u2 + 86u3) <= 0
20u1 + 6u2 + 86u3 = 1
ui , v >= 0
…
We then solve above 3 models and find efficiencies for each school
Model for school A
library(lpSolve)
constr = matrix(c(117,-10,-5,-25,85,-12,-8,-37,90,-20,-6,-86,0,10,5,25),ncol =4 ,byrow = TRUE)
obj.function = c(117,0,0,0)
constr = matrix(c(117,-10,-5,-25,85,-12,-8,-37,90,-20,-6,-86,0,10,5,25),ncol =4 ,byrow = TRUE)
constr.dir =c("<=","<=","<=","=")
constr.rhs = c(0,0,0,1)
mod = lp("max",obj.function,constr,constr.dir,constr.rhs,compute.sens = TRUE)
mod$solution## [1] 0.008547009 0.100000000 0.000000000 0.000000000calculating school efficiency of A
schoolA.eff <- (117*0.00854)/(10*0.1)
schoolA.eff## [1] 0.99918Model for School B
# for school B
obj.function = c(85,0,0,0)
constr = matrix(c(117,-10,-5,-25,85,-12,-8,-37,90,-20,-6,-86,0,12,8,37),ncol =4 ,byrow = TRUE)
constr.dir =c("<=","<=","<=","=")
constr.rhs = c(0,0,0,1)
mod = lp("max",obj.function,constr,constr.dir,constr.rhs,compute.sens = TRUE)
mod$solution## [1] 0.007122507 0.083333333 0.000000000 0.000000000calculating school B efficiency
school2.eff <- (85*0.0071)/(12*0.08)
school2.eff## [1] 0.6286458Model for School C
obj.function = c(90,0,0,0)
constr = matrix(c(117,-10,-5,-25,85,-12,-8,-37,90,-20,-6,-86,0,20,6,86),ncol =4 ,byrow = TRUE)
constr.dir =c("<=","<=","<=","=")
constr.rhs = c(0,0,0,1)
mod = lp("max",obj.function,constr,constr.dir,constr.rhs,compute.sens = TRUE)
mod$solution## [1] 0.007122507 0.000000000 0.166666667 0.000000000Calculating school C efficiency
school3.eff <- (90*0.0071)/(0*20+6*0.1666+0*86)
school3.eff## [1] 0.6392557As we can see school A has 100% efficiency ,School B has 63% efficency and School C has 64% efficency.
Average efficiecncy of shools in zone = 75%
Furether we can see inefficency in each variables.For an example we can see in school C there’s inefficency of using computers (i.e. u2 = 0.1666).That means reducing computers from 1 unit (i.e from 6 to 5) in that school will result in efficency increase of 16.6%.
convert inefficiencies to loss of rupees
If we assume one computer in school C costs Rs 38,000,then it has 6 x 38,000 = 228,000 worth of computers.So 16% inefficiency of computers usage means 228,00 x 0.16 = Rs.36,400 of waste of funds.
Since “students charactresitcis”(iq,houshold income,parents education etc - which are out of control of schools), influence school outputs, we need to contorl that.For this we can use two stage DEA model(report 2)