The main objective of this study is to set up a reliable model to predict the corresponding change in the store profitability, with an increase in the employee tenure.
There are other factors too on which the store profitability could depend on such as site-location, population of the locality, pedestrian access, and number of competitors in the region, and it is not clear whether empoyee tenure and financial performance have a linear relationship or not.There is also no clarity regarding the course of action implemented to retain employees, like increasing wages, implementing bonus plans, instituting new training programs etc.

Setting up, reading and describing the data.

setwd("~/Downloads/Prof Sameer Mathur")
store<-read.csv("Store24.csv")
summary(store)
##      store          Sales             Profit          MTenure      
##  Min.   : 1.0   Min.   : 699306   Min.   :122180   Min.   :  0.00  
##  1st Qu.:19.5   1st Qu.: 984579   1st Qu.:211004   1st Qu.:  6.67  
##  Median :38.0   Median :1127332   Median :265014   Median : 24.12  
##  Mean   :38.0   Mean   :1205413   Mean   :276314   Mean   : 45.30  
##  3rd Qu.:56.5   3rd Qu.:1362388   3rd Qu.:331314   3rd Qu.: 50.92  
##  Max.   :75.0   Max.   :2113089   Max.   :518998   Max.   :277.99  
##     CTenure              Pop             Comp          Visibility  
##  Min.   :  0.8871   Min.   : 1046   Min.   : 1.651   Min.   :2.00  
##  1st Qu.:  4.3943   1st Qu.: 5616   1st Qu.: 3.151   1st Qu.:3.00  
##  Median :  7.2115   Median : 8896   Median : 3.629   Median :3.00  
##  Mean   : 13.9315   Mean   : 9826   Mean   : 3.788   Mean   :3.08  
##  3rd Qu.: 17.2156   3rd Qu.:14104   3rd Qu.: 4.230   3rd Qu.:4.00  
##  Max.   :114.1519   Max.   :26519   Max.   :11.128   Max.   :5.00  
##     PedCount         Res          Hours24       CrewSkill    
##  Min.   :1.00   Min.   :0.00   Min.   :0.00   Min.   :2.060  
##  1st Qu.:2.00   1st Qu.:1.00   1st Qu.:1.00   1st Qu.:3.225  
##  Median :3.00   Median :1.00   Median :1.00   Median :3.500  
##  Mean   :2.96   Mean   :0.96   Mean   :0.84   Mean   :3.457  
##  3rd Qu.:4.00   3rd Qu.:1.00   3rd Qu.:1.00   3rd Qu.:3.655  
##  Max.   :5.00   Max.   :1.00   Max.   :1.00   Max.   :4.640  
##     MgrSkill        ServQual     
##  Min.   :2.957   Min.   : 57.90  
##  1st Qu.:3.344   1st Qu.: 78.95  
##  Median :3.589   Median : 89.47  
##  Mean   :3.638   Mean   : 87.15  
##  3rd Qu.:3.925   3rd Qu.: 99.90  
##  Max.   :4.622   Max.   :100.00
library(psych)
describe(store)
##            vars  n       mean        sd     median    trimmed       mad
## store         1 75      38.00     21.79      38.00      38.00     28.17
## Sales         2 75 1205413.12 304531.31 1127332.00 1182031.25 288422.04
## Profit        3 75  276313.61  89404.08  265014.00  270260.34  90532.00
## MTenure       4 75      45.30     57.67      24.12      33.58     29.67
## CTenure       5 75      13.93     17.70       7.21      10.60      6.14
## Pop           6 75    9825.59   5911.67    8896.00    9366.07   7266.22
## Comp          7 75       3.79      1.31       3.63       3.66      0.82
## Visibility    8 75       3.08      0.75       3.00       3.07      0.00
## PedCount      9 75       2.96      0.99       3.00       2.97      1.48
## Res          10 75       0.96      0.20       1.00       1.00      0.00
## Hours24      11 75       0.84      0.37       1.00       0.92      0.00
## CrewSkill    12 75       3.46      0.41       3.50       3.47      0.34
## MgrSkill     13 75       3.64      0.41       3.59       3.62      0.45
## ServQual     14 75      87.15     12.61      89.47      88.62     15.61
##                  min        max      range  skew kurtosis       se
## store           1.00      75.00      74.00  0.00    -1.25     2.52
## Sales      699306.00 2113089.00 1413783.00  0.71    -0.09 35164.25
## Profit     122180.00  518998.00  396818.00  0.62    -0.21 10323.49
## MTenure         0.00     277.99     277.99  2.01     3.90     6.66
## CTenure         0.89     114.15     113.26  3.52    15.00     2.04
## Pop          1046.00   26519.00   25473.00  0.62    -0.23   682.62
## Comp            1.65      11.13       9.48  2.48    11.31     0.15
## Visibility      2.00       5.00       3.00  0.25    -0.38     0.09
## PedCount        1.00       5.00       4.00  0.00    -0.52     0.11
## Res             0.00       1.00       1.00 -4.60    19.43     0.02
## Hours24         0.00       1.00       1.00 -1.82     1.32     0.04
## CrewSkill       2.06       4.64       2.58 -0.43     1.64     0.05
## MgrSkill        2.96       4.62       1.67  0.27    -0.53     0.05
## ServQual       57.90     100.00      42.10 -0.66    -0.72     1.46

Getting an insight on important variables of the dataset:-

mean(store$Profit)
## [1] 276313.6
sd(store$Profit)
## [1] 89404.08
mean(store$MTenure)
## [1] 45.29644
sd(store$MTenure)
## [1] 57.67155
mean(store$CTenure)
## [1] 13.9315
sd(store$CTenure)
## [1] 17.69752

Sorting and subsetting on R

mpg_asc <- mtcars[order(-mtcars$mpg),] # Sorting mpg in the descending order
mpg_asc[1:5,]
##                 mpg cyl disp  hp drat    wt  qsec vs am gear carb
## Toyota Corolla 33.9   4 71.1  65 4.22 1.835 19.90  1  1    4    1
## Fiat 128       32.4   4 78.7  66 4.08 2.200 19.47  1  1    4    1
## Honda Civic    30.4   4 75.7  52 4.93 1.615 18.52  1  1    4    2
## Lotus Europa   30.4   4 95.1 113 3.77 1.513 16.90  1  1    5    2
## Fiat X1-9      27.3   4 79.0  66 4.08 1.935 18.90  1  1    4    1
# Using the same methods on the current dataset:-
max_prof <- store[order(-store$Profit),]
max_prof[1:10,]
##    store   Sales Profit   MTenure    CTenure   Pop     Comp Visibility
## 74    74 1782957 518998 171.09720  29.519510 10913 2.319850          3
## 7      7 1809256 476355  62.53080   7.326488 17754 3.377900          2
## 9      9 2113089 474725 108.99350   6.061602 26519 2.637630          2
## 6      6 1703140 469050 149.93590  11.351130 16926 3.184613          3
## 44    44 1807740 439781 182.23640 114.151900 20624 3.628561          3
## 2      2 1619874 424007  86.22219   6.636550  8630 4.235555          4
## 45    45 1602362 410149  47.64565   9.166325 17808 3.472609          5
## 18    18 1704826 394039 239.96980  33.774130  3807 3.994713          5
## 11    11 1583446 389886  44.81977   2.036961 21550 3.272398          2
## 47    47 1665657 387853  12.84790   6.636550 23623 2.422707          2
##    PedCount Res Hours24 CrewSkill MgrSkill  ServQual
## 74        4   1       0      3.50 4.405556  94.73878
## 7         5   1       1      3.94 4.100000  81.57837
## 9         4   1       1      3.22 3.583333 100.00000
## 6         4   1       0      3.58 4.605556  94.73510
## 44        4   0       1      4.06 4.172222  86.84327
## 2         3   1       1      3.20 3.556667  94.73510
## 45        3   1       1      3.58 4.622222 100.00000
## 18        3   1       1      3.18 3.866667  97.36939
## 11        5   1       1      3.43 3.200000 100.00000
## 47        5   1       1      4.23 3.950000  99.80105
min_prof <- store[order(store$Profit),]
min_prof[1:10,]
##    store   Sales Profit     MTenure   CTenure   Pop     Comp Visibility
## 57    57  699306 122180  24.3485700  2.956879  3642 2.973376          3
## 66    66  879581 146058 115.2039000  3.876797  1046 6.569790          2
## 41    41  744211 147327  14.9180200 11.926080  9701 4.364600          2
## 55    55  925744 147672   6.6703910 18.365500 10532 6.389294          4
## 32    32  828918 149033  36.0792600  6.636550  9697 4.641468          3
## 13    13  857843 152513   0.6571813  1.577002 14186 4.435671          3
## 54    54  811190 159792   6.6703910  3.876797  3747 3.756011          3
## 52    52 1073008 169201  24.1185600  3.416838 14859 6.585143          3
## 61    61  716589 177046  21.8184200 13.305950  3014 3.263994          3
## 37    37 1202917 187765  23.1985000  1.347023  8870 4.491863          3
##    PedCount Res Hours24 CrewSkill MgrSkill ServQual
## 57        2   1       1      3.35 2.956667 84.21266
## 66        3   1       1      4.03 3.673333 80.26675
## 41        3   1       1      3.03 3.672222 81.13993
## 55        3   1       1      3.49 3.477778 76.31346
## 32        3   1       0      3.28 3.550000 73.68654
## 13        2   1       1      4.10 3.000000 76.30609
## 54        2   1       1      3.08 3.933333 65.78734
## 52        3   1       1      3.83 3.833333 94.73510
## 61        1   1       1      3.07 3.126667 73.68654
## 37        3   1       1      3.38 4.016667 73.68654

Scatter plots

plot(store$MTenure,store$Profit,cex = 0.6,
     main = "Profit vs MTenure",
     col = "black",
     )
abline(lm(store$Profit~store$MTenure),col = "red")
abline(h = mean(store$Profit),col = "blue", lty = "dotted")

plot(store$CTenure,store$Profit,cex = 0.6,
     main = "Profit vs CTenure",
     col = "black"
     )
abline(lm(store$Profit~store$MTenure),col = "red")
abline(h = mean(store$Profit),col = "blue", lty = "dotted")

Correlation matrix and Corrgram

cor(store[,])
##                  store       Sales      Profit     MTenure      CTenure
## store       1.00000000 -0.22693400 -0.19993481 -0.05655216  0.019930097
## Sales      -0.22693400  1.00000000  0.92387059  0.45488023  0.254315184
## Profit     -0.19993481  0.92387059  1.00000000  0.43886921  0.257678895
## MTenure    -0.05655216  0.45488023  0.43886921  1.00000000  0.243383135
## CTenure     0.01993010  0.25431518  0.25767890  0.24338314  1.000000000
## Pop        -0.28936691  0.40348147  0.43063326 -0.06089646 -0.001532449
## Comp        0.03194023 -0.23501372 -0.33454148  0.18087179 -0.070281327
## Visibility -0.02648858  0.13065638  0.13569207  0.15651731  0.066506016
## PedCount   -0.22117519  0.42391087  0.45023346  0.06198608 -0.084112627
## Res        -0.03142976 -0.16672402 -0.15947734 -0.06234721 -0.340340876
## Hours24     0.02687986  0.06324716 -0.02568703 -0.16513872  0.072865022
## CrewSkill   0.04866273  0.16402179  0.16008443  0.10162169  0.257154817
## MgrSkill   -0.07218804  0.31163056  0.32284842  0.22962743  0.124045346
## ServQual   -0.32246921  0.38638112  0.36245032  0.18168875  0.081156172
##                     Pop        Comp  Visibility     PedCount         Res
## store      -0.289366908  0.03194023 -0.02648858 -0.221175193 -0.03142976
## Sales       0.403481471 -0.23501372  0.13065638  0.423910867 -0.16672402
## Profit      0.430633264 -0.33454148  0.13569207  0.450233461 -0.15947734
## MTenure    -0.060896460  0.18087179  0.15651731  0.061986084 -0.06234721
## CTenure    -0.001532449 -0.07028133  0.06650602 -0.084112627 -0.34034088
## Pop         1.000000000 -0.26828355 -0.04998269  0.607638861 -0.23693726
## Comp       -0.268283553  1.00000000  0.02844548 -0.146325204  0.21923878
## Visibility -0.049982694  0.02844548  1.00000000 -0.141068116  0.02194756
## PedCount    0.607638861 -0.14632520 -0.14106812  1.000000000 -0.28437852
## Res        -0.236937265  0.21923878  0.02194756 -0.284378520  1.00000000
## Hours24    -0.221767927  0.12957478  0.04692587 -0.275973353 -0.08908708
## CrewSkill   0.282845090 -0.04229731 -0.19745297  0.213672596 -0.15331247
## MgrSkill    0.083554590  0.22407913  0.07348301  0.087475440 -0.03213640
## ServQual    0.123946521  0.01814508  0.20992919 -0.005445552  0.09081624
##                Hours24   CrewSkill    MgrSkill     ServQual
## store       0.02687986  0.04866273 -0.07218804 -0.322469213
## Sales       0.06324716  0.16402179  0.31163056  0.386381121
## Profit     -0.02568703  0.16008443  0.32284842  0.362450323
## MTenure    -0.16513872  0.10162169  0.22962743  0.181688755
## CTenure     0.07286502  0.25715482  0.12404535  0.081156172
## Pop        -0.22176793  0.28284509  0.08355459  0.123946521
## Comp        0.12957478 -0.04229731  0.22407913  0.018145080
## Visibility  0.04692587 -0.19745297  0.07348301  0.209929194
## PedCount   -0.27597335  0.21367260  0.08747544 -0.005445552
## Res        -0.08908708 -0.15331247 -0.03213640  0.090816237
## Hours24     1.00000000  0.10536295 -0.03883007  0.058325655
## CrewSkill   0.10536295  1.00000000 -0.02100949 -0.033516504
## MgrSkill   -0.03883007 -0.02100949  1.00000000  0.356702708
## ServQual    0.05832565 -0.03351650  0.35670271  1.000000000
cor(store$Profit,store$MTenure)
## [1] 0.4388692
cor(store$Profit,store$CTenure)
## [1] 0.2576789
library(corrgram)
par(mfrow = c(1,1))
cols <- colorRampPalette(c("darkgreen","blue"))
corrgram(store,order = FALSE,
         upper.panel = panel.pie,
         lower.panel = panel.shade,
         text.panel = panel.txt,
         main = "Corrgram of the dataset",
         col.regions = cols
         )

Pearson’s correlation tests

cor.test(store$Profit,store$MTenure)
## 
##  Pearson's product-moment correlation
## 
## data:  store$Profit and store$MTenure
## t = 4.1731, df = 73, p-value = 8.193e-05
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  0.2353497 0.6055175
## sample estimates:
##       cor 
## 0.4388692
cor.test(store$Profit,store$CTenure)
## 
##  Pearson's product-moment correlation
## 
## data:  store$Profit and store$CTenure
## t = 2.2786, df = 73, p-value = 0.02562
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  0.03262507 0.45786339
## sample estimates:
##       cor 
## 0.2576789

p value for profit vs Mtenure : 8.193e-05

There is a relationship between Profit and Mtenure, and the NULL hyppthesis should be rejected as p-value<0.05

p value for profit vs Ctenure : 0.02562

There is a relationship between Profit and Ctenure, the NULL hypothesis should be rejected as the p-value here is < 0.05

Regression analysis

fit <- lm(store$Profit ~ store$MTenure + store$CTenure + store$Comp + store$Pop + store$PedCount + store$Res + store$Hours24 + store$Visibility)
fit
## 
## Call:
## lm(formula = store$Profit ~ store$MTenure + store$CTenure + store$Comp + 
##     store$Pop + store$PedCount + store$Res + store$Hours24 + 
##     store$Visibility)
## 
## Coefficients:
##      (Intercept)     store$MTenure     store$CTenure        store$Comp  
##         7610.041           760.993           944.978        -25286.887  
##        store$Pop    store$PedCount         store$Res     store$Hours24  
##            3.667         34087.359         91584.675         63233.307  
## store$Visibility  
##        12625.447
lm(store$Profit ~ store$MTenure + store$CTenure + store$Comp + store$Pop + store$PedCount + store$Res + store$Hours24 + store$Visibility)$coefficient
##      (Intercept)    store$MTenure    store$CTenure       store$Comp 
##      7610.041452       760.992734       944.978026    -25286.886662 
##        store$Pop   store$PedCount        store$Res    store$Hours24 
##         3.666606     34087.358789     91584.675234     63233.307162 
## store$Visibility 
##     12625.447050
summary(fit)
## 
## Call:
## lm(formula = store$Profit ~ store$MTenure + store$CTenure + store$Comp + 
##     store$Pop + store$PedCount + store$Res + store$Hours24 + 
##     store$Visibility)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -105789  -35946   -7069   33780  112390 
## 
## Coefficients:
##                    Estimate Std. Error t value Pr(>|t|)    
## (Intercept)        7610.041  66821.994   0.114 0.909674    
## store$MTenure       760.993    127.086   5.988 9.72e-08 ***
## store$CTenure       944.978    421.687   2.241 0.028400 *  
## store$Comp       -25286.887   5491.937  -4.604 1.94e-05 ***
## store$Pop             3.667      1.466   2.501 0.014890 *  
## store$PedCount    34087.359   9073.196   3.757 0.000366 ***
## store$Res         91584.675  39231.283   2.334 0.022623 *  
## store$Hours24     63233.307  19641.114   3.219 0.001994 ** 
## store$Visibility  12625.447   9087.620   1.389 0.169411    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 56970 on 66 degrees of freedom
## Multiple R-squared:  0.6379, Adjusted R-squared:  0.594 
## F-statistic: 14.53 on 8 and 66 DF,  p-value: 5.382e-12
lm(store$Profit ~ store$MTenure + store$CTenure + store$Comp + store$Pop + store$PedCount + store$Res + store$Hours24 + store$Visibility)$coefficient
##      (Intercept)    store$MTenure    store$CTenure       store$Comp 
##      7610.041452       760.992734       944.978026    -25286.886662 
##        store$Pop   store$PedCount        store$Res    store$Hours24 
##         3.666606     34087.358789     91584.675234     63233.307162 
## store$Visibility 
##     12625.447050

Intercept and Visibility are the only two variables which are statistically insignificant i.e their p-value > 0.05

From the regression analysis we can see that both the manager’s and the crew member’s tenure has a significant effect on the store profit. An increase of 1 month in both the manager’s and the crew member’s tenure results in an increase in store profit by 760.99 dollars and 944.97 dollars respectively.