Analiza danych_HR
1 Wprowadzenie
Cel projektu: Celem niniejszego projektu jest analiza zbioru danych HR pod kątem identyfikacji przyczyn rotacji pracowników. Jest to kluczowe zagadnienie biznesowe, ponieważ koszty związane z rekrutacją i onboardingiem (wraz z utraconą produktywnością) szacuje się na 50–200% rocznego wynagrodzenia odchodzącego pracownika.
Zakres analizy: W projekcie zwróciliśmy szczególną uwagę na znalezienie zależności między odejściem pracownika a zmiennymi takimi jak: nadgodziny, wynagrodzenie, wiek czy środowisko pracy. Analiza ma na celu wskazanie obszarów, które wymagają działań prewencyjnych.
Struktura raportu: Raport składa się z: wprowadzenia, data cleansing oraz data wrangling, wizualizacji danych, wnioskowania oraz podsumowania i wniosków końcowych.
Dane: Zbiór danych zawiera 1470 wierszy oraz 35 kolumn.
1.1 Pytania badawcze
Czy nadgodziny i niskie zadowolenie ze środowiska zwiększają ryzyko odejścia pracownika?
Czy pracownicy z niższym miesięcznym wynagrodzeniem lub rzadkimi awansami odchodzą częściej?
Jaka jest charakterystyka (wiek, staż pracy) pracownika, który najczęściej decyduje się na odejście?
Które działy oraz stanowiska są najbardziej narażone na odejścia pracowników?
1.2 Opis danych
Analizowany zbiór danych zawiera informacje dotyczące pracowników firmy.
Zmienne w zbiorze danych można podzielić na następujące kategorie:
Zmienna Objaśniana: Attrition: Zmienna kategoryczna wskazująca na to, czy pracownik odszedł z firmy.
Zmienne Demograficzne i Osobiste: Age: Wiek pracownika (Lata) Gender: Płeć pracownika. MaritalStatus: Stan cywilny (Single, Married, Divorced). Education: Poziom wykształcenia (1-5). EducationField: Dziedzina wykształcenia (np. Life Sciences, Medical). DistanceFromHome: Odległość od domu.
Zmienne Związane z Pracą oraz Rolą: Department: Dział, w którym pracuje dana osoba (Sales, R&D, HR). JobRole: Konkretne stanowisko, które zajmuję dana osoba (np. Sales Executive, Laboratory Technician). JobLevel: Poziom stanowiska w strukturze firmy. BusinessTravel: Częstotliwość podróży służbowych (Rarely, Frequently, Non-Travel). OverTime: Czy pracownik pracuje w godzinach ponadwymiarowych (Yes/No).
Wynagrodzenie i Benefity: MonthlyIncome: Miesięczne wynagrodzenie. DailyRate, HourlyRate, MonthlyRate: Stawki płacowe w różnych ujęciach czasowych. PercentSalaryHike: Procentowa podwyżka wynagrodzenia. StockOptionLevel: Poziom opcji na akcje pracownicze.
Satysfakcja i Oceny: EnvironmentSatisfaction: Zadowolenie ze środowiska pracy. JobSatisfaction: Zadowolenie z wykonywanej pracy. WorkLifeBalance: Ocena równowagi między życiem zawodowym a prywatnym. RelationshipSatisfaction: Satysfakcja z relacji ze współpracownikami. PerformanceRating: Ocena wydajności pracownika.
Historia Zatrudnienia: TotalWorkingYears: Całkowity staż pracy (lata). YearsAtCompany: Liczba lat przepracowanych w obecnej firmie. YearsInCurrentRole: Czas na obecnym stanowisku (lata). YearsSinceLastPromotion: Czas, który upłynął od ostatniego awansu (lata). YearsWithCurrManager: Czas pracy z obecnym menedżerem (lata).
2 Porządkowanie i czyszczenie danych
2.1 Braki danych
W danych znajduje sie (91.43 %) kompletnych wartości.
Kompletność zmiennych: W tym kroku sprawdziliśmy to, jaka część kolumn w zbiorze jest całkowicie wolna od brakujących informacji. Obliczenia wykazały, że 91.43% zmiennych jest w pełni kompletnych. Oznacza to, że problem braków danych dotyczy jedynie ok. 8.6% kolumn.
Ogólny poziom braków: Sprawdziliśmy globalny odsetek
brakujących komórek w całym arkuszu danych. Powyższa wizualizacja
wskazuje na to, że jedynie 0.8% wszystkich wartości to braki (kolor
czarny), podczas gdy 99.2% danych jest dostępnych (kolor szary). Warto
zwrócić uwagę na to, że braki nie występują losowo w całym zbiorze, lecz
koncentrują się w konkretnych kolumnach (widoczne, czarne pasy na
wykresie). Sugeruje nam to, iż zaobserwowane braki mają charakter
systematyczny dla wybranych cech, a nie są wynikiem przypadkowych błędów
zapisu dla całego zbioru.
2.2 Wizualizacje połączeń w brakach danych
W tej sekcji zastosowaliśmy wizualizację współwystępowania braków, aby zrozumieć ich strukturę w kolumnach Age, Attrition i MonthlyIncome. Naszym celem było sprawdzenie tego, czy wykryte przez nas braku układają się we wzorce.
Analiza powyższego wykresu wskazuje na to, iż braki w kolumnach Age, Attrition i MonthlyIncome współwystępują w mniej niż 3% przypadków. Oznacza to brak ukrytych zależności między nimi i sugeruje ich losowy charakter.
Uzupełniając naszą analizę, wygenerowaliśmy wykres macierzowy, którego celem jest zweryfikowanie, czy braki danych grupują się w specyficznych obszarach zbioru czy są równomiernie rozproszone. Pozwoli nam to wykluczyć błędy techniczne powstałe na etapie wprowadzania danych.
## BusinessTravel DailyRate Department DistanceFromHome Education
## 1105 1 1 1 1 1
## 128 1 1 1 1 1
## 125 1 1 1 1 1
## 12 1 1 1 1 1
## 78 1 1 1 1 1
## 9 1 1 1 1 1
## 12 1 1 1 1 1
## 1 1 1 1 1 1
## 0 0 0 0 0
## EducationField EmployeeCount EmployeeNumber EnvironmentSatisfaction Gender
## 1105 1 1 1 1 1
## 128 1 1 1 1 1
## 125 1 1 1 1 1
## 12 1 1 1 1 1
## 78 1 1 1 1 1
## 9 1 1 1 1 1
## 12 1 1 1 1 1
## 1 1 1 1 1 1
## 0 0 0 0 0
## HourlyRate JobInvolvement JobLevel JobRole JobSatisfaction MaritalStatus
## 1105 1 1 1 1 1 1
## 128 1 1 1 1 1 1
## 125 1 1 1 1 1 1
## 12 1 1 1 1 1 1
## 78 1 1 1 1 1 1
## 9 1 1 1 1 1 1
## 12 1 1 1 1 1 1
## 1 1 1 1 1 1 1
## 0 0 0 0 0 0
## MonthlyRate NumCompaniesWorked Over18 OverTime PercentSalaryHike
## 1105 1 1 1 1 1
## 128 1 1 1 1 1
## 125 1 1 1 1 1
## 12 1 1 1 1 1
## 78 1 1 1 1 1
## 9 1 1 1 1 1
## 12 1 1 1 1 1
## 1 1 1 1 1 1
## 0 0 0 0 0
## PerformanceRating RelationshipSatisfaction StandardHours StockOptionLevel
## 1105 1 1 1 1
## 128 1 1 1 1
## 125 1 1 1 1
## 12 1 1 1 1
## 78 1 1 1 1
## 9 1 1 1 1
## 12 1 1 1 1
## 1 1 1 1 1
## 0 0 0 0
## TotalWorkingYears TrainingTimesLastYear WorkLifeBalance YearsAtCompany
## 1105 1 1 1 1
## 128 1 1 1 1
## 125 1 1 1 1
## 12 1 1 1 1
## 78 1 1 1 1
## 9 1 1 1 1
## 12 1 1 1 1
## 1 1 1 1 1
## 0 0 0 0
## YearsInCurrentRole YearsSinceLastPromotion YearsWithCurrManager Age
## 1105 1 1 1 1
## 128 1 1 1 1
## 125 1 1 1 1
## 12 1 1 1 1
## 78 1 1 1 0
## 9 1 1 1 0
## 12 1 1 1 0
## 1 1 1 1 0
## 0 0 0 100
## Attrition MonthlyIncome
## 1105 1 1 0
## 128 1 0 1
## 125 0 1 1
## 12 0 0 2
## 78 1 1 1
## 9 1 0 2
## 12 0 1 2
## 1 0 0 3
## 150 150 400
Wykres ukazuje równomierne rozproszenie brakujących wartości w kolumnach Age, Attrition i MonthlyIncome. Brak widocznych, zwartych bloków czy klastrów pustych danych ostatecznie potwierdza, że mamy do czynienia z losowymi brakami, a nie systemowym błędem.
Aby zweryfikować nasze wnioski z poprzednich wykresów, stworzyliśmy heatmap korelacji braków. Sprawdza ona, czy istnienie braku w jednej zmiennej zwiększa statystyczne prawdopodobieństwo wystąpienia braku w innej.
Współczynniki korelacji między brakami są bliskie zeru. Oznacza to brak
istotnych statystycznie powiązań. Potwierdza to ostatecznie, że
mechanizm powstawania braków jest losowy i nie wymaga stosowania
zaawansowanych modeli do ich modelowania.
2.3 Inputacja metodą Hot-Deck
Zastosowano metodę imputacji Hot-Deck. Jest to technika, w której brakujące wartości są uzupełniane danymi od losowo wybranego “podobnego” rekordu (sąsiada) w zbiorze danych. Metoda ta jest lepsza od uzupełniania średnią, ponieważ pozwala zachować naturalny rozkład zmiennych i ich wariancję.
2.4 Analiza wartości odstających
2.4.1 Sprawdzamy kluczowe zmienne numeryczne pod kątem “outlierów”
Wykresy pudełkowe wskazują na obecność wartości odstających (kropek) w
zmiennych
MonthlyIncome oraz
TotalWorkingYears. Jest to zjawisko naturalne w strukturze
korporacyjnej – wartości te reprezentują kadrę zarządzającą (Managerów i
Dyrektorów) z wieloletnim stażem i wyższymi zarobkami. Nie są to błędy
danych, dlatego nie zostaną usunięte z dalszej analizy.
3 Walidacja danych
W celu sprawdzenia spójności logicznej danych, poniżej zdefiniowaliśmy reguły, które zostały zestawione z rzeczywistym zbiorem danych za pomocą funkcji confront().
Reguły walidacji danych:
- Staż w firmie (YearsAtCompany) musi być mniejszy lub równy całkowitemu stażowi pracy (TotalWorkingYears).
- Czas na obecnym stanowisku (YearsInCurrentRole) musi być mniejszy lub równy stażowi w firmie (YearsAtCompany).
- Czas pracy z obecnym menedżerem (YearsWithCurrManager) musi być mniejszy lub równy stażowi w firmie (YearsAtCompany).
- Lata od ostatniego awansu (YearsSinceLastPromotion) muszą być mniejsze lub równe stażowi w firmie (YearsAtCompany).
Całkowity staż pracy (TotalWorkingYears): Sprawdziliśmy spójność między stażem w obecnej firmie a całkowitym doświadczeniem zawodowym. W tym celu zweryfikowaliśmy, czy YearsAtCompany jest mniejsze lub równe TotalWorkingYears. Nie znaleziono żadnych przypadków naruszenia tej reguły, co oznacza, że u każdego pracownika staż w obecnym przedsiębiorstwie mieści się w ramach jego całkowitej kariery.
Staż na obecnym stanowisku (YearsInCurrentRole): Sprawdziliśmy, czy czas spędzony na obecnym stanowisku nie przekracza całkowitego czasu zatrudnienia w firmie. Przetestowaliśmy warunek, w którym YearsInCurrentRole powinno być mniejsze lub równe YearsAtCompany. Wszystkie obserwacje spełniają to kryterium, co potwierdza logiczną poprawność danych dotyczących ścieżki kariery wewnątrz organizacji.
Czas pracy z obecnym menedżerem (YearsWithCurrManager): Sprawdziliśmy, czy okres współpracy z obecnym przełożonym jest możliwy w świetle stażu pracownika w firmie. Zbadaliśmy zgodność z regułą YearsWithCurrManager <= YearsAtCompany. Nie odnotowano żadnych błędów, co wskazuje, że relacje podległości są poprawnie osadzone w czasie trwania zatrudnienia.
Czas od ostatniego awansu (YearsSinceLastPromotion): Sprawdziliśmy, czy liczba lat, która upłynęła od ostatniego awansu, nie jest większa niż całkowity staż w firmie. Weryfikowano rekordy pod kątem warunku YearsSinceLastPromotion <= YearsAtCompany. Nie znaleziono sprzeczności, co oznacza, że historia awansów jest logicznie spójna z datą rozpoczęcia pracy w firmie.
4 Wizualizacja danych
Wykres słupkowy przedstawiony powyżej pokazuje zestawienie średniego
miesięcznego wynagrodzenia w podziale na trzy główne działy firmy: Human
Resources, Research & Development oraz Sales.
Z danych wynika, że najlepiej opłacaną jednostką organizacyjną jest dział HR z przeciętną pensją na poziomie 7 060. Na drugim miejscu plasuje się Sprzedaż (6 952). Najniższe średnie wynagrodzenie, wynoszące 6 258, zaobserwowano w dziale Badawczo-Rozwojowym (R&D).
Powyższy wykres przedstawia szczegółową strukturę miesięcznych dochodów
w podziale na działy (Department) oraz poziom stanowiska (JobLevel w
skali 1–5).
Zmienność danych (Rozstęp): W działach Research & Development oraz Sales warto zwrócić szczególną uwagę na znaczną rozpiętość wynagrodzeń na średnich oraz wyższych poziomach stanowisk (szczególnie poziomy 3 i 4), co pokazuję wysokość “pudełek”. Wskazuje to na fakt, iż na tych stanowiskach widełki płacowe są bardzo elastyczne.
Wartości odstające (Outliers): Wykres ujawnia obecność licznych wartości odstających (oznaczonych czarnymi * punktami), szczególnie w dziale Research & Development na niższych poziomach stanowisk. Może to wskazywać na występowanie specyficznych ról specjalistycznych, które są wyceniane wyżej niż standardowe wynagrodzenie dla danego poziomu stanowiska.
Ciekawy przypadek działu HR: Szczególną uwagę należy zwrócić na dział HR, który wykazuje węższy rozkład danych na większości poziomów w porównaniu do działów Sales oraz R&D. Może to nam sugerować mniejszą liczebności próby w tym dziale lub bardziej ustandaryzowaną siatkę płac.
Wykres przedstawiony powyżej pozwala nam zweryfikować hipotezę, czy
praca w godzinach nadliczbowych (OverTime) bezpośrednio przekłada się na
niezadowolenie pracowników, a także czy płeć ma w tym kontekście
znaczenie. Wykres podzieliliśmy na dwie sekcje: osoby nie wykonujące
pracy w godzinach nadliczbowowych oraz te, które je wykonują.
Wnioski:
Destrukcyjny wpływ nadgodzin na satysfakcję z pracy: Porównując oba panele, wyraźnie widać, że w grupie osób pracujących w godzinach nadliczbowych (OverTime: Yes) dominuje niska satysfakcja (Low). W przypadku grupy nie wykonujących pracu w godzinach nadliczbowych rozkład ocen jest bardziej zrównoważony.
Krytyczna sytuacja wśród mężczyzn: Mężczyźni pracujący w godzinach nadliczbowych stanowią najliczniejszą grupę o niskiej satysfakcji (najwyższy słupek na całym wykresie, powyżej 20 osób), a jednocześnie najmniej liczną grupę o satysfakcji bardzo wysokiej (zaledwie kilka osób). Wskazuje to na to, że mężczyźni znacznie gorzej znoszą dodatkowe obciążenie pracą lub bardziej obciążeni pracą w godzinach nadliczbowych.
Kobiety a nadgodziny: Warto zauważyć, że w grupie kobiet (Female) pracujących w godzinach nadliczbowych, mimo znaczącej ilości niskich ocen, słupek satysfakcji “Very High” jest relatywnie wysoki – wyższy niż u mężczyzn w takiej samej sytuacji. Może to sugerować inne czynniki motywujące lub inną specyfikę stanowisk zajmowanych przez kobiety.
Kluczowe wnioski: Wykres jednoznacznie wskazuje na to, że praca w godzinach nadliczbowych jest istotnie powiązana z niższą satysfkacją z pracy. Szczególną grupą ryzyka, u której należy spodziewać się rotacji, są mężczyźni pracujący w godzinach nadliczbowych. To właśnie w tej grupie firma powinna najpilniej zweryfikować work-life balance, jeśli zależy jej na zapobieganiu odejściom z pracy.
5 Statystyki Opisowe
| JobLevel | Min | Max | Średnia | Odchylenie | Mediana | Q1 | Q3 | Skośność | Kurtoza |
|---|---|---|---|---|---|---|---|---|---|
| 1 | 1051 | 19859 | 3140.04 | 1836.16 | 2718 | 2333.50 | 3443 | 5.45 | 39.34 |
| 2 | 1261 | 19926 | 5602.80 | 2268.47 | 5325 | 4449.25 | 6341 | 3.08 | 15.92 |
| 3 | 1051 | 19246 | 9600.42 | 2420.79 | 9886 | 8011.00 | 10785 | -0.23 | 2.30 |
| 4 | 2232 | 17924 | 14364.56 | 3907.77 | 15982 | 13356.25 | 16885 | -1.77 | 2.48 |
| 5 | 3294 | 19973 | 18078.90 | 3821.39 | 19197 | 18722.00 | 19566 | -3.08 | 8.08 |
Tabela powyżej przedstawia zestawienie kluczowych statystyk opisowych dla zmiennej MonthlyIncome w podziale na JobLevel.
Najistotniejsze wnioski:
Progresja wynagrodzeń: Obserwujemy wyraźny, wzrost przeciętnych zarobków wraz z poziomem stanowiska (od ok. 2 796 do 19 192). Najbardziej dynamiczny skok płacowy (niemal dwukrotny) występuje przy awansie z poziomu 1 na 2.
Min, max oraz kwartyle: Analiza kwartyli (Q1, Q3) wskazuje na wyraźne rozdzielenie przedziałów płacowych pomiędzy poziomami. Uwagę zwraca poziom 5, gdzie mimo najwyższych wartości (Min: 18 041, Max: 19 973), rozstęp jest najwęższy w zestawieniu. Może to wskazywać na sztywne widełki oraz małą elastyczności płac na najwyższym szczeblu.
Skośność: Wraz z awansem następuje inwersja asymetrii - na poziomach niższych (1-3) skośność jest dodatnia - dominują zarobki bliższe minimum, z kolei na wyższych poziomach (4-5) staje się ujemna, oznacza to, że masa rozkładu przesuwa się w stronę wartości maksymalnych).
W celu zidentyfikowania powiązań w zbiorze danych, przeprowadziliśmy
powyżej analizę korelacji liniowej (Pearsona) oraz rangowej
(Kendalla).
Kluczowymi wnioskami wynikającymi z naszej analizy jest m.in. zidentyfikowanie umiarkowanej, dodatniej korelacji pomiędzy dochodem a całkowitym stażem pracy, co jest silniejszym związkiem niż w przypadku wieku pracownika. Warto również zwrócić uwagę na fakt, iż maksymalne wartości współczynników nie przekraczają progu silnej korelacji.
6 Wnioskowanie Statystyczne
W tej sekcji zweryfikujemy hipotezy badawcze postawione we wstępie, wykorzystując testy statystyczne.
6.1 Testy normalności rozkładu
Przed wyborem odpowiednich testów (parametryczne vs nieparametryczne)
sprawdzamy rozkład zmiennej MonthlyIncome.
## [1] "Wartość p dla testu normalności wynagrodzenia: 3.7e-24"
## [1] "Odrzucamy hipotezę o normalności rozkładu. Do analizy zależności zastosujemy testy nieparametryczne (np. U Manna-Whitneya)."
Uzyskana przez nas wartość p-value nakazuje odrzucenie hipotezy zerowej o normalności rozkładu. Ze względu na niespełnienie założenia parametrycznego, do dalszej analizy zmiennej “MonthlyIncome” zastosujemy testy nieparametryczne.
7 Odpowiedź na pytanie badawcze nr 1: Wpływ nadgodzin i środowiska
7.1 Czy nadgodziny (OverTime) zwiększają rotację?
Interpretacja: Wykres oraz test statystyczny wskazują na bardzo silną
zależność. W grupie pracowników mających nadgodziny (Yes), odsetek
odejść jest trzykrotnie wyższy (~30%) niż w grupie pracującej w normie
(~10%). Nadgodziny są kluczowym czynnikiem ryzyka.
7.2 Czy zadowolenie ze środowiska (EnvironmentSatisfaction) ma znaczenie?
Interpretacja: Widoczny jest trend, w którym pracownicy oceniający
środowisko jako “Niskie” (Low) odchodzą częściej niż ci z oceną “Bardzo
wysoką” (Very High). Niska satysfakcja z biura/atmosfery sprzyja
decyzjom o odejściu.
8 Odpowiedź na pytanie badawcze nr 2: Finanse a odejścia
Interpretacja: Test Manna-Whitneya wykazuje istotną różnicę (p <
0.001). Mediana zarobków osób odchodzących (ok. 3200) jest znacznie
niższa od mediany osób pozostających w firmie (ok. 5200). Wynagrodzenie
jest zatem silnym motywatorem odejść.
9 Odpowiedź na pytanie badawcze nr 3: Profil demograficzny (Wiek)
Interpretacja: Osoby decydujące się na odejście są statystycznie młodsze (mediana wieku ~32 lata) niż pracownicy lojalni (mediana ~36 lat). Firma ma największy problem z utrzymaniem młodych talentów.
10 Odpowiedź na pytanie badawcze nr 4: Analiza Działów (Departments)
Interpretacja: Dział Sprzedaży (Sales) jest najbardziej narażony na
rotację – odsetek odejść przekracza tu 20%. Dział Badawczo-Rozwojowy
(R&D) cechuje się największą stabilnością kadry.
11 Wnioski końcowe
Celem niniejszej pracy było zidentyfikowanie kluczowych czynników finansowych oraz organizacyjnych wpływających na rotację pracowników – cel ten udało się osiągnąć. Przeprowadzona analiza statystyczna pozwoliła wyodrębnić główne determinanty odejść, którymi okazały się: poziom wynagrodzenia, obciążenie nadgodzinami oraz wiek pracownika.
11.1 Kluczowe wyniki
Czynnik finansowy: Istnieje drastyczna dysproporcja w zarobkach. Mediana wynagrodzenia osób odchodzących jest aż o 40% niższa niż osób lojalnych. Jest to kluczowy czynnik determinujący decyzję o zmianie pracy.
Wypalenie zawodowe: Nadgodziny są krytycznym obciążeniem – ich występowanie trzykrotnie zwiększa ryzyko odejścia.
Profil ryzyka: Najczęściej odchodzą pracownicy młodzi oraz zatrudnieni w Dziale Sprzedaży.