library(readr)
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
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(ggplot2)

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.
t_test_satisfaction <- t.test(satisfaction_level ~ left, data = hr)
print(t_test_satisfaction)
## 
##  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
hr$left <- factor(hr$left, labels = c("Stayed", "Left"))
ggplot(hr, aes(x = left, y = satisfaction_level, fill = left)) +
  geom_boxplot() +
  labs(title = "Employees with Lower Satisfaction Leave",
       x = "Employee Status", y = "Satisfaction Level") +
  theme_minimal()

t_test_evaluation <- t.test(last_evaluation ~ left, data = hr)
print(t_test_evaluation)
## 
##  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
ggplot(hr, aes(x = last_evaluation, fill = as.factor(left))) +
  geom_histogram(position = "dodge", bins = 30, alpha = 0.7) +
  scale_fill_manual(values = c("green", "red"), labels = c("Stayed", "Left")) +
  labs(title = "Employee Atrittion is not related to evaluation scores",
       x = "Last Evaluation Score",
       y = "Frequency",
       fill = "Employee Status") +
  theme_minimal()

t_test_monthly_hours <- t.test(average_montly_hours ~ left, data = hr)
print(t_test_monthly_hours)
## 
##  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
ggplot(hr, aes(x = left, y = average_montly_hours, fill = left)) +
  geom_boxplot() +
  labs(
    title = "Employees with more monthly hours left the company ",
    x = "Employee Status",
    y = "Average Monthly Hours"
  ) +
  theme_minimal()

t_test_time_spend <- t.test(time_spend_company ~ left, data = hr)
print(t_test_time_spend)
## 
##  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
ggplot(hr, aes(x = left, y = time_spend_company, fill = left)) +
  geom_boxplot() +
  labs(
    title = "Employees who left the company had been with it longer",
    x = "Employee Status",
    y = "Years in Company"
  ) +
  theme_minimal() +
  scale_fill_manual(values = c("green", "red"))