data <- read.csv("FTRanking2023(1).csv")
head(data, 10)
## Rank School.Name Primary.Location FT.ranking.tier
## 1 1 Kellogg/HKUST Business School Hong Kong I
## 2 2 Ceibs China I
## 3 3 ESCP Business School France I
## 4 4 Trium: HEC Paris/LSE/NYU: Stern France I
## 5 5 University of Oxford: Said UK I
## 6 6 IE Business School Spain I
## 7 7 HEC Paris France I
## 8 8 Fudan University School of Management China II
## 9 9 London Business School UK II
## 10 10 IESE Business School Spain II
## Work.experience.rank Career.progress.rank Aims.achieved Salary.today
## 1 6 57 73 652326
## 2 15 6 75 529822
## 3 17 4 74 324261
## 4 1 34 76 394123
## 5 11 20 79 333676
## 6 3 38 72 313746
## 7 16 9 75 323515
## 8 53 53 73 483878
## 9 19 11 73 292595
## 10 9 88 75 306384
## Salary.increase Female.students International.students FT.research.rank
## 1 89 19 65 14
## 2 88 50 68 33
## 3 101 35 92 64
## 4 60 25 88 25
## 5 90 35 84 29
## 6 51 37 93 42
## 7 72 27 78 31
## 8 82 37 1 53
## 9 74 30 88 7
## 10 56 33 98 39
## ESG.rank Carbon.footprint.rank Overall.satisfaction
## 1 42 66 9.64
## 2 47 33 9.54
## 3 2 14 9.50
## 4 38 33 9.43
## 5 19 33 9.19
## 6 1 2 8.89
## 7 18 33 9.57
## 8 61 66 9.29
## 9 27 42 9.25
## 10 3 5 9.27
dim(data)
## [1] 100 15
data[1:5,1:3]
## Rank School.Name Primary.Location
## 1 1 Kellogg/HKUST Business School Hong Kong
## 2 2 Ceibs China
## 3 3 ESCP Business School France
## 4 4 Trium: HEC Paris/LSE/NYU: Stern France
## 5 5 University of Oxford: Said UK
data[,3]
## [1] "Hong Kong" "China" "France" "France" "UK"
## [6] "Spain" "France" "China" "UK" "Spain"
## [11] "US" "China" "US" "Switzerland" "France"
## [16] "Singapore" "US" "US" "France" "UK"
## [21] "Italy" "US" "Hong Kong" "China" "UK"
## [26] "Switzerland" "US" "Germany" "China" "France"
## [31] "UK" "US" "US" "US" "Turkey"
## [36] "France" "Canada" "Germany" "US" "UK"
## [41] "UK" "US" "Denmark" "US" "Austria"
## [46] "France" "US" "Germany" "US" "Belgium"
## [51] "Poland" "Canada" "Singapore" "Germany" "US"
## [56] "Netherlands" "Sweden" "Canada" "US" "Ireland"
## [61] "US" "France" "Portugal" "Ireland" "Canada"
## [66] "China" "US" "US" "Switzerland" "Costa Rica"
## [71] "US" "US" "Australia" "France" "US"
## [76] "UK" "UK" "Netherlands" "US" "South Korea"
## [81] "Turkey" "US" "US" "France" "UK"
## [86] "US" "Italy" "Taiwan" "Netherlands" "France"
## [91] "US" "US" "Finland" "India" "Belgium"
## [96] "South Africa" "US" "Norway" "Norway" "Portugal"
data$Primary.Location
## [1] "Hong Kong" "China" "France" "France" "UK"
## [6] "Spain" "France" "China" "UK" "Spain"
## [11] "US" "China" "US" "Switzerland" "France"
## [16] "Singapore" "US" "US" "France" "UK"
## [21] "Italy" "US" "Hong Kong" "China" "UK"
## [26] "Switzerland" "US" "Germany" "China" "France"
## [31] "UK" "US" "US" "US" "Turkey"
## [36] "France" "Canada" "Germany" "US" "UK"
## [41] "UK" "US" "Denmark" "US" "Austria"
## [46] "France" "US" "Germany" "US" "Belgium"
## [51] "Poland" "Canada" "Singapore" "Germany" "US"
## [56] "Netherlands" "Sweden" "Canada" "US" "Ireland"
## [61] "US" "France" "Portugal" "Ireland" "Canada"
## [66] "China" "US" "US" "Switzerland" "Costa Rica"
## [71] "US" "US" "Australia" "France" "US"
## [76] "UK" "UK" "Netherlands" "US" "South Korea"
## [81] "Turkey" "US" "US" "France" "UK"
## [86] "US" "Italy" "Taiwan" "Netherlands" "France"
## [91] "US" "US" "Finland" "India" "Belgium"
## [96] "South Africa" "US" "Norway" "Norway" "Portugal"
sort(table(data$Primary.Location), decreasing=TRUE)
##
## US France UK China Canada Germany
## 29 12 10 6 4 4
## Netherlands Switzerland Belgium Hong Kong Ireland Italy
## 3 3 2 2 2 2
## Norway Portugal Singapore Spain Turkey Australia
## 2 2 2 2 2 1
## Austria Costa Rica Denmark Finland India Poland
## 1 1 1 1 1 1
## South Africa South Korea Sweden Taiwan
## 1 1 1 1
x <- data$Salary.increase
max(x)
## [1] 110
min(x)
## [1] 11
mean(x)
## [1] 60.22
median(x)
## [1] 58
sd(x)
## [1] 18.38235
IQR(x)
## [1] 24
summary(x)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 11.00 48.00 58.00 60.22 72.00 110.00
boxplot(x, ylab="Salary increase (%)", main="Top 100 EMBA programmes:\nSalary increase")

hist(x, xlab="Salary increase (%)", main="Histogram of salary increase")

boxplot(data$Female.students, data$International.students, ylab="Percentage", xaxt='n')
axis(side=1, at=1:2, labels=c("Female students", "International students"))
abline(h=50, col="red", lty=2, lwd=0.5)

y <- data$Rank
plot(x, y, xlab="Salary increase (%)", ylab="Rank", main="Relationship between Rank & Salary", col="green", pch=8)
abline(h=50, col="red")
abline(v=median(x), col="blue")

data$TierI <- (data$FT.ranking.tier=="I")
data$TierII <- (data$FT.ranking.tier=="II")
data$TierIII <- (data$FT.ranking.tier=="III")
data$TierIV <- (data$FT.ranking.tier=="IV")
cor(data[,c(1,5,6,7)])
## Rank Work.experience.rank Career.progress.rank
## Rank 1.0000000 0.4825829 0.5906831
## Work.experience.rank 0.4825829 1.0000000 0.2601500
## Career.progress.rank 0.5906831 0.2601500 1.0000000
## Aims.achieved -0.6572413 -0.3044889 -0.4550429
## Aims.achieved
## Rank -0.6572413
## Work.experience.rank -0.3044889
## Career.progress.rank -0.4550429
## Aims.achieved 1.0000000
data_red <- data[, -c(2,3,4)]
cor(data_red)
## Rank Work.experience.rank Career.progress.rank
## Rank 1.00000000 0.48258289 0.590683094
## Work.experience.rank 0.48258289 1.00000000 0.260150015
## Career.progress.rank 0.59068309 0.26015002 1.000000000
## Aims.achieved -0.65724129 -0.30448893 -0.455042922
## Salary.today -0.72124500 -0.38586437 -0.309767896
## Salary.increase -0.56415793 0.10875693 -0.413605913
## Female.students -0.05169132 0.22541005 0.057937996
## International.students -0.46892478 -0.50618715 -0.268374637
## FT.research.rank 0.58831307 0.21818607 0.357862296
## ESG.rank 0.41289856 0.28324032 0.187062706
## Carbon.footprint.rank 0.23152320 0.24033251 0.007037031
## Overall.satisfaction -0.35307445 -0.09613939 -0.314328983
## TierI -0.44093766 -0.38628168 -0.251863804
## TierII -0.64793099 -0.16959323 -0.365696761
## TierIII 0.25890872 0.09887618 0.050520675
## TierIV 0.71761927 0.31862414 0.517659688
## Aims.achieved Salary.today Salary.increase
## Rank -0.65724129 -0.72124500 -0.56415793
## Work.experience.rank -0.30448893 -0.38586437 0.10875693
## Career.progress.rank -0.45504292 -0.30976790 -0.41360591
## Aims.achieved 1.00000000 0.40580719 0.34753794
## Salary.today 0.40580719 1.00000000 0.42913268
## Salary.increase 0.34753794 0.42913268 1.00000000
## Female.students -0.12040431 -0.07577472 0.17921144
## International.students 0.26468594 0.17218325 0.08446319
## FT.research.rank -0.42641312 -0.47882897 -0.07657308
## ESG.rank -0.28224800 -0.13727368 -0.30268975
## Carbon.footprint.rank -0.01393264 -0.05083059 0.06064340
## Overall.satisfaction 0.33179431 0.36381605 0.32604215
## TierI 0.25466447 0.54779785 0.27741282
## TierII 0.38038484 0.36912697 0.36256837
## TierIII -0.07231412 -0.36840101 -0.14684545
## TierIV -0.51104405 -0.33554637 -0.41817955
## Female.students International.students FT.research.rank
## Rank -0.05169132 -0.46892478 0.58831307
## Work.experience.rank 0.22541005 -0.50618715 0.21818607
## Career.progress.rank 0.05793800 -0.26837464 0.35786230
## Aims.achieved -0.12040431 0.26468594 -0.42641312
## Salary.today -0.07577472 0.17218325 -0.47882897
## Salary.increase 0.17921144 0.08446319 -0.07657308
## Female.students 1.00000000 -0.17514141 0.01541469
## International.students -0.17514141 1.00000000 -0.14859988
## FT.research.rank 0.01541469 -0.14859988 1.00000000
## ESG.rank 0.02635926 -0.38376786 -0.02309042
## Carbon.footprint.rank 0.06245553 -0.25989188 0.07989807
## Overall.satisfaction -0.13807155 0.06430555 -0.26257721
## TierI -0.05862721 0.41299950 -0.15578499
## TierII 0.03113522 0.17004911 -0.47652623
## TierIII 0.16245605 -0.11373113 0.21312470
## TierIV -0.18798212 -0.31839247 0.39767825
## ESG.rank Carbon.footprint.rank Overall.satisfaction
## Rank 0.41289856 0.231523199 -0.35307445
## Work.experience.rank 0.28324032 0.240332506 -0.09613939
## Career.progress.rank 0.18706271 0.007037031 -0.31432898
## Aims.achieved -0.28224800 -0.013932642 0.33179431
## Salary.today -0.13727368 -0.050830592 0.36381605
## Salary.increase -0.30268975 0.060643402 0.32604215
## Female.students 0.02635926 0.062455532 -0.13807155
## International.students -0.38376786 -0.259891883 0.06430555
## FT.research.rank -0.02309042 0.079898071 -0.26257721
## ESG.rank 1.00000000 0.382659443 -0.07741464
## Carbon.footprint.rank 0.38265944 1.000000000 -0.07678657
## Overall.satisfaction -0.07741464 -0.076786571 1.00000000
## TierI -0.25322156 -0.144599681 0.20305431
## TierII -0.24004524 -0.162989025 0.31424260
## TierIII 0.13640582 0.019595871 -0.35938095
## TierIV 0.27430109 0.254025125 -0.07046536
## TierI TierII TierIII TierIV
## Rank -0.44093766 -0.64793099 0.25890872 0.71761927
## Work.experience.rank -0.38628168 -0.16959323 0.09887618 0.31862414
## Career.progress.rank -0.25186380 -0.36569676 0.05052067 0.51765969
## Aims.achieved 0.25466447 0.38038484 -0.07231412 -0.51104405
## Salary.today 0.54779785 0.36912697 -0.36840101 -0.33554637
## Salary.increase 0.27741282 0.36256837 -0.14684545 -0.41817955
## Female.students -0.05862721 0.03113522 0.16245605 -0.18798212
## International.students 0.41299950 0.17004911 -0.11373113 -0.31839247
## FT.research.rank -0.15578499 -0.47652623 0.21312470 0.39767825
## ESG.rank -0.25322156 -0.24004524 0.13640582 0.27430109
## Carbon.footprint.rank -0.14459968 -0.16298903 0.01959587 0.25402513
## Overall.satisfaction 0.20305431 0.31424260 -0.35938095 -0.07046536
## TierI 1.00000000 -0.20131906 -0.20576372 -0.14570404
## TierII -0.20131906 1.00000000 -0.55034954 -0.38970985
## TierIII -0.20576372 -0.55034954 1.00000000 -0.39831375
## TierIV -0.14570404 -0.38970985 -0.39831375 1.00000000
regmodel <- lm(Rank ~ Salary.increase, data=data_red)
summary(regmodel)
##
## Call:
## lm(formula = Rank ~ Salary.increase, data = data_red)
##
## Residuals:
## Min 1Q Median 3Q Max
## -52.55 -18.86 -1.88 18.29 58.04
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 103.9177 8.2767 12.556 < 2e-16 ***
## Salary.increase -0.8895 0.1315 -6.764 9.81e-10 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 24.05 on 98 degrees of freedom
## Multiple R-squared: 0.3183, Adjusted R-squared: 0.3113
## F-statistic: 45.75 on 1 and 98 DF, p-value: 9.814e-10
plot(data$Salary.increase, data$Rank, xlab="Salary increase (%)", ylab="Rank", main="Relationship between Rank & Salary increase", col="blue", pch=20)
lines(data$Salary.increase, regmodel$fitted.values, col="red")

mean(regmodel$residuals)
## [1] 2.629008e-15
hist(regmodel$residuals, prob=TRUE)
lines(-70:70, dnorm(-70:70, 0, sd(regmodel$residuals)), col="red")

qqnorm(regmodel$residuals)
qqline(regmodel$residuals, col="red")

regmodel2 <- lm(Rank ~ Salary.increase + FT.research.rank, data=data_red)
summary(regmodel2)
##
## Call:
## lm(formula = Rank ~ Salary.increase + FT.research.rank, data = data_red)
##
## Residuals:
## Min 1Q Median 3Q Max
## -47.37 -11.29 -0.18 13.04 39.02
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 72.23350 7.21940 10.005 < 2e-16 ***
## Salary.increase -0.82333 0.09935 -8.287 6.55e-13 ***
## FT.research.rank 0.55054 0.06326 8.703 8.44e-14 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 18.12 on 97 degrees of freedom
## Multiple R-squared: 0.6172, Adjusted R-squared: 0.6093
## F-statistic: 78.19 on 2 and 97 DF, p-value: < 2.2e-16
regmodelstep <- lm(Rank ~ Work.experience.rank + Career.progress.rank + Aims.achieved + Salary.today + Salary.increase +
Female.students + International.students + FT.research.rank + ESG.rank + Carbon.footprint.rank + Overall.satisfaction, data=data_red)