# load the HR dataset
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.
1 - t-test: satisfaction level by attrition (left)
# Perform the t-test
t_test_1 <- t.test(satisfaction_level ~ left, data = hr)
# Display the t-test result
t_test_1
##
## 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 0 and group 1 is not equal to 0
## 95 percent confidence interval:
## 0.2171815 0.2362417
## sample estimates:
## mean in group 0 mean in group 1
## 0.6668096 0.4400980
- technical interpretation: yhe p-value is 0,
indicating the statistical significance of the difference in
satisfaction levels between employees who left and those who stayed
- non-technical interpretation: employees who left
the company tend to have lower satisfaction levels compared to those who
stayed
# satisfaction level by attrition
plot_ly(hr, x = ~factor(left, labels = c("Stayed", "Left")), y = ~satisfaction_level, type = 'box') %>%
layout(title = "employees who left tend to have lower satisfaction",
xaxis = list(title = "attrition status"),
yaxis = list(title = "satisfaction level"))
2 - t-test: Average Monthly Hours by Attrition (left)
# perform the t-test
t_test_2 <- t.test(average_montly_hours ~ left, data = hr)
# display the result
t_test_2
##
## 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 0 and group 1 is not equal to 0
## 95 percent confidence interval:
## -10.534631 -6.183384
## sample estimates:
## mean in group 0 mean in group 1
## 199.0602 207.4192
- technical interpretation: the p-value is
5.9070547^{-14}, which tells us the significance of the difference in
average monthly hours between the two groups
- non-technical interpretation: employees who left
the company tend to work more monthly hours compared to those who
stayed
# visualization for average monthly hours by attrition
plot_ly(hr, x = ~factor(left, labels = c("Stayed", "Left")), y = ~average_montly_hours, type = 'box') %>%
layout(title = "employees who left tend to work more hours",
xaxis = list(title = "attrition status"),
yaxis = list(title = "average monthly hours"))
3 - t-test: last evaluation score by attrition (left)
# perform the t-test
t_test_3 <- t.test(last_evaluation ~ left, data = hr)
# display the result
t_test_3
##
## 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 0 and group 1 is not equal to 0
## 95 percent confidence interval:
## -0.009772224 0.004493874
## sample estimates:
## mean in group 0 mean in group 1
## 0.7154734 0.7181126
- technical interpretation: the p-value is 0.468275,
showing the significance of the difference in last evaluation
scores
- non-technical interpretation: employees who left
generally have higher evaluation scores than those who stayed
# visualization for last evaluation score by attrition
plot_ly(hr, x = ~factor(left, labels = c("stayed", "left")), y = ~last_evaluation, type = 'box') %>%
layout(title = "employees who left have higher evaluation scores",
xaxis = list(title = "attrition status"),
yaxis = list(title = "last evaluation score"))
4- t-test: number of projects by attrition (left)
# perform the t-test
t_test_4 <- t.test(number_project ~ left, data = hr)
# display the result
t_test_4
##
## Welch Two Sample t-test
##
## data: number_project by left
## t = -2.1663, df = 4236.5, p-value = 0.03034
## alternative hypothesis: true difference in means between group 0 and group 1 is not equal to 0
## 95 percent confidence interval:
## -0.131136535 -0.006540119
## sample estimates:
## mean in group 0 mean in group 1
## 3.786664 3.855503
- technical interpretation: the p-value is 0.0303407,
indicating the significance of the difference in the number of projects
between the two groups
- non-technical interpretation: employees who left
the company were generally involved in more projects than those who
stayed
# visualization for number of projects by attrition
plot_ly(hr, x = ~factor(left, labels = c("stayed", "left")), y = ~number_project, type = 'box') %>%
layout(title = "employees who left were involved in more projects",
xaxis = list(title = "attrition status"),
yaxis = list(title = "number of projects"))