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.
TEST 1:
hr <- hr %>% mutate(left = factor(left, labels = c("Stayed", "Left")))
t1 <- t.test(satisfaction_level ~ left, data = hr)
t1
##
## Welch Two Sample t-test
##
## data: satisfaction_level by left
## t = 46.636, df = 5167, p-value < 2.2e-16
## alternative hypothesis: true difference in means between group Stayed and group Left is not equal to 0
## 95 percent confidence interval:
## 0.2171815 0.2362417
## sample estimates:
## mean in group Stayed mean in group Left
## 0.6668096 0.4400980
plot_ly(hr,
x = ~left,
y = ~satisfaction_level,
type = "box") %>%
layout(title = "Employees who left had lower satisfaction levels")
TEST 2:
t2 <- t.test(average_montly_hours ~ left, data = hr)
t2
##
## Welch Two Sample t-test
##
## data: average_montly_hours by left
## t = -7.5323, df = 4875.1, p-value = 5.907e-14
## alternative hypothesis: true difference in means between group Stayed and group Left is not equal to 0
## 95 percent confidence interval:
## -10.534631 -6.183384
## sample estimates:
## mean in group Stayed mean in group Left
## 199.0602 207.4192
plot_ly(hr,
x = ~left,
y = ~average_montly_hours,
type = "box") %>%
layout(title = "Employees who left tended to work more hours")
TEST 3:
t3 <- t.test(last_evaluation ~ left, data = hr)
t3
##
## Welch Two Sample t-test
##
## data: last_evaluation by left
## t = -0.72534, df = 5154.9, p-value = 0.4683
## alternative hypothesis: true difference in means between group Stayed and group Left is not equal to 0
## 95 percent confidence interval:
## -0.009772224 0.004493874
## sample estimates:
## mean in group Stayed mean in group Left
## 0.7154734 0.7181126
plot_ly(hr,
x = ~left,
y = ~last_evaluation,
type = "box") %>%
layout(title = "Employees who left had different evaluation scores")
TEST 4:
t4 <- t.test(time_spend_company ~ left, data = hr)
t4
##
## Welch Two Sample t-test
##
## data: time_spend_company by left
## t = -22.631, df = 9625.6, p-value < 2.2e-16
## alternative hypothesis: true difference in means between group Stayed and group Left is not equal to 0
## 95 percent confidence interval:
## -0.5394767 -0.4534706
## sample estimates:
## mean in group Stayed mean in group Left
## 3.380032 3.876505
plot_ly(hr,
x = ~left,
y = ~time_spend_company,
type = "box") %>%
layout(title = "Employees who left spent more years at the company")