Praca domowa - Raport5 Analiza Danych
Wizualizacja danych
library(ISLR)
data("Wage")
library(ggplot2)## Warning: pakiet 'ggplot2' został zbudowany w wersji R 4.1.3
library(tidyverse)## Warning: pakiet 'tidyverse' został zbudowany w wersji R 4.1.3
## Warning: pakiet 'tibble' został zbudowany w wersji R 4.1.3
## Warning: pakiet 'tidyr' został zbudowany w wersji R 4.1.3
## Warning: pakiet 'readr' został zbudowany w wersji R 4.1.3
## Warning: pakiet 'purrr' został zbudowany w wersji R 4.1.3
## Warning: pakiet 'dplyr' został zbudowany w wersji R 4.1.3
## Warning: pakiet 'stringr' został zbudowany w wersji R 4.1.3
## Warning: pakiet 'forcats' został zbudowany w wersji R 4.1.3
## Warning: pakiet 'lubridate' został zbudowany w wersji R 4.1.3
## -- Attaching core tidyverse packages ------------------------ tidyverse 2.0.0 --
## v dplyr 1.1.2 v readr 2.1.4
## v forcats 1.0.0 v stringr 1.5.0
## v lubridate 1.9.2 v tibble 3.2.1
## v purrr 1.0.1 v tidyr 1.3.0
## -- Conflicts ------------------------------------------ tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag() masks stats::lag()
## i Use the ]8;;http://conflicted.r-lib.org/conflicted package]8;; to force all conflicts to become errors
theme_set(theme_bw())Wykresy zmiennej ilościowej
Wage %>%
filter(race=="1. White") %>%
ggplot(aes(x = age)) +
geom_histogram(
aes(fill= factor (wage), alpha=0.8)
,bins = 20
) +
labs(title = 'Wysokość płacy w zależności od wieku')+
labs(x = "Wiek", y = "Płaca")+
theme(legend.position = 'none')
Na wykresie przedstawione są dane dotyczące płacy w zależności od wieku
dla osób rasy białej. Wykres ukazuje, że płaca ma tendencję do wzrostu
wraz z wiekiem, co może być związane z postępującym doświadczeniem
zawodowym i zdobywanymi kwalifikacjami w miarę upływu czasu. Płace
osiągają maksimum po 40 roku życia i stosunkowo zaczynają maleć.
Obserwuje się również pewną zmienność w płacy między różnymi grupami
wiekowymi, co może wynikać z czynników takich jak poziom edukacji,
doświadczenie zawodowe oraz specyfika pracy.
ggplot(Wage, aes(x=wage, fill= health_ins)) +
geom_density(alpha=.25) +
labs(title = 'Gęstość rozkładu płac')+
labs(x = "Płaca", y = "Gęstość")
Na wykresie gęstości rozkładu płac według posiadania ubezpieczenia
zdrowotnego można zobaczyć, jak posiadanie lub brak ubezpieczenia
zdrowotnego wpływa na poziom wynagrodzenia w populacji. Większa liczba
pracowników nieposiadających ubezpieczenia zdrowotnego ma podobne
wynagrodzenia poniżej 100. Natomiast większa liczba pracowników
posiadających ubezpieczenie zdrowotne ma podobne wynagrodzenia już
powyżej 100. Zatem posiadanie ubezpieczenia znacznie wpływa na wysokość
płac pracowników.
Wykresy zmiennej jakościowej
Wage %>%
filter(maritl != '') %>%
ggplot(aes(maritl)) +
geom_bar(aes(fill = maritl), alpha=0.4, color="black")+
theme(legend.position = 'none')+
labs(title = 'Pracownicy z podziałem na stan cywilny')+
labs(x = "Stan cywilny", y = "Liczba")
Wykres słupkowy przedstawia liczbę pracowników z podziałem na różne
stany cywilne. Na osi poziomej wykresu znajdują się kategorie stanu
cywilnego. Analizując wykres można zauważyć, że znaczna część
pracowników posiada współmałżonka. Natomiast liczba pracowników, którzy
stracili swojego małżonka, jest najmniejsza wśród wszystkich kategorii
stanu cywilnego. Dość liczną grupą są również pracownicy nigdy
niezaślubieni.
Wykresy dwóch zmiennych ilościowych
ggplot(Wage, aes(x = age, y = wage)) +
geom_point(aes(color = health_ins)) +
geom_smooth(
method = 'loess'
,color="black"
,se = FALSE
) +
labs(title = 'Płaca pracowników wg wieku z podziałem na posiadanie ubezpieczenia zdrowotnego')+
labs(x = "wiek", y = "Płaca")
Analizując wykres, można zauważyć, że istnieje zróżnicowanie w płacach
pracowników w zależności od wieku oraz posiadania ubezpieczenia
zdrowotnego. W przypadku młodych pracowników, którzy posiadają
ubezpieczenie zdrowotne, można zauważyć, że ich płace zaczynają się od
niższych wartości na początku kariery zawodowej, a następnie wzrastają
wraz z wiekiem. Natomiast młodzi pracownicy bez ubezpieczenia
zdrowotnego mają podobne trendy wzrostowe, ale ich płace są nieco niższe
niż w przypadku osób ubezpieczonych.
Wykresy dwóch zmiennych jakościowych
Wage %>%
filter(race != '') %>%
ggplot(aes(x = education, y = race)) +
geom_jitter(aes(color = race))+
labs(title = 'Wykształcenie pracowników względem rasy')+
labs(x = "Edukacja", y= "Rasa")
Wykres przedstawia rozkład wykształcenia pracowników w zależności od
rasy. Najliczniejsza rasa biała w większości posiada wykształcenie
średnie, natomiast w mniejszości wykształcenie niższe niż średnie. Rasa
czarna w wiekszości również posiada wykształcenie średnie, a w
mniejszości wykształcenie doktorskie. Azjaci w większości posiada
wykształcenie doktorskie, natomiast w mniejszości niżej niż średnie.
Najmniej liczne inne rasy w większości posiadają wykształcenie średnie,
natomiast w mniejszości doktorskie.
Wykresy zmiennej ilościowej vs zmiennej jakościowej
medians = Wage %>%
group_by(health_ins) %>%
summarize(m = median(wage, na.rm = TRUE))
ggplot(Wage, aes(x = health_ins, y = wage)) +
geom_boxplot(
aes(fill = health_ins)
,outlier.alpha = 0.25
) +
geom_text(
data = medians
,aes(x = health_ins, y = m, label = m)
,color = 'black'
,hjust = 7
) +
stat_boxplot(geom ='errorbar', position = 'dodge') +
stat_summary(
aes(ymax = ..y.., ymin = ..y..)
,fun = mean
,geom = 'errorbar'
,width = .75
,linetype = 'solid'
,position = 'dodge'
,color = 'white'
,size = 1
) +
theme(legend.position = 'none')+
labs(title = 'Płaca pracowników według posiadanego ubezpieczenia')+
labs(x = "Ubezpieczenie zdrowotne", y= "Płaca")Wykres pozwala na porównanie rozkładu płacy między pracownikami posiadającymi ubezpieczenie zdrowotne a pracownikami nieposiadającymi tego ubezpieczenia.Mimo widocznie wyższej płacy pracowników z ubezpieczeniem, można również zauważyć, że średnia płaca pracowników posiadających ubezpieczenie zdrowotne jest o wiele wyższa od mediany niż w przypadku pracowników nieposiadających ubezpieczenia zdrowotnego.
Wykresy bąbelkowe
edukacja <- Wage %>%
select(education) %>%
unlist() %>%
unlist() %>%
trimws() %>%
table() %>%
as.data.frame()
edukacja <- data.frame(
education = edukacja$.
,`logwage` = edukacja$Freq
,`wage Average` = NA
,`age Average` = NA
)
for (i in 1:nrow(edukacja)) {
edukacja$wage.Average[i] <- Wage %>%
filter(str_detect(education, edukacja$education[i] %>%
as.character() %>% eval())) %>%
select(wage) %>% unlist() %>% mean(na.rm = TRUE)
edukacja$age.Average[i] <- Wage %>%
filter(str_detect(education, edukacja$education[i] %>%
as.character() %>% eval())) %>%
select(age) %>% unlist() %>% mean(na.rm = TRUE)
}
ggplot(edukacja, aes(wage.Average, age.Average, label = education)) +
geom_point(aes(color = education, size = logwage)) +
geom_text_repel() +
theme(legend.position = 'none')+
labs(title = 'Średnia płaca pracowników według wieku z podziałem na wykształcenie')
Wykres pokazuje zależność między średnią płacą a średnim wiekiem
pracowników w zależności od ich poziomu wykształcenia. Można zauważyć,
że wysokość poziomu wykształcenia wpływa na wysokość średniego wieku
pracownika oraz jego średnią płacę.
#kilka wykresów na jednym #płace w podziale na rasy
ggplot(Wage, aes(x = age, y = wage)) +
geom_point() +
facet_wrap(~ race) +
labs(x = "Wiek", y = "Płaca", title = "Wykresy dla różnych ras")
Na wykresach widać, że najliczniejszą rasą są biali, następnie czarni,
azjaci i inne rasy. Dzięki układowi czterech wykresów obok siebie można
łatwo porównać wzorce i zależności między wiekiem a płacą w różnych
grupach rasowych. Występują niewielkie różnice w rozkładzie płac w
zależności od wieku w poszczególnych grupach rasowych.
Wage %>%
ggplot(aes(x = wage)) +
geom_histogram(
aes(fill = health_ins)
,bins = 20
,color = 'black'
) +
# facet_grid(.~ Series.or.Movie) +
# facet_grid(Series.or.Movie ~ .) +
# facet_grid(Runtime ~ Series.or.Movie, scales = 'free') +
# facet_wrap(vars(Series.or.Movie), ncol = 2) +
facet_wrap(vars(health_ins), nrow = 2) +
# facet_wrap(vars(Series.or.Movie, Runtime), nrow = 2, scales = 'free') +
theme(legend.position = 'none')+
labs(title = 'Wykresy płac z podziałem na posiadanie ubezpieczenia')+
labs(x = "Płaca")
Wykresy przedstawiają rozkład płac w zależności od posiadania
ubezpieczenia zdrowotnego. Można zauważyć, że jest więcej pracowników
posiadających ubezpieczenie zdrowotne. Natomiast ci, którzy go nie
posiadają posiadają niższą płacę.