R Markdown

The mean profit is 276314 with a sd of 89404.08 The mean CTenure is 13.93 with sd of 17.7 The mean MTenure is 45.3 with sd of 57.67.

store.df<-read.csv(paste("Store24.csv", sep=""))
library(psych)
## Warning: package 'psych' was built under R version 3.4.3
describe(store.df$Profit)
##    vars  n     mean       sd median  trimmed   mad    min    max  range
## X1    1 75 276313.6 89404.08 265014 270260.3 90532 122180 518998 396818
##    skew kurtosis       se
## X1 0.62    -0.21 10323.49
describe(store.df$CTenure)
##    vars  n  mean   sd median trimmed  mad  min    max  range skew kurtosis
## X1    1 75 13.93 17.7   7.21    10.6 6.14 0.89 114.15 113.26 3.52       15
##      se
## X1 2.04
describe(store.df$MTenure)
##    vars  n mean    sd median trimmed   mad min    max  range skew kurtosis
## X1    1 75 45.3 57.67  24.12   33.58 29.67   0 277.99 277.99 2.01      3.9
##      se
## X1 6.66

Top 10 most profitable stores

newdata<-store.df[order(-store.df$Profit),]
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

Top 10 least profitable stores

newdata<-store.df[order(store.df$Profit),]
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
plot(store.df$CTenure,store.df$Profit, xlab="CTenure", ylab="Profit")
abline(lm(store.df$Profit~store.df$CTenure))

plot(store.df$MTenure,store.df$Profit, xlab="MTenure", ylab="Profit")
abline(lm(store.df$Profit~store.df$MTenure))

library(corrgram)
## Warning: package 'corrgram' was built under R version 3.4.3
corrgram(store.df, lower.panel=panel.shade, upper.panel=panel.pie)

The p-value between Profit and Manager Tenure is 8.193*10^(-5)

cor.test(store.df$Profit, store.df$MTenure)
## 
##  Pearson's product-moment correlation
## 
## data:  store.df$Profit and store.df$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

The p-value for Profit and CrewTenure is profit and CTenure is 0.02562.

cor.test(store.df$Profit, store.df$CTenure)
## 
##  Pearson's product-moment correlation
## 
## data:  store.df$Profit and store.df$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

The significant factors are MTenure, CTenure, Comp, Pop, PedCount, Res and Hours24. (p<0.05) The insignificant factor is Visibility (p>0.05) If MTenure increases by one month, profit is expected to increase by 761. If CTenure increases by one month, profit is expected to increase by 945.

fit<-lm(Profit~MTenure+CTenure+Comp+Pop+PedCount+Res+Hours24+Visibility, data=store.df)
summary(fit)
## 
## Call:
## lm(formula = Profit ~ MTenure + CTenure + Comp + Pop + PedCount + 
##     Res + Hours24 + Visibility, data = store.df)
## 
## 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

EXECUTIVE SUMMARY The study was conducted to analyze the effect of people factors such as manager tenure and crew tenure apart from traditional factors such as pedestrian access, population and number of competitors. Regression analysis was used to fit a model predicting profit using these factors. The R-squared value of 0.6379 means that it can explain around 64% of the variation in profit values. This does not make it a strong model to predict profit values. On checking the factors, apart from Visibility, all the factors were found to be significant. The manager tenure was found to be more strongly correlated to profits than crew tenure, hinting that the new skills being learnt by managers were more important than that of crew members. As expected, profit of a store increased with population density and decreased with number of competitors in the area. Location in residential areas had a significant but weak correlation. 24 hours availability also weakly, but significantly affected profits.Pedestrian access was found to be a significant strong correlator of profits. Hence, hypothesis that people factors were also important apart from traditional ones was confirmed.