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)