Data set used is as follows:
setwd("C:\\Users\\Tejajay\\Desktop\\Internship\\3. Data Analytics")
store24 <- read.csv(paste("Store24.csv", sep=""))
View(store24)
Mean and standard deviation of profit, manager’s tenure and crew’s tenure:
mean(store24$Profit)
## [1] 276313.6
sd(store24$Profit)
## [1] 89404.08
mean(store24$MTenure)
## [1] 45.29644
sd(store24$MTenure)
## [1] 57.67155
mean(store24$CTenure)
## [1] 13.9315
sd(store24$CTenure)
## [1] 17.69752
10 least profitable stores:
attach(store24)
View(store24)
newdata <- store24[order(Profit),]
View(newdata)
newdata[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
10 most profitable stores:
newdata <- store24[order(-Profit),]
View(newdata)
newdata[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
detach(store24)
Scatterplot- Profit vs Manager’s Tenure
attach(store24)
plot(MTenure, Profit, main = "Profit vs MTenure", xlab = "MTenure", ylab = "Profit")
abline(lm(Profit~MTenure), col="red")
lines(lowess(MTenure, Profit), col="green")
Scatterplot- Profit vs Crew’s Tenure
plot(CTenure, Profit, main = "Profit vs CTenure", xlab = "CTenure", ylab = "Profit")
abline(lm(Profit~CTenure), col="red")
lines(lowess(CTenure, Profit), col="green")
Correlation Matrices:
Overall correlations:
cormat <- cor(store24)
round(cormat, 2)
## store Sales Profit MTenure CTenure Pop Comp Visibility
## store 1.00 -0.23 -0.20 -0.06 0.02 -0.29 0.03 -0.03
## Sales -0.23 1.00 0.92 0.45 0.25 0.40 -0.24 0.13
## Profit -0.20 0.92 1.00 0.44 0.26 0.43 -0.33 0.14
## MTenure -0.06 0.45 0.44 1.00 0.24 -0.06 0.18 0.16
## CTenure 0.02 0.25 0.26 0.24 1.00 0.00 -0.07 0.07
## Pop -0.29 0.40 0.43 -0.06 0.00 1.00 -0.27 -0.05
## Comp 0.03 -0.24 -0.33 0.18 -0.07 -0.27 1.00 0.03
## Visibility -0.03 0.13 0.14 0.16 0.07 -0.05 0.03 1.00
## PedCount -0.22 0.42 0.45 0.06 -0.08 0.61 -0.15 -0.14
## Res -0.03 -0.17 -0.16 -0.06 -0.34 -0.24 0.22 0.02
## Hours24 0.03 0.06 -0.03 -0.17 0.07 -0.22 0.13 0.05
## CrewSkill 0.05 0.16 0.16 0.10 0.26 0.28 -0.04 -0.20
## MgrSkill -0.07 0.31 0.32 0.23 0.12 0.08 0.22 0.07
## ServQual -0.32 0.39 0.36 0.18 0.08 0.12 0.02 0.21
## PedCount Res Hours24 CrewSkill MgrSkill ServQual
## store -0.22 -0.03 0.03 0.05 -0.07 -0.32
## Sales 0.42 -0.17 0.06 0.16 0.31 0.39
## Profit 0.45 -0.16 -0.03 0.16 0.32 0.36
## MTenure 0.06 -0.06 -0.17 0.10 0.23 0.18
## CTenure -0.08 -0.34 0.07 0.26 0.12 0.08
## Pop 0.61 -0.24 -0.22 0.28 0.08 0.12
## Comp -0.15 0.22 0.13 -0.04 0.22 0.02
## Visibility -0.14 0.02 0.05 -0.20 0.07 0.21
## PedCount 1.00 -0.28 -0.28 0.21 0.09 -0.01
## Res -0.28 1.00 -0.09 -0.15 -0.03 0.09
## Hours24 -0.28 -0.09 1.00 0.11 -0.04 0.06
## CrewSkill 0.21 -0.15 0.11 1.00 -0.02 -0.03
## MgrSkill 0.09 -0.03 -0.04 -0.02 1.00 0.36
## ServQual -0.01 0.09 0.06 -0.03 0.36 1.00
Profit vs Manager’s Tenure:
cormat1 <- cor(store24$Profit, store24$MTenure)
round(cormat1, 2)
## [1] 0.44
Profit vs Crew’s Tenure:
cormat2 <- cor(store24$Profit, store24$CTenure)
round(cormat2, 2)
## [1] 0.26
Corrgram based on all variables:
corrgram::corrgram(store24)
Pearson’s Tests:
Profit vs Manager’s Tenure:
cor.test(Profit, MTenure, method = "pearson")
##
## Pearson's product-moment correlation
##
## data: Profit and 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
Profit vs Crew’s Tenure:
cor.test(Profit, CTenure, method = "pearson")
##
## Pearson's product-moment correlation
##
## data: Profit and 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
Regression analysis:
fit <- lm(Profit ~ MTenure + CTenure + Comp + Pop + PedCount + Res + Hours24 + Visibility, data = store24)
summary(fit)
##
## Call:
## lm(formula = Profit ~ MTenure + CTenure + Comp + Pop + PedCount +
## Res + Hours24 + Visibility, data = store24)
##
## 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
The statistically significant variables: Manager’s Tenure, Crew’s Tenure, Number of competitors within 0.5 mile radius, population per 0.5 mile radius, pedestrian traffic, whether open for 24 hours or not.
Statistically insignificant variables: Visibility.
The above statements (regarding statistical significance) tell us about whether we can reject the null hypothesis. Here, a null hypothesis is one that assumes that any difference between the specified populations (in this case, the various profit margins) is only due to computing and sampling error.
According to regression analysis, if p value is less than 0.05, this indicates strong evidence against the null hypothesis, allowing us to reject the null hypothesis. Such values are said to be statistically significant. This means that variables such as manager’s tenure, crew’s tenure, pedestrian traffic etc. can affect and influence the differences between profit margins. More importantly, these variables tell us that the differences are due to important reasons, and not merely due to sampling errors. On the same note, the only “Statistically insignificant” variable is visibility, where p is greater than 0.05. This means that, as far as visibility is concerned, the profit differences are due to sampling errors. Thus, we can conclude that visibility does not affect the profit in any way whatsoever.
From the scatterplots, we can see that profit seems to increase linearly with increase in manager’s tenure. It is similarly so with crew’s tenure, but the plot is not as linear as in the former case. This tells us that it doesn’t matter how long the crew has worked, but it is important that the manager has had a significantly long tenure to increase profits. In practical terms, this means that in order to maximise profits, the manager must do two things: a. Hire a store manager with good experience b. Keep them on the job for a long time, by providing them with sufficient incentives and job motivation and satisfaction.
Quantitatively speaking, there is a 44% correlation between profit and manager’s tenure. Whereas, there is a 26% correlation between profit and crew’s tenure.