I run this express, so there will not be much talking
setwd("C:/Users/matt/OneDrive/School/ECN3015/CW02")
require(psych)
require(foreign)
require(colorRamps)
require(gplots)
require(knitr)
require(Benchmarking)
require(stargazer)
rm(list=ls())
#outlogit function used for presenting a multinomial logit model in an appropriate way
outlogit<- function(x){
z <- cbind(round(exp(summary(x)$coefficients), 3), round(summary(x)$coefficients, 3),
round((1 - pnorm(abs(summary(x)$coefficients/summary(x)$standard.errors), 0, 1)) * 2, 3))
z <- cbind(z, ifelse(z[,3]<0.01, 99, ifelse(z[,3]<0.05, 95, ifelse(z[,3]<0.1, 90, 0) ) ) )
colnames(z)<- c("OR","coefficient", "p-value", "sig")
return(z)
}
MattHist <- function(v, color="deepskyblue", main=NULL, breaks="Sturges"){
g<-hist(v, breaks=breaks, plot=FALSE)
hist(v,
freq = FALSE,
breaks= breaks,
col=paste0(color, "1"),
lty=1,
main = main,
axes=TRUE,
ylim = c(-max(g$density)/20,max(g$density)))
lines(density(v, adjust=1, na.rm=TRUE),
col=paste0(color,"4"),
lwd=2)
curve(dnorm(x , mean=mean(v, na.rm = TRUE), sd=sd(v, na.rm=TRUE)),
col="Black",
lwd=1,
add=TRUE)
boxplot(v,
horizontal=TRUE,
outline=TRUE,
axes=FALSE,
col = paste0(color,"2"),
whisklty=1,
staplelty=0,
boxwex=max(g$density)/10,
add=TRUE,
at=-max(g$density)/20,
pch=16,
outcol=paste0(color,"2"))
rm(list = c("g"))
}
sharebox<-function(p, v, cts=NULL, main="Breakdown", color="deepskyblue"){
par(oma=c(0,5,0,0.5), mar=c(4,0,1,0.5), cex.axis=0.7, cex.lab=0.7, cex.main=0.7, las=1)
nf<-layout(matrix(c(1,2), 1, 2, byrow = TRUE), widths=c(3,1))
boxplot(p~v,
horizontal=TRUE, outline=TRUE, axes=TRUE,
names=cts,
col = paste0(color,"2"),
main=main,
whisklty=1,
staplelty=0,
notch=FALSE,
boxwex=0.5,
pch=16,
outcol=paste0(color,"2"),
xlab="Subjective Wellbeing")
barplot(prop.table(table(v)),
horiz=TRUE,
las=1,
axes=TRUE,
names.arg = "",
col=paste0(color,"3"),
xlab = "%",
main="Share")
}
misobs<-function(v){
cat(paste0(round(100*length(which(is.na(v)))/length(DG_AGE)), "% of observations missing"))
}I took down the following notes in the lecture:
Excel solver: Maximize s.t. constrainsts
plot the constraints as PPFs
the Farmer problem: multiply qty produced by qty of each factor used (express PF in )
maximize the revenue.
Dual program:
we add prices of the individual production factors and minimize costs
marginal effect of individual production factors
technical efficiency
Lambda: weights of individual hospitals in constraints per input
Lambda only receives a value if the firm is already efficient
CCR: works with constant returns to scale
BCC: asessing with variable returns to scale Benchmarking::dea(…, RTS=‘drs’)
look at input and output efficiency
Good to have some data, isn’t it?
airlines <- read.csv("src/airlineDEA.csv")
#Separate 2015 and 2016
air15<-airlines[airlines$yr==2015,-1]
air16<-airlines[airlines$yr==2016,-1]
#preparation for matrix drawing
# w <- matrix(air15$doctors, ncol=1, dimnames = list(hosp$hospital, "doctors"))
# z <- matrix(hosp$outpatients, ncol=1, dimnames = list(hosp$hospital, "outpatients"))
#preparation for DEA
X15 <- air15[c('Acft_Q', 'Fuel_Q', 'Labor_Q')]
C15 <- air15[c('Acft_P', 'Fuel_P', 'Labor_P')]
Y15 <- air15[c('Output_Q')]
P15 <- air15[c('Output_P')]
rownames(X15) <- rownames(C15) <- rownames(Y15) <- rownames(P15) <- air15$aln_name
X16 <- air16[c('Acft_Q', 'Fuel_Q', 'Labor_Q')]
C16 <- air16[c('Acft_P', 'Fuel_P', 'Labor_P')]
Y16 <- air16[c('Output_Q')]
P16 <- air16[c('Output_P')]
rownames(X16) <- rownames(C16) <- rownames(Y16) <- rownames(P16) <- air16$aln_nameFirstly, assuming constant returns to scale
#2015 efficiencies
dea15a <- dea(X15,Y15, RTS="CRS", ORIENTATION="in")
round(lambda(dea15a), 3)## L_THOMAS COOK AIRLINES LTD L_TITAN AIRWAYS LTD
## AIRTANKER SERVICES LTD 0.045 0
## BA CITYFLYER LTD 0.068 0
## BMI REGIONAL 0.020 0
## BRITISH AIRWAYS PLC 4.447 0
## EASTERN AIRWAYS 0.011 0
## EASYJET AIRLINE COMPANY LTD 3.304 0
## FLYBE LTD 0.187 0
## JET2.COM LTD 0.581 0
## LOGANAIR LTD 0.012 0
## MONARCH AIRLINES 0.586 0
## THOMAS COOK AIRLINES LTD 1.000 0
## THOMSON AIRWAYS LTD 1.620 0
## TITAN AIRWAYS LTD 0.000 1
## VIRGIN ATLANTIC AIRWAYS LTD 0.000 0
## L_VIRGIN ATLANTIC AIRWAYS LTD
## AIRTANKER SERVICES LTD 0.000
## BA CITYFLYER LTD 0.000
## BMI REGIONAL 0.000
## BRITISH AIRWAYS PLC 1.346
## EASTERN AIRWAYS 0.000
## EASYJET AIRLINE COMPANY LTD 0.000
## FLYBE LTD 0.000
## JET2.COM LTD 0.000
## LOGANAIR LTD 0.000
## MONARCH AIRLINES 0.000
## THOMAS COOK AIRLINES LTD 0.000
## THOMSON AIRWAYS LTD 0.000
## TITAN AIRWAYS LTD 0.000
## VIRGIN ATLANTIC AIRWAYS LTD 1.000
copa15a<-cost.opt(X15, Y15, C15, RTS="crs")$xopt
colnames(copa15a) <- paste0("IOO_",colnames(X15))
ropa15a<-revenue.opt(X15, Y15, P15, RTS="crs")$yopt
colnames(ropa15a) <- paste0("OOO_",colnames(Y15))
popa15a<-cbind(profit.opt(C15, Y15, C15, P15, RTS="crs")$xopt, profit.opt(C15, Y15, C15, P15, RTS="crs")$yopt)
colnames(popa15a) <- paste0("POO_",c(colnames(X15), colnames(Y15)))
rownames(copa15a) <- rownames(ropa15a) <- rownames(popa15a) <- rownames(X15)
kable(round(cbind(copa15a, ropa15a)), caption="CRS Cost/Revenue Optimization, 2015")| IOO_Acft_Q | IOO_Fuel_Q | IOO_Labor_Q | OOO_Output_Q | |
|---|---|---|---|---|
| AIRTANKER SERVICES LTD | 325 | 18316 | 89 | 1275695 |
| BA CITYFLYER LTD | 494 | 27849 | 135 | 2464019 |
| BMI REGIONAL | 141 | 7973 | 39 | 1877703 |
| BRITISH AIRWAYS PLC | 49799 | 2807682 | 13648 | 181814238 |
| EASTERN AIRWAYS | 79 | 4458 | 22 | 1068584 |
| EASYJET AIRLINE COMPANY LTD | 23929 | 1349156 | 6558 | 71481336 |
| FLYBE LTD | 1354 | 76330 | 371 | 7356308 |
| JET2.COM LTD | 4208 | 237228 | 1153 | 13677740 |
| LOGANAIR LTD | 84 | 4750 | 23 | 604505 |
| MONARCH AIRLINES | 4241 | 239115 | 1162 | 12711197 |
| THOMAS COOK AIRLINES LTD | 7243 | 408357 | 1985 | 20260584 |
| THOMSON AIRWAYS LTD | 11736 | 661683 | 3216 | 34362304 |
| TITAN AIRWAYS LTD | 368 | 20769 | 101 | 1030428 |
| VIRGIN ATLANTIC AIRWAYS LTD | 13071 | 736962 | 3582 | 36564247 |
#2016 efficiencies
dea16a <- dea(X16,Y16, RTS="CRS", ORIENTATION="in")
round(lambda(dea16a), 3)## L_THOMAS COOK AIRLINES LTD
## AIRTANKER SERVICES LTD 0.064
## BA CITYFLYER LTD 0.078
## BMI REGIONAL 0.022
## BRITISH AIRWAYS PLC 3.072
## EASTERN AIRWAYS 0.010
## EASYJET AIRLINE COMPANY LTD 3.521
## FLYBE LTD 0.197
## JET2.COM LTD 0.656
## LOGANAIR LTD 0.011
## MONARCH AIRLINES 0.521
## THOMAS COOK AIRLINES LTD 1.000
## THOMSON AIRWAYS LTD 0.000
## TITAN AIRWAYS LTD 0.000
## VIRGIN ATLANTIC AIRWAYS LTD 0.000
## L_THOMSON AIRWAYS LTD L_TITAN AIRWAYS LTD
## AIRTANKER SERVICES LTD 0 0
## BA CITYFLYER LTD 0 0
## BMI REGIONAL 0 0
## BRITISH AIRWAYS PLC 0 0
## EASTERN AIRWAYS 0 0
## EASYJET AIRLINE COMPANY LTD 0 0
## FLYBE LTD 0 0
## JET2.COM LTD 0 0
## LOGANAIR LTD 0 0
## MONARCH AIRLINES 0 0
## THOMAS COOK AIRLINES LTD 0 0
## THOMSON AIRWAYS LTD 1 0
## TITAN AIRWAYS LTD 0 1
## VIRGIN ATLANTIC AIRWAYS LTD 0 0
## L_VIRGIN ATLANTIC AIRWAYS LTD
## AIRTANKER SERVICES LTD 0.000
## BA CITYFLYER LTD 0.000
## BMI REGIONAL 0.000
## BRITISH AIRWAYS PLC 2.191
## EASTERN AIRWAYS 0.000
## EASYJET AIRLINE COMPANY LTD 0.000
## FLYBE LTD 0.000
## JET2.COM LTD 0.000
## LOGANAIR LTD 0.000
## MONARCH AIRLINES 0.000
## THOMAS COOK AIRLINES LTD 0.000
## THOMSON AIRWAYS LTD 0.000
## TITAN AIRWAYS LTD 0.000
## VIRGIN ATLANTIC AIRWAYS LTD 1.000
copa16a<-cost.opt(X16, Y16, C16, RTS="crs")$xopt
colnames(copa16a) <- paste0("IOO_",colnames(X16))
ropa16a<-revenue.opt(X16, Y16, P16, RTS="crs")$yopt
colnames(ropa16a) <- paste0("OOO_",colnames(Y16))
popa16a<-cbind(profit.opt(C16, Y16, C16, P16, RTS="crs")$xopt, profit.opt(C16, Y16, C16, P16, RTS="crs")$yopt)
colnames(popa16a) <- paste0("POO_",c(colnames(X16), colnames(Y16)))
rownames(copa16a) <- rownames(ropa16a) <- rownames(popa16a) <- rownames(X16)
kable(round(cbind(copa16a, ropa16a)), caption="CRS Cost/Revenue Optimization, 2016")| IOO_Acft_Q | IOO_Fuel_Q | IOO_Labor_Q | OOO_Output_Q | |
|---|---|---|---|---|
| AIRTANKER SERVICES LTD | 493 | 26349 | 149 | 1800273 |
| BA CITYFLYER LTD | 602 | 32173 | 181 | 2781790 |
| BMI REGIONAL | 171 | 9138 | 52 | 2158574 |
| BRITISH AIRWAYS PLC | 54016 | 2888708 | 16293 | 180039765 |
| EASTERN AIRWAYS | 76 | 4084 | 23 | 909673 |
| EASYJET AIRLINE COMPANY LTD | 27279 | 1458836 | 8228 | 76134930 |
| FLYBE LTD | 1530 | 81822 | 461 | 7818968 |
| JET2.COM LTD | 5083 | 271817 | 1533 | 15372262 |
| LOGANAIR LTD | 87 | 4641 | 26 | 604727 |
| MONARCH AIRLINES | 4034 | 215719 | 1217 | 12269666 |
| THOMAS COOK AIRLINES LTD | 7748 | 414351 | 2337 | 20448973 |
| THOMSON AIRWAYS LTD | 12760 | 682370 | 3849 | 33676175 |
| TITAN AIRWAYS LTD | 1731 | 39163 | 79 | 1662811 |
| VIRGIN ATLANTIC AIRWAYS LTD | 13786 | 737273 | 4158 | 36385751 |
#compare changes
acompare <- cbind(eff(dea15a), eff(dea16a))
colnames(acompare) <- c("2015", "2016")
kable(acompare, caption="CRS efficiency")| 2015 | 2016 | |
|---|---|---|
| AIRTANKER SERVICES LTD | 0.7123694 | 0.7223156 |
| BA CITYFLYER LTD | 0.5607607 | 0.5707885 |
| BMI REGIONAL | 0.2106617 | 0.2089287 |
| BRITISH AIRWAYS PLC | 0.7661813 | 0.7918410 |
| EASTERN AIRWAYS | 0.2069870 | 0.2215511 |
| EASYJET AIRLINE COMPANY LTD | 0.9364425 | 0.9456384 |
| FLYBE LTD | 0.5148123 | 0.5164462 |
| JET2.COM LTD | 0.8605237 | 0.8726538 |
| LOGANAIR LTD | 0.3898611 | 0.3787147 |
| MONARCH AIRLINES | 0.9333231 | 0.8676795 |
| THOMAS COOK AIRLINES LTD | 1.0000000 | 1.0000000 |
| THOMSON AIRWAYS LTD | 0.9553867 | 1.0000000 |
| TITAN AIRWAYS LTD | 1.0000000 | 1.0000000 |
| VIRGIN ATLANTIC AIRWAYS LTD | 1.0000000 | 1.0000000 |
hist(eff(dea15a), freq=FALSE, ylim=c(0.5,1.38), border=0, xlab="Efficiency", main="Change in efficiency distribution")
lines(density(eff(dea15a), adjust=1), col="grey80", lwd=1)
lines(density(eff(dea16a), adjust=1), col="grey40", lwd=1)
legend("topleft", c("2015", "2016"), col = c("grey80", "grey40"), lwd=3, ncol=2, cex=0.8, title="Year")Variable now
#2015 efficiencies
dea15b <- dea(X15,Y15, RTS="vrs", ORIENTATION="in")
round(lambda(dea15b), 3)## L_AIRTANKER SERVICES LTD L_BRITISH AIRWAYS PLC
## AIRTANKER SERVICES LTD 1.000 0
## BA CITYFLYER LTD 0.535 0
## BMI REGIONAL 0.627 0
## BRITISH AIRWAYS PLC 0.000 1
## EASTERN AIRWAYS 0.000 0
## EASYJET AIRLINE COMPANY LTD 0.000 0
## FLYBE LTD 0.000 0
## JET2.COM LTD 0.000 0
## LOGANAIR LTD 0.000 0
## MONARCH AIRLINES 0.000 0
## THOMAS COOK AIRLINES LTD 0.000 0
## THOMSON AIRWAYS LTD 0.000 0
## TITAN AIRWAYS LTD 0.000 0
## VIRGIN ATLANTIC AIRWAYS LTD 0.000 0
## L_EASTERN AIRWAYS
## AIRTANKER SERVICES LTD 0.000
## BA CITYFLYER LTD 0.000
## BMI REGIONAL 0.373
## BRITISH AIRWAYS PLC 0.000
## EASTERN AIRWAYS 1.000
## EASYJET AIRLINE COMPANY LTD 0.000
## FLYBE LTD 0.000
## JET2.COM LTD 0.000
## LOGANAIR LTD 0.000
## MONARCH AIRLINES 0.000
## THOMAS COOK AIRLINES LTD 0.000
## THOMSON AIRWAYS LTD 0.000
## TITAN AIRWAYS LTD 0.000
## VIRGIN ATLANTIC AIRWAYS LTD 0.000
## L_EASYJET AIRLINE COMPANY LTD L_LOGANAIR LTD
## AIRTANKER SERVICES LTD 0 0
## BA CITYFLYER LTD 0 0
## BMI REGIONAL 0 0
## BRITISH AIRWAYS PLC 0 0
## EASTERN AIRWAYS 0 0
## EASYJET AIRLINE COMPANY LTD 1 0
## FLYBE LTD 0 0
## JET2.COM LTD 0 0
## LOGANAIR LTD 0 1
## MONARCH AIRLINES 0 0
## THOMAS COOK AIRLINES LTD 0 0
## THOMSON AIRWAYS LTD 0 0
## TITAN AIRWAYS LTD 0 0
## VIRGIN ATLANTIC AIRWAYS LTD 0 0
## L_THOMAS COOK AIRLINES LTD
## AIRTANKER SERVICES LTD 0.000
## BA CITYFLYER LTD 0.022
## BMI REGIONAL 0.000
## BRITISH AIRWAYS PLC 0.000
## EASTERN AIRWAYS 0.000
## EASYJET AIRLINE COMPANY LTD 0.000
## FLYBE LTD 0.143
## JET2.COM LTD 0.558
## LOGANAIR LTD 0.000
## MONARCH AIRLINES 0.563
## THOMAS COOK AIRLINES LTD 1.000
## THOMSON AIRWAYS LTD 0.000
## TITAN AIRWAYS LTD 0.000
## VIRGIN ATLANTIC AIRWAYS LTD 0.000
## L_THOMSON AIRWAYS LTD L_TITAN AIRWAYS LTD
## AIRTANKER SERVICES LTD 0 0.000
## BA CITYFLYER LTD 0 0.444
## BMI REGIONAL 0 0.000
## BRITISH AIRWAYS PLC 0 0.000
## EASTERN AIRWAYS 0 0.000
## EASYJET AIRLINE COMPANY LTD 0 0.000
## FLYBE LTD 0 0.857
## JET2.COM LTD 0 0.442
## LOGANAIR LTD 0 0.000
## MONARCH AIRLINES 0 0.437
## THOMAS COOK AIRLINES LTD 0 0.000
## THOMSON AIRWAYS LTD 1 0.000
## TITAN AIRWAYS LTD 0 1.000
## VIRGIN ATLANTIC AIRWAYS LTD 0 0.000
## L_VIRGIN ATLANTIC AIRWAYS LTD
## AIRTANKER SERVICES LTD 0
## BA CITYFLYER LTD 0
## BMI REGIONAL 0
## BRITISH AIRWAYS PLC 0
## EASTERN AIRWAYS 0
## EASYJET AIRLINE COMPANY LTD 0
## FLYBE LTD 0
## JET2.COM LTD 0
## LOGANAIR LTD 0
## MONARCH AIRLINES 0
## THOMAS COOK AIRLINES LTD 0
## THOMSON AIRWAYS LTD 0
## TITAN AIRWAYS LTD 0
## VIRGIN ATLANTIC AIRWAYS LTD 1
copa15b<-cost.opt(X15, Y15, C15, RTS="vrs")$xopt
colnames(copa15b) <- paste0("IOO_",colnames(X15))
ropa15b<-revenue.opt(X15, Y15, P15, RTS="vrs")$yopt
colnames(ropa15b) <- paste0("OOO_",colnames(Y15))
popa15b<-cbind(profit.opt(C15, Y15, C15, P15, RTS="vrs")$xopt, profit.opt(C15, Y15, C15, P15, RTS="vrs")$yopt)
colnames(popa15b) <- paste0("POO_",c(colnames(X15), colnames(Y15)))
rownames(copa15b) <- rownames(ropa15b) <- rownames(popa15b) <- rownames(X15)
kable(round(cbind(copa15b, ropa15b)), caption="VRS Cost/Revenue Optimization, 2015")| IOO_Acft_Q | IOO_Fuel_Q | IOO_Labor_Q | OOO_Output_Q | |
|---|---|---|---|---|
| AIRTANKER SERVICES LTD | 1581 | 26836 | 77 | 908766 |
| BA CITYFLYER LTD | 749 | 35064 | 486 | 2133184 |
| BMI REGIONAL | 1230 | 22881 | 126 | 943184 |
| BRITISH AIRWAYS PLC | 64631 | 4321289 | 43550 | 139302669 |
| EASTERN AIRWAYS | 1110 | 21538 | 143 | 221183 |
| EASYJET AIRLINE COMPANY LTD | 35233 | 1440725 | 8958 | 66938162 |
| FLYBE LTD | 1576 | 82626 | 677 | 7118780 |
| JET2.COM LTD | 4780 | 240321 | 1137 | 13556570 |
| LOGANAIR LTD | 1120 | 21649 | 142 | 235673 |
| MONARCH AIRLINES | 4807 | 242174 | 1147 | 12572236 |
| THOMAS COOK AIRLINES LTD | 7243 | 408357 | 1985 | 20260584 |
| THOMSON AIRWAYS LTD | 12789 | 692581 | 3694 | 32829290 |
| TITAN AIRWAYS LTD | 1665 | 27774 | 65 | 1030428 |
| VIRGIN ATLANTIC AIRWAYS LTD | 15247 | 774504 | 4270 | 36564247 |
kable(round(popa15b), caption="VRS Profit Optimization, 2015")| POO_Acft_Q | POO_Fuel_Q | POO_Labor_Q | POO_Output_Q | |
|---|---|---|---|---|
| AIRTANKER SERVICES LTD | 6728 | 329 | 33482 | 11770020 |
| BA CITYFLYER LTD | 6728 | 329 | 33482 | 11770020 |
| BMI REGIONAL | 6728 | 329 | 33482 | 11770020 |
| BRITISH AIRWAYS PLC | 6728 | 329 | 33482 | 11770020 |
| EASTERN AIRWAYS | 6728 | 329 | 33482 | 11770020 |
| EASYJET AIRLINE COMPANY LTD | 6728 | 329 | 33482 | 11770020 |
| FLYBE LTD | 6728 | 329 | 33482 | 11770020 |
| JET2.COM LTD | 6728 | 329 | 33482 | 11770020 |
| LOGANAIR LTD | 6728 | 329 | 33482 | 11770020 |
| MONARCH AIRLINES | 6728 | 329 | 33482 | 11770020 |
| THOMAS COOK AIRLINES LTD | 6728 | 329 | 33482 | 11770020 |
| THOMSON AIRWAYS LTD | 6728 | 329 | 33482 | 11770020 |
| TITAN AIRWAYS LTD | 6728 | 329 | 33482 | 11770020 |
| VIRGIN ATLANTIC AIRWAYS LTD | 6728 | 329 | 33482 | 11770020 |
dea15bpeers <- peers(dea15b)
popt15b <- profit.opt(C15, Y15, C15, P15, RTS="vrs")
#2016 efficiencies
dea16b <- dea(X16,Y16, RTS="vrs", ORIENTATION="in")
round(lambda(dea16b), 3)## L_AIRTANKER SERVICES LTD L_BMI REGIONAL
## AIRTANKER SERVICES LTD 1.000 0
## BA CITYFLYER LTD 0.269 0
## BMI REGIONAL 0.000 1
## BRITISH AIRWAYS PLC 0.000 0
## EASTERN AIRWAYS 0.000 0
## EASYJET AIRLINE COMPANY LTD 0.000 0
## FLYBE LTD 0.000 0
## JET2.COM LTD 0.000 0
## LOGANAIR LTD 0.000 0
## MONARCH AIRLINES 0.000 0
## THOMAS COOK AIRLINES LTD 0.000 0
## THOMSON AIRWAYS LTD 0.000 0
## TITAN AIRWAYS LTD 0.000 0
## VIRGIN ATLANTIC AIRWAYS LTD 0.000 0
## L_BRITISH AIRWAYS PLC L_EASTERN AIRWAYS
## AIRTANKER SERVICES LTD 0 0
## BA CITYFLYER LTD 0 0
## BMI REGIONAL 0 0
## BRITISH AIRWAYS PLC 1 0
## EASTERN AIRWAYS 0 1
## EASYJET AIRLINE COMPANY LTD 0 0
## FLYBE LTD 0 0
## JET2.COM LTD 0 0
## LOGANAIR LTD 0 0
## MONARCH AIRLINES 0 0
## THOMAS COOK AIRLINES LTD 0 0
## THOMSON AIRWAYS LTD 0 0
## TITAN AIRWAYS LTD 0 0
## VIRGIN ATLANTIC AIRWAYS LTD 0 0
## L_EASYJET AIRLINE COMPANY LTD L_LOGANAIR LTD
## AIRTANKER SERVICES LTD 0 0.000
## BA CITYFLYER LTD 0 0.186
## BMI REGIONAL 0 0.000
## BRITISH AIRWAYS PLC 0 0.000
## EASTERN AIRWAYS 0 0.000
## EASYJET AIRLINE COMPANY LTD 1 0.000
## FLYBE LTD 0 0.000
## JET2.COM LTD 0 0.000
## LOGANAIR LTD 0 1.000
## MONARCH AIRLINES 0 0.000
## THOMAS COOK AIRLINES LTD 0 0.000
## THOMSON AIRWAYS LTD 0 0.000
## TITAN AIRWAYS LTD 0 0.000
## VIRGIN ATLANTIC AIRWAYS LTD 0 0.000
## L_THOMAS COOK AIRLINES LTD
## AIRTANKER SERVICES LTD 0.000
## BA CITYFLYER LTD 0.015
## BMI REGIONAL 0.000
## BRITISH AIRWAYS PLC 0.000
## EASTERN AIRWAYS 0.000
## EASYJET AIRLINE COMPANY LTD 0.000
## FLYBE LTD 0.126
## JET2.COM LTD 0.626
## LOGANAIR LTD 0.000
## MONARCH AIRLINES 0.478
## THOMAS COOK AIRLINES LTD 1.000
## THOMSON AIRWAYS LTD 0.000
## TITAN AIRWAYS LTD 0.000
## VIRGIN ATLANTIC AIRWAYS LTD 0.000
## L_THOMSON AIRWAYS LTD L_TITAN AIRWAYS LTD
## AIRTANKER SERVICES LTD 0 0.000
## BA CITYFLYER LTD 0 0.530
## BMI REGIONAL 0 0.000
## BRITISH AIRWAYS PLC 0 0.000
## EASTERN AIRWAYS 0 0.000
## EASYJET AIRLINE COMPANY LTD 0 0.000
## FLYBE LTD 0 0.874
## JET2.COM LTD 0 0.374
## LOGANAIR LTD 0 0.000
## MONARCH AIRLINES 0 0.522
## THOMAS COOK AIRLINES LTD 0 0.000
## THOMSON AIRWAYS LTD 1 0.000
## TITAN AIRWAYS LTD 0 1.000
## VIRGIN ATLANTIC AIRWAYS LTD 0 0.000
## L_VIRGIN ATLANTIC AIRWAYS LTD
## AIRTANKER SERVICES LTD 0
## BA CITYFLYER LTD 0
## BMI REGIONAL 0
## BRITISH AIRWAYS PLC 0
## EASTERN AIRWAYS 0
## EASYJET AIRLINE COMPANY LTD 0
## FLYBE LTD 0
## JET2.COM LTD 0
## LOGANAIR LTD 0
## MONARCH AIRLINES 0
## THOMAS COOK AIRLINES LTD 0
## THOMSON AIRWAYS LTD 0
## TITAN AIRWAYS LTD 0
## VIRGIN ATLANTIC AIRWAYS LTD 1
copa16b<-cost.opt(X15, Y15, C15, RTS="vrs")$xopt
colnames(copa16b) <- paste0("IOO_",colnames(X15))
ropa16b<-revenue.opt(X15, Y15, P15, RTS="vrs")$yopt
colnames(ropa16b) <- paste0("OOO_",colnames(Y15))
popa16b<-cbind(profit.opt(C15, Y15, C15, P15, RTS="vrs")$xopt, profit.opt(C15, Y15, C15, P15, RTS="vrs")$yopt)
colnames(popa16b) <- paste0("POO_",c(colnames(X15), colnames(Y15)))
rownames(copa16b) <- rownames(ropa16b) <- rownames(popa16b) <- rownames(X15)
kable(round(cbind(copa16b, ropa16b)), caption="VRS Cost/Revenue Optimization, 2016")| IOO_Acft_Q | IOO_Fuel_Q | IOO_Labor_Q | OOO_Output_Q | |
|---|---|---|---|---|
| AIRTANKER SERVICES LTD | 1581 | 26836 | 77 | 908766 |
| BA CITYFLYER LTD | 749 | 35064 | 486 | 2133184 |
| BMI REGIONAL | 1230 | 22881 | 126 | 943184 |
| BRITISH AIRWAYS PLC | 64631 | 4321289 | 43550 | 139302669 |
| EASTERN AIRWAYS | 1110 | 21538 | 143 | 221183 |
| EASYJET AIRLINE COMPANY LTD | 35233 | 1440725 | 8958 | 66938162 |
| FLYBE LTD | 1576 | 82626 | 677 | 7118780 |
| JET2.COM LTD | 4780 | 240321 | 1137 | 13556570 |
| LOGANAIR LTD | 1120 | 21649 | 142 | 235673 |
| MONARCH AIRLINES | 4807 | 242174 | 1147 | 12572236 |
| THOMAS COOK AIRLINES LTD | 7243 | 408357 | 1985 | 20260584 |
| THOMSON AIRWAYS LTD | 12789 | 692581 | 3694 | 32829290 |
| TITAN AIRWAYS LTD | 1665 | 27774 | 65 | 1030428 |
| VIRGIN ATLANTIC AIRWAYS LTD | 15247 | 774504 | 4270 | 36564247 |
kable(round(popa16b), caption="VRS Profit Optimization, 2016")| POO_Acft_Q | POO_Fuel_Q | POO_Labor_Q | POO_Output_Q | |
|---|---|---|---|---|
| AIRTANKER SERVICES LTD | 6728 | 329 | 33482 | 11770020 |
| BA CITYFLYER LTD | 6728 | 329 | 33482 | 11770020 |
| BMI REGIONAL | 6728 | 329 | 33482 | 11770020 |
| BRITISH AIRWAYS PLC | 6728 | 329 | 33482 | 11770020 |
| EASTERN AIRWAYS | 6728 | 329 | 33482 | 11770020 |
| EASYJET AIRLINE COMPANY LTD | 6728 | 329 | 33482 | 11770020 |
| FLYBE LTD | 6728 | 329 | 33482 | 11770020 |
| JET2.COM LTD | 6728 | 329 | 33482 | 11770020 |
| LOGANAIR LTD | 6728 | 329 | 33482 | 11770020 |
| MONARCH AIRLINES | 6728 | 329 | 33482 | 11770020 |
| THOMAS COOK AIRLINES LTD | 6728 | 329 | 33482 | 11770020 |
| THOMSON AIRWAYS LTD | 6728 | 329 | 33482 | 11770020 |
| TITAN AIRWAYS LTD | 6728 | 329 | 33482 | 11770020 |
| VIRGIN ATLANTIC AIRWAYS LTD | 6728 | 329 | 33482 | 11770020 |
#compare changes
bcompare <- cbind(eff(dea15b), eff(dea16b))
colnames(bcompare) <- c("2015", "2016")
kable(bcompare, caption="VRS efficiency")| 2015 | 2016 | |
|---|---|---|
| AIRTANKER SERVICES LTD | 1.0000000 | 1.0000000 |
| BA CITYFLYER LTD | 0.7044482 | 0.6956541 |
| BMI REGIONAL | 0.9306952 | 1.0000000 |
| BRITISH AIRWAYS PLC | 1.0000000 | 1.0000000 |
| EASTERN AIRWAYS | 1.0000000 | 1.0000000 |
| EASYJET AIRLINE COMPANY LTD | 1.0000000 | 1.0000000 |
| FLYBE LTD | 0.5552871 | 0.5466052 |
| JET2.COM LTD | 0.8717434 | 0.8792292 |
| LOGANAIR LTD | 1.0000000 | 1.0000000 |
| MONARCH AIRLINES | 0.9452628 | 0.8791598 |
| THOMAS COOK AIRLINES LTD | 1.0000000 | 1.0000000 |
| THOMSON AIRWAYS LTD | 1.0000000 | 1.0000000 |
| TITAN AIRWAYS LTD | 1.0000000 | 1.0000000 |
| VIRGIN ATLANTIC AIRWAYS LTD | 1.0000000 | 1.0000000 |
hist(eff(dea15b), freq=FALSE, ylim=c(0.5,5), border=0, xlab="Efficiency", main="Change in efficiency distribution")
lines(density(eff(dea15b), adjust=2), col="grey80", lwd=1)
lines(density(eff(dea16b), adjust=2), col="grey40", lwd=1)
legend("topleft", c("2015", "2016"), col = c("grey80", "grey40"), lwd=3, ncol=2, cex=0.8, title="Year")Let’s plot
dea.plot(X15[,2], Y15[,1], xlab="Fuel", ylab="Seat Kilometers", col="grey60", lwd=1)
dea.plot(X15[,2], Y15[,1], RTS="CRS", add = TRUE, lty=3, col="grey60", lwd=1)
dea.plot(X16[,2], Y16[,1], RTS="vrs", add = TRUE, lty=2, col="grey10", lwd=2)
dea.plot(X15[,2], Y15[,1], RTS="CRS", add = TRUE, lty=3, col="grey10", lwd=2)
points(X15[dea15bpeers[,1], 2], Y15[dea15bpeers[,1], 1], pch=16, col="red")Let’s plot
dea.plot(X15[,1], Y15[,1], xlab="Total seats", ylab="Seat Kilometers", col="grey60", lwd=1)
dea.plot(X15[,1], Y15[,1], RTS="CRS", add = TRUE, lty=3, col="grey60", lwd=1)
dea.plot(X16[,1], Y16[,1], RTS="vrs", add = TRUE, lty=2, col="grey10", lwd=2)
dea.plot(X15[,1], Y15[,1], RTS="CRS", add = TRUE, lty=3, col="grey10", lwd=2)
points(X15[dea15bpeers[,1], 1], Y15[dea15bpeers[,1], 1], pch=16, col="red") ###Returns to Labor Let’s plot
dea.plot(X15[,3], Y15[,1], xlab="Employees", ylab="Seat Kilometers", col="grey60", lwd=1)
dea.plot(X15[,3], Y15[,1], RTS="CRS", add = TRUE, lty=3, col="grey60", lwd=1)
dea.plot(X16[,3], Y16[,1], RTS="vrs", add = TRUE, lty=2, col="grey10", lwd=2)
dea.plot(X15[,3], Y15[,1], RTS="CRS", add = TRUE, lty=3, col="grey10", lwd=2)
points(X15[dea15bpeers[,1], 3], Y15[dea15bpeers[,1], 1], pch=16, col="red") ##the rest ##the rest Basically, stop reading here
#
# popt <- profit.opt(C15, Y15, C15, P15, RTS="vrs")
# popt
# dea.plot(X15[,3],Y15[,1], ORIENTATION="OUT", RTS="CRS") #Input combinations - highest isoquant, given isocost
# points(copt$xopt[,1], copt$xopt[,2], pch=16, col="red")
# barplot(sort(copt$cost, decreasing = FALSE))
# ?dea.plot
# ropt <- revenue.opt(X, Y, P, RTS="crs")
# ropt #input combinations maximizing revenue
# dea.plot(Y[,1],Y[,2], ORIENTATION="OUT", RTS="CRS") # highest isorevenue, given price
# points(ropt$yopt[,1], ropt$yopt[,2], pch=16, col="red")
# barplot(sort(copt$cost, decreasing = FALSE))
# ?dea.plot
# ?revenue.opt
# popt <- profit.opt(X, Y, W, P, RTS="vrs") # The single optimal combination of inputs and outputs at full efficiency, maximizing profits
# popt #see output section for illustration
#
#
# sdea1 <- sdea(X,Y, RTS="CRS", ORIENTATION="in") #superefficiency model - IDK what it is for
# sdea1
# print(peers(sdea1, NAMES=TRUE), na.print = "", quote=FALSE) #????
# #device output
# ?stargazer
# stargazer(
# title="",
# type="latex",
# out="logit1.tex",
# style="all",
# no.space=TRUE,
# order="Constant")
#
# # Plot of different production functions
# {
# png("simple_tech.png", width = 300, height = 300)
# #Create VRS production function plot
# {
# dea.plot(w,z,
# RTS="vrs",
# ORIENTATION="in-out",
# txt=rownames(w),
# main="production function",
# xlab=colnames(w),
# ylab=colnames(z),
# lwd=2,
# col="blue") #orientation: input-output [default]; txt: labels
# }
# #Add CRS production function
# {
# dea.plot(w,z,
# RTS="crs",
# ORIENTATION="in-out",
# add=TRUE,
# lwd=2,
# lty=2,
# col="red")
# }
# #append legend
# {
# legend(40, 100, #xy coods of start
# c("VRS", "CRS"), #names
# lty=c(1, 2), #line type
# col=c("blue", "red"),
# lwd=2) #line width
# }
# dev.off()
# }
#
# #Plot matrix of production function, highlighting CRS PPF peers and pimax
# {
# png("ppfmx.png", width=600, height=480)
#
#
# dev.off()