datasummary <- describe(Store)
datasummary
## 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
summarydf <- Store %>% select(Profit, MTenure, CTenure) %>% summarise_all(funs(mean,sd ))
summarydf
## Profit_mean MTenure_mean CTenure_mean Profit_sd MTenure_sd CTenure_sd
## 1 276313.6 45.29644 13.9315 89404.08 57.67155 17.69752
TopStores <- head(Store[order(-Store$Profit),] %>% select(store, Profit, MTenure, CTenure), n=10)
TopStores
## store Profit MTenure CTenure
## 74 74 518998 171.09720 29.519510
## 7 7 476355 62.53080 7.326488
## 9 9 474725 108.99350 6.061602
## 6 6 469050 149.93590 11.351130
## 44 44 439781 182.23640 114.151900
## 2 2 424007 86.22219 6.636550
## 45 45 410149 47.64565 9.166325
## 18 18 394039 239.96980 33.774130
## 11 11 389886 44.81977 2.036961
## 47 47 387853 12.84790 6.636550
BottomStores <- tail(Store[order(-Store$Profit),] %>% select(store, Profit, MTenure, CTenure), n=10)
BottomStores
## store Profit MTenure CTenure
## 37 37 187765 23.1985000 1.347023
## 61 61 177046 21.8184200 13.305950
## 52 52 169201 24.1185600 3.416838
## 54 54 159792 6.6703910 3.876797
## 13 13 152513 0.6571813 1.577002
## 32 32 149033 36.0792600 6.636550
## 55 55 147672 6.6703910 18.365500
## 41 41 147327 14.9180200 11.926080
## 66 66 146058 115.2039000 3.876797
## 57 57 122180 24.3485700 2.956879
library(car)
##
## Attaching package: 'car'
## The following object is masked from 'package:dplyr':
##
## recode
## The following object is masked from 'package:psych':
##
## logit
scatterplotProfit_MTenure <- scatterplot(Profit ~ MTenure , data = Store, main = "scatter plot of Profit vs. MTenure")
library(car)
scatterplotProfit_CTenure <- scatterplot(Profit ~ CTenure , data = Store, main = "scatter plot of Profit vs. CTenure")
cormatrix <- cor(select(Store, -store))
round(cormatrix, 2)
## Sales Profit MTenure CTenure Pop Comp Visibility PedCount
## Sales 1.00 0.92 0.45 0.25 0.40 -0.24 0.13 0.42
## Profit 0.92 1.00 0.44 0.26 0.43 -0.33 0.14 0.45
## MTenure 0.45 0.44 1.00 0.24 -0.06 0.18 0.16 0.06
## CTenure 0.25 0.26 0.24 1.00 0.00 -0.07 0.07 -0.08
## Pop 0.40 0.43 -0.06 0.00 1.00 -0.27 -0.05 0.61
## Comp -0.24 -0.33 0.18 -0.07 -0.27 1.00 0.03 -0.15
## Visibility 0.13 0.14 0.16 0.07 -0.05 0.03 1.00 -0.14
## PedCount 0.42 0.45 0.06 -0.08 0.61 -0.15 -0.14 1.00
## Res -0.17 -0.16 -0.06 -0.34 -0.24 0.22 0.02 -0.28
## Hours24 0.06 -0.03 -0.17 0.07 -0.22 0.13 0.05 -0.28
## CrewSkill 0.16 0.16 0.10 0.26 0.28 -0.04 -0.20 0.21
## MgrSkill 0.31 0.32 0.23 0.12 0.08 0.22 0.07 0.09
## ServQual 0.39 0.36 0.18 0.08 0.12 0.02 0.21 -0.01
## Res Hours24 CrewSkill MgrSkill ServQual
## Sales -0.17 0.06 0.16 0.31 0.39
## Profit -0.16 -0.03 0.16 0.32 0.36
## MTenure -0.06 -0.17 0.10 0.23 0.18
## CTenure -0.34 0.07 0.26 0.12 0.08
## Pop -0.24 -0.22 0.28 0.08 0.12
## Comp 0.22 0.13 -0.04 0.22 0.02
## Visibility 0.02 0.05 -0.20 0.07 0.21
## PedCount -0.28 -0.28 0.21 0.09 -0.01
## Res 1.00 -0.09 -0.15 -0.03 0.09
## Hours24 -0.09 1.00 0.11 -0.04 0.06
## CrewSkill -0.15 0.11 1.00 -0.02 -0.03
## MgrSkill -0.03 -0.04 -0.02 1.00 0.36
## ServQual 0.09 0.06 -0.03 0.36 1.00
correlationPMT <- cor(Store$Profit, Store$MTenure)
round(correlationPMT, 2)
## [1] 0.44
correlationPCT <- cor(Store$Profit, Store$CTenure)
round(correlationPCT, 2)
## [1] 0.26
library(corrgram)
corrgram(Store, order=TRUE, lower.panel=panel.shade,
upper.panel=panel.pie, text.panel=panel.txt,
main="Corrgram of store variables")
PearsoncorrPMT <- cor.test(Store$Profit, Store$MTenure, method = "pearson")
PearsoncorrPMT
##
## 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
PearsoncorrPCT <- cor.test(Store$Profit, Store$CTenure, method = "pearson")
PearsoncorrPCT
##
## 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
model <- lm(Profit ~ MTenure + CTenure + Comp + Pop + PedCount + Res + Hours24 + Visibility, data=Store)
summary(model)
##
## Call:
## lm(formula = Profit ~ MTenure + CTenure + Comp + Pop + PedCount +
## Res + Hours24 + Visibility, data = Store)
##
## 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
## MTenure 760.993 127.086 5.988 9.72e-08 ***
## CTenure 944.978 421.687 2.241 0.028400 *
## Comp -25286.887 5491.937 -4.604 1.94e-05 ***
## Pop 3.667 1.466 2.501 0.014890 *
## PedCount 34087.359 9073.196 3.757 0.000366 ***
## Res 91584.675 39231.283 2.334 0.022623 *
## Hours24 63233.307 19641.114 3.219 0.001994 **
## 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
Expected change in profit if MTenure increases by 1 month would be equal to the beta value for MTenure i.e. $760.993 Similarly, Expected change in profit if CTenure increases by 1 month would be equal to the beta value for CTenure i.e. $944.978
MTenure, CTenure, Comp, Pop, PedCount, Res, Hours24 are the explanatory variable(s) whose beta-coefficients are statistically significant
beta-coefficient for Visibility is not statistically significant since its p-value > 0.05
Since Store24 wants to improve employee retention, it is important to look at ROI on the cost incurred on employee engagement activities, training programs, etc. Also direct appraisals can put significant amount of impact on the business bottom-line, hence it is imperative to analyze the returns to arrive at a strategy which can be profitable.
Based on the regression analysis to quantify the impact of various variables on profit we observe that both ‘Manager Tenure’ and ‘Crew Tenure’ impact profit positively.
The beta values suggest that investing in programs for the Crew has a higher return in the shorter run as compared to investments on Managers. This behavior can be attributed to the fact that a crew member’s learning curve would be exponential in the beginning but it’d flatten out at a faster rate as well. This hypothesis can be explained using the scatter plot between CTenure & profit and a low correlation of 26%.
On the other hand, the tenure for Managers is more widely spread and a high correlation of 44% is observed between MTenure and profit. Also the learning curve of a manager would be flatter but it would sustain growth in the longer run.
Based on the analysis we can suggest that investments should be made to better train crew members early on in their career and reward them for their performance. Managers can be given incentives based on the performance of their team and regular training programs to upgrade their skills would help in reaping longer term benefits.