library(readr)
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(plotly)
## Loading required package: ggplot2
## 
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
## 
##     last_plot
## The following object is masked from 'package:stats':
## 
##     filter
## The following object is masked from 'package:graphics':
## 
##     layout
hr <- read_csv('https://raw.githubusercontent.com/aiplanethub/Datasets/refs/heads/master/HR_comma_sep.csv')
## Rows: 14999 Columns: 10
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (2): Department, salary
## dbl (8): satisfaction_level, last_evaluation, number_project, average_montly...
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
hr1 <- hr %>% 
  mutate(Employee_Status = as.factor(ifelse(left == 0 , 'Stayed' , 'Left')))

Question 1

t.test(hr1$average_montly_hours ~ hr1$Employee_Status)
## 
##  Welch Two Sample t-test
## 
## data:  hr1$average_montly_hours by hr1$Employee_Status
## t = 7.5323, df = 4875.1, p-value = 5.907e-14
## alternative hypothesis: true difference in means between group Left and group Stayed is not equal to 0
## 95 percent confidence interval:
##   6.183384 10.534631
## sample estimates:
##   mean in group Left mean in group Stayed 
##             207.4192             199.0602
There is a significant difference between means, where employees that left work atleast 6 more hours
Descriptive: Employees that left, on average, work more hours, at least 3% more
Prescriptive: To reduce employeee attrition, average monthly hours can be reduced by 3%, for those that work longer hours
plot_ly(hr1 ,
        x = ~Employee_Status ,
        y = ~average_montly_hours ,
        type = 'box' ,
        color = ~Employee_Status ,
        colors = c('#e35c22', '#e322ac'))%>%
layout(title = 'Employees that left, on average, work more hours, at least 3% more')

Question 2

t.test(hr1$last_evaluation ~ hr1$Employee_Status)
## 
##  Welch Two Sample t-test
## 
## data:  hr1$last_evaluation by hr1$Employee_Status
## t = 0.72534, df = 5154.9, p-value = 0.4683
## alternative hypothesis: true difference in means between group Left and group Stayed is not equal to 0
## 95 percent confidence interval:
##  -0.004493874  0.009772224
## sample estimates:
##   mean in group Left mean in group Stayed 
##            0.7181126            0.7154734
There is not a statistically significant difference between the means. The p-value is greater than the significance level
Descriptive: There is no strong evidence that employee status has any real impact on evaluation score
Prescriptive: Because there is no strong coorelation, evaluations are consistent across groups and nothing needs to be changed
plot_ly(hr1 ,
        x = ~Employee_Status ,
        y = ~last_evaluation ,
        type = 'box' ,
        color = ~Employee_Status ,
        colors = c('#84e336', '#004cbf'))%>%
  layout(title = 'No evidence that Employee Status has impact on Evaluation Score')

Question 3

t.test(hr1$satisfaction_level ~ hr1$Employee_Status)
## 
##  Welch Two Sample t-test
## 
## data:  hr1$satisfaction_level by hr1$Employee_Status
## t = -46.636, df = 5167, p-value < 2.2e-16
## alternative hypothesis: true difference in means between group Left and group Stayed is not equal to 0
## 95 percent confidence interval:
##  -0.2362417 -0.2171815
## sample estimates:
##   mean in group Left mean in group Stayed 
##            0.4400980            0.6668096
There is a significant difference between means, where employees that left have a lower satisfaction level by .22. The P-value was much lower than our signifance level of .001.
Descriptive: Employees that left, on average, had a lower satisfaction level by nearly 33%
Prescriptive: To reduce employee attrition, implement more ways to make employees more satisfied
plot_ly(hr1 ,
        x = ~Employee_Status ,
        y = ~satisfaction_level ,
        type = 'box' ,
        color = ~Employee_Status ,
        colors = c('#d40012', '#ebdf07'))%>%
  layout(title = 'Employees that left, on average, had a lower satisfaction level by nearly 33%')

Question 4

t.test(hr1$number_project ~ hr1$Employee_Status)
## 
##  Welch Two Sample t-test
## 
## data:  hr1$number_project by hr1$Employee_Status
## t = 2.1663, df = 4236.5, p-value = 0.03034
## alternative hypothesis: true difference in means between group Left and group Stayed is not equal to 0
## 95 percent confidence interval:
##  0.006540119 0.131136535
## sample estimates:
##   mean in group Left mean in group Stayed 
##             3.855503             3.786664
There is not a significant difference between means, where employees left based on the number of projects they were included in. The P-value of .03 is much higher than our signicance level of .001.
Descriptive: There is no strong evidence that employee status has any real impact on number of projects
Prescriptive: Because there is no strong coorelation, number of projects has no effect on employee status
plot_ly(hr1 ,
        x = ~Employee_Status ,
        y = ~number_project ,
        type = 'box' ,
        color = ~Employee_Status ,
        colors = c('#9707eb', '#07eba3'))%>%
  layout(title = 'No strong evidence that employee status has any impact on number of projects')