Projekt z Analizy Danych

Badanie zależności pomiędzy przychodami ogółem a stopniem najwyższego ukończonego wykształcenia dla gospodarstw domowych w województwie pomorskim w roku 2017

Wprowadzenie

Poniższy raport jest poświęcony zbadaniu wpływu poziomu ukończonej edukacji na poziom przychodów gospodarstw domowych w województwie pomorskim. Analiza oparta jest o dane z Głównego Urzędu Statystycznego i dotyczą roku 2017.
Postawione przez nas pytanie badawcze brzmi: Czy stopień ukończonej edukacji wpływa na poziom przychodów?
Raport skupia się na przekształceniu oraz oczyszczeniu danych, aby zmaksymalizować ich użyteczność w późniejszej analizie. Zostaną wykorzystane do tego poznane na zajęciach Analizy Danych metody. Następnie przeszłyśmy do opisu statystyk zmiennych, wizualizacji danych oraz stworzenia modelu.

Poniżej zaprezentowano kolejne kroki wstępnego przetwarzania danych.

#Wczytywanie danych
br2017_01a_4<-read_dta("C:\\Users\\Julia\\Desktop\\baza\\br2017_01a_4.dta")
br2017_prz<-read_dta("C:\\Users\\Julia\\Desktop\\baza\\br2017_prz.dta")
 
#Połączenie tabel
x<-inner_join(br2017_01a_4,br2017_prz, by=c("ROK","WOJ","NRG_LP"))
 
#Nazwanie kolumn
x1<-rename(x,c("Przychody"="R3","Edukacja"="D4_13"))
 
#Wybranie interesujacych nas kategorii
Pomorskie<-x1
Pomorskie<-filter(Pomorskie,WOJ==22)
Pomorskie<-select(Pomorskie, Przychody,Edukacja)
Pomorskie[1:5,1:2]
## # A tibble: 5 x 2
##   Przychody Edukacja
##       <dbl> <chr>   
## 1       800 31      
## 2      3750 31      
## 3      1100 31      
## 4       800 31      
## 5      3750 31

Data Wrangling

Dane dotyczące przychodów ogółem oraz poziomu najwyższego ukończonego wykształcenia dla mieszkańców województwa pomorskiego zostały wczytane do programu RStudio. Przychody to zmienna ilościowa, podczas gdy zmienna dotycząca edukacji ma charakter jakościowy. W źródłowej bazie danych, zmienna ta mogła przyjąć następujące wartości: bez wykształcenia, podstawowe, gimnazjalne, zasadnicze zawodowe, średnie ogólnokształcące, średnie zawodowe, policealne, kolegium nauczycielskie, języków obcych lub dla pracowników służb społecznych, licencjat lub inżynier, magister lub równorzędny, wyższe ze stopniem naukowym. Dla przejrzystości danego badania, zdecydowałyśmy się ograniczyć liczbę poziomów z 11 do 6. Podział, który zadecydowałyśmy się zastosować, polegał na połączeniu kategorii o najniższej edukacji: „bez wykształcenia”, „podstawowe” oraz „gimnazjalne” w nową kategorię „gimnazjalne i niższe” oraz złączeniu kategorii dotyczących najwyższej edukacji czyli „kolegium nauczycielskie, języków obcych lub dla pracowników służb społecznych”, „licencjat lub inżynier”, „magister lub równorzędny” oraz „wyższe ze stopniem naukowym” w kategorię „wyższe”.

wymiary<-dim(Pomorskie)
wymiary
## [1] 22657     2

Wymiary tabeli wskazują na to, że badaniu zostanie poddane 22657 rekordów.

#Etykiety dotyczace najwyzszego ukonczonego wyksztalcenia
Kategorie<-c("gimnazjalne i niższe"=00,"gimnazjalne i niższe"=10,"gimnazjalne i niższe"=24,"zasadnicze zawodowe"=31,"średnie ogólnokształcące"=34,"średnie zawodowe"=35,"policealne"=45, "wyższe"=55,"wyższe"=66,"wyższe"=76,"wyższe"=86)
 
#Przypisanie etykiet
Pomorskie$Edukacja<-factor(Pomorskie$Edukacja, levels=Kategorie, labels=names(Kategorie))
Pomorskie[292:297,1:2]
## # A tibble: 6 x 2
##   Przychody Edukacja            
##       <dbl> <fct>               
## 1       700 gimnazjalne i niższe
## 2       350 gimnazjalne i niższe
## 3       468 gimnazjalne i niższe
## 4       200 <NA>                
## 5      1140 <NA>                
## 6       230 <NA>

Wczytane dane prezentują się w powyższy sposób.

#Przeksztalcenie danych
Pomorskie<-as.data.frame(Pomorskie)
Pomorskie$Przychody<-as.numeric(Pomorskie$Przychody)
Pomorskie$Edukacja<-as.factor(Pomorskie$Edukacja)

Data cleansing

W następnym etapie badania sprawdzono jaką część bazy stanowią niekompletne dane.
Zbadano zarówno przychody, jak i edukację.

#Kompletne dane
Kompletne_dane_przy<-n_complete(Pomorskie$Przychody)
Kompletne_dane_przy
## [1] 22657
Kompletne_dane_edu<-n_complete(Pomorskie$Edukacja)
Kompletne_dane_edu
## [1] 18093
#Niekompletne dane
Niekompletne_dane<-n_miss(Pomorskie$Edukacja)
Niekompletne_dane
## [1] 4564
#Procentowy udzial danych niekompletnych
Niekompletne_dane_udzial<-prop_miss(Pomorskie$Edukacja)
sprintf("%0.1f%%", Niekompletne_dane_udzial * 100)
## [1] "20.1%"
Kompletne_dane_udzial<-(1-Niekompletne_dane_udzial)

Wśród przychodów nie wystąpiły braki danych, jednak pojawiły się one wśród zmiennej dotyczącej edukacji. W całej tabeli brakowało 4564 rekordów. Jak widać na wykresie, jest to 20,1% obserwacji tej zmiennej.

Jest to znacząca część, wobec czego dokonano imputacji wielokrotnej za pomocą algorytmu „mice”, która polega na wielowymiarowym wypełnianiu przez równania łańcuchowe i nadaje się do zmiennych jakościowych.

Pomorskie$Edukacja2<-imputate_na(Pomorskie,Edukacja, method="mice")
## Warning in (function (kind = NULL, normal.kind = NULL, sample.kind = NULL) :
## non-uniform 'Rounding' sampler used
Niekompletne_dane_poimputacji<-prop_miss(Pomorskie$Edukacja2)
#Sprawdzamy kompletność danych po imputacji
sprintf("%0.1f%%", Niekompletne_dane_poimputacji * 100)
## [1] "0.0%"

Jako, że zmienna dotycząca przychodów ma tendencję do posiadania wartości odstających (tzw. outliers), postanowiłyśmy podjąć działania, by zapobiec wpływowi outliers na wyniki badania.
Zanim jednak przejdziemy do wartości odstających, ważnym elementem badania jest również sprawdzenie poprawności danych. Do skontrolowania danych zastosowano regułę, określającą, iż przychody muszą być nieujemne.

#Definiujemy warunki
rules <- validator(
Pomorskie$Przychody >= 0
)
 
#Sprawdzamy waruki
cf <- confront(Pomorskie, rules, key="Przychody")
summary(cf)
##   name items passes fails nNA error warning                    expression
## 1   V1 22657  22657     0   0 FALSE   FALSE Pomorskie[["Przychody"]] >= 0

Ten warunek został spełniony dla wszystkich obserwacji.

By pozbyć się outliers zdecydowałyśmy się na zastosowanie metody „capping”. Zastępuje ona dolne watości odstające 5 percentylem, a górne 95 percentylem.

Przychody2<-imputate_outlier(Pomorskie,Przychody,method = "capping")
Pomorskie$Przychody2<-Przychody2
Pomorskie$Przychody2<-as.numeric(Pomorskie$Przychody2)

Na wykresie zaprezentowano wyniki imputacji outliers. Wyraźnie widać spłaszczenie zmiennej objaśnianej. Oznacza to, że zastosowanie tej metody było dobrym wyborem.
Dzięki zastosowaniu algorytmów „mice” oraz „capping” nie było potrzeby usuwania żadnych zmiennych, wobec czego badaniu zostają poddane wszystkie 22657 obserwacji.

Opis statystyczny zmiennych

W poniżej tabeli zaprezentowano podstawowe statystki dotyczące zmiennej zależnej Przychody.

Tabela ze statystykami opisowymi zmiennej zależnej
Liczba obserwacji Minimum Maksimum Q1 Mediana Q3 Średnia
Przychody 22657 0.08 6000 259 800 2030 1532.74

Zmienna ta posiada 22657 obserwacji, w których wartość średnia wynosi 1532,74 zł. Minimalna wartość przychodów ogółem wynosi 0,08 zł (wydaje się być to zaskakująca kwota, lecz warto pamiętać o istnieniu emerytur groszowych), a maksimum 6000 zł. W 2017 roku, 25% mieszkańców województwa pomorskiego otrzymywali przychody nie większe niż 259 zł, a 75% nie większe niż 2030 zł.

Tabela ze statystykami opisowymi zmiennej zależnej
Sd IQR
Przychody 1769.88 1771

Wartość odchylenia standardowego wyniosła 1769,88 zł, wobec czego możemy stwierdzić, że wartości te są mocno rozrzucone wokół średniej. Wartość IQR informuje nas o rozstępie między pierwszym a trzecim kwartylem. W przypadku przychodów wynosi on 1771 zł.

Na wykresie przedstawiony został wykres udziału mieszkańców województwa pomorskiego z danymi poziomami edukacji. Najliczniejszą grupą, liczącą 26,6% ogółu, są osoby z ukończonym wykształceniem na poziomie zasadniczym zawodowym. Kolejna znacząca część – licząca 25,7% badanego społeczeństwa, to osoby z wykształceniem na poziomie gimnazjalnym lub niższym. Obie te grupy odpowiadają za ponad połowę badanej populacji. Następną grupą, jeśli chodzi o liczność, są osoby z wykształceniem na poziomie wyższym – 17,7%. Ludność z edukacją średnią zawodową stanowi 17% mieszkańców, a z wykształceniem średnim ogólnokształcącym jest ich 11%. Najmniej liczną grupę stanowią osoby z po nauce policealnej – 1,9%.

Tabela ze statystykami opisowymi przychodu dla osób z ukończonym gimnazjum lub niższym
Liczba obserwacji Minimum Maksimum Q1 Mediana Q3 Średnia
Przychody 5785 0.08 6000 243.89 600 1600 1259.31

W badaniu uwzględniono 5830 rekordów z poziomem edukacji gimnazjalnym lub niższym. Średni przychód tych osób lub niższym wynosi 1270,49 zł. Wśród nich, przychód 25% osób jest nie wyższy niż 242,8 zł, oraz jedynie 25% ma przychód wyższy niż 1600 zł. Są to znacząco niższe wartości porównując do przychodów badanego społeczeństwa ogółem.

Tabela ze statystykami opisowymi przychodu dla osób z ukończonym wyksztalceniem zasadniczym zawodowym
Liczba obserwacji Minimum Maksimum Q1 Mediana Q3 Średnia
Przychody 6015 0.08 6000 246.16 750 1955 1373.59

W analizie jest 6035 obserwacji z poziomem wykształcenia zasadniczym zawodowym. Średni przychód tych osób lub niższym wynosi 1380,33zł. Wśród nich, przychód 25% osób jest nie wyższy niż 248 zł, oraz jedynie 25% ma przychód wyższy niż 2000 zł. Są to niższe wartości w odniesieniu do przychodów ogółem, jednak są one wyższe niż w przypadku osób z wykształceniem gimnazjalnym lub niższym.

Tabela ze statystykami opisowymi przychodu dla osób z ukończonym srednim ogolnoksztalcacym
Liczba obserwacji Minimum Maksimum Q1 Mediana Q3 Średnia
Przychody 2503 0.5 6000 285 886.4 2215.07 1591.06

W badaniu jest 2502 rekordów z poziomem edukacji średnim ogólnokształcącym. Średni przychód tych osób lub niższym wynosi 1550,30 zł. Wśród nich, przychód 25% osób jest nie wyższy niż 286,36 zł, oraz jedynie 25% ma przychód wyższy niż 2100 zł. Wartości te są wyższe zarówno od badanych wyżej grup, jak i od przychodów ogółem.

Tabela ze statystykami opisowymi przychodu dla osób z ukończonym srednim zawodowym
Liczba obserwacji Minimum Maksimum Q1 Mediana Q3 Średnia
Przychody 3878 0.8 6000 300 1000 2500 1662.42

W analizie uwzględniono 3851 obserwacji z poziomem wykształcenia średnim zawodowym. Średni przychód tych osób lub niższym wynosi 1656,22 zł. Wśród nich, przychód 25% osób jest nie wyższy niż 300 zł, oraz jedynie 25% ma przychód wyższy niż 2500 zł. Ponownie są to wyższe wartości od przychodów ogółem oraz przychodów osób, które ukończyły edukację na poziomie średnim ogólnokształcącym, zasadniczym zawodowym oraz gimnazjalnym lub niższym.

Tabela ze statystykami opisowymi przychodu dla osób z ukończonym policealnym
Liczba obserwacji Minimum Maksimum Q1 Mediana Q3 Średnia
Przychody 444 1.41 6000 227.44 748.2 2000 1420.3

Zgodnie z wykresem przedstawiającym udział osób z danym poziomem wykształcenia, rekordów z edukacją na poziomie policealnym jest najmniej – 437. Średni przychód tych osób lub niższym wynosi 1396,24 zł. Wśród nich, przychód 25% osób jest nie wyższy niż 219 zł, oraz jedynie 25% ma przychód wyższy niż 2000 zł. Wartości te są niższe niż przychody ogółem.

Tabela ze statystykami opisowymi przychodu dla osób z ukończonym wyzszym
Liczba obserwacji Minimum Maksimum Q1 Mediana Q3 Średnia
Przychody 4032 0.08 6000 300 1000 3200 2013.93

W analizie jest 4002 obserwacji z poziomem wykształcenia wyższym. Średni przychód tych osób jako jedyny przekracza próg 2000 zł i wynosi 2029,72 zł. Wśród nich, przychód 25% osób jest nie wyższy niż 300 zł, oraz 25% ma przychód wyższy niż 3217 zł. Są to najwyższe wartości w stosunku do reszty grup.

Powyższy wykres przedstawia porównanie statystyk między grupami. Zgodnie ze statystykami przekrojowymi, możemy zaobserwować zależność, że im wyższy poziom edukacji, tym wyższy przeciętny poziom przychodów (ta zależność nie obejmuje grupy o wykształceniu policealnym).

Powyższy histogram to wykres, który przedstawia rozkład przychodów mieszkańców województwa pomorskiego w roku 2017. Średnia wartość przychodów przedstawiona została przerywaną niebieską linią. Ostatni słupek przy wartości 6000 zł odznacza się – jest on wynikiem imputacji wartości odstających – ta wartość zastąpiła wartości powyżej 95. percentyla. Jak widać, wybierając opcję uśnięcia outliers, stracilibyśmy znaczącą liczbę obserwacji i nasze statystyki byłby mniej zgodne z rzeczywistością. ## ## Wnioskowanie statystyczne

Przeprowadzamy test na normalność rozkładu zmiennej zależnej. Zmienna Przychody nie ma rozkładu normalnego, więc w dalszej części badania wykonywane będą testy nieparametryczne.

Wybrano oraz przeprowadzono test Kruskala-Wallisa. Test ten jest nieparametryczną alternatywą jednoczynnikowej analizy wariancji.

Hipotezy brzmią następująco:
Ho: Wszytskie grupy są identyczne.
H1: Przynajmniej jedna z par nie ma tej samej mediany.

W przypadku, gdy wartość p-value jest mniejsza niż 0,05, możemy stwierdzić, że istnieją znaczące różnice pomiędzy grupami.

res.kruskal <- kruskal.test(Przychody2 ~ Edukacja2, data = Pomorskie)
res.kruskal
## 
##  Kruskal-Wallis rank sum test
## 
## data:  Przychody2 by Edukacja2
## Kruskal-Wallis chi-squared = 249.4, df = 5, p-value <0.0000000000000002

P-value jest znacząco mniejsza niż 0,05, wobec czego możemy stwierdzić, że istnieją istotne różnice pomiędzy grupami.

W przypadku odrzucenia hipotezy zerowej sprawdzamy, które grupy różnią się między sobą. Można to zrobić za pomocą funkcji pairwise.wilcox.test()

pairwise.wilcox.test(Pomorskie$Przychody2, Pomorskie$Edukacja2,
                 p.adjust.method = "BH")
## 
##  Pairwise comparisons using Wilcoxon rank sum test with continuity correction 
## 
## data:  Pomorskie$Przychody2 and Pomorskie$Edukacja2 
## 
##                          gimnazjalne i niższe zasadnicze zawodowe 
## zasadnicze zawodowe      0.000919808          -                   
## średnie ogólnokształcące 0.000000003          0.000698597         
## średnie zawodowe         < 0.0000000000000002 0.000000003         
## policealne               0.479                0.662               
## wyższe                   < 0.0000000000000002 < 0.0000000000000002
##                          średnie ogólnokształcące średnie zawodowe policealne 
## zasadnicze zawodowe      -                        -                -          
## średnie ogólnokształcące -                        -                -          
## średnie zawodowe         0.149                    -                -          
## policealne               0.056                    0.007            -          
## wyższe                   0.000000003              0.000000312      0.000001484
## 
## P value adjustment method: BH

Przy przyjęciu poziomu istotności 0,05, jesteśmy w stanie stwierdzić, że przychody osób z wykształceniem wyższym jako jedyne różni się od wszystkich pozostałych grup. Większość z przychodów populacji o innych poziomach edukacji również różni się od siebie. Wyjątkami są przychody osób z wykształceniem na poziomie średnim zawodowym oraz ogólnokształcącym. Nie ma znaczącej różnicy między osobami z wykształceniem policealnym, a grupami takimi jak „gimnazjalne i niższe” oraz „zasadnicze zawodowe”, jak i między właśnie tymi dwoma grupami między sobą.

kruskal_effsize(Przychody2 ~ Edukacja2, data = Pomorskie)
## # A tibble: 1 x 5
##   .y.            n effsize method  magnitude
## * <chr>      <int>   <dbl> <chr>   <ord>    
## 1 Przychody2 22657  0.0108 eta2[H] small

Sprawdzono również wielość efekt oddziaływania edukacji na przychody za pomocą funkcji kruskal_effsize(). Została ona określona jako mała.

Powyżej przedstawiono wykres przychodów w zależności od poziomu edukacji. Jak wyraźnie widać, przedział przychodów, jak również ich mediana z każdą kolejną kategorią rósł (wyjątek to wykształcenie policealne).Pojawiają się również tzw. mild outliers, czyli wartości odstające w każdej z kategorii. Mimo, że je modyfikowaliśmy, nadal mają one prawo wystąpić w kategoriach z niższymi średnimi zarobkami, ponieważ outliers pozbywaliśmy się z przychodów ogółem, a nie z każdej kategorii osobno.

Model

Dla podsumowania badania, przygotowano prosty model liniowy.

## Anova Table (Type II tests)
## 
## Response: Przychody2
##                Sum Sq    Df F value              Pr(>F)    
## Edukacja2  1597769577     5   104.3 <0.0000000000000002 ***
## Residuals 69371599995 22651                                
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Wykorzystano funkcję Anova(). Z powyższych wartości wynika, że zmienna Edukacja jest statystycznie istotna.

summary(model1)
## 
## Call:
## lm(formula = Przychody2 ~ Edukacja2, data = Pomorskie)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
##  -2014  -1179   -689    626   4741 
## 
## Coefficients:
##                                   Estimate Std. Error t value
## (Intercept)                         1259.3       23.0   54.73
## Edukacja2zasadnicze zawodowe         114.3       32.2    3.55
## Edukacja2średnie ogólnokształcące    331.7       41.9    7.92
## Edukacja2średnie zawodowe            403.1       36.3   11.10
## Edukacja2policealne                  161.0       86.2    1.87
## Edukacja2wyższe                      754.6       35.9   21.02
##                                               Pr(>|t|)    
## (Intercept)                       < 0.0000000000000002 ***
## Edukacja2zasadnicze zawodowe                   0.00039 ***
## Edukacja2średnie ogólnokształcące   0.0000000000000024 ***
## Edukacja2średnie zawodowe         < 0.0000000000000002 ***
## Edukacja2policealne                            0.06177 .  
## Edukacja2wyższe                   < 0.0000000000000002 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1750 on 22651 degrees of freedom
## Multiple R-squared:  0.0225, Adjusted R-squared:  0.0223 
## F-statistic:  104 on 5 and 22651 DF,  p-value: <0.0000000000000002

Powyżej zaprezentowano wyniki modelu. Przy przyjęciu poziomu istotności na poziomie 0,05, 5 z 6 zmiennych objaśniających jest statystycznie istotna.

Oraz przedstawienie wizualne na wykresie.

Interpretacja wyników: Ceteris paribus, dla osób z ukończonym wykształceniem na poziomie zasadniczym zawodowym, oczekuje się wzrostu przychodów ogółem o 109,8 zł.
Ceteris paribus, dla osób z ukończonym wykształceniem na poziomie średnim ogólnokształcącym, oczekuje się wzrostu przychodów ogółem o 298,1 zł.
Ceteris paribus, dla osób z ukończonym wykształceniem na poziomie średnim zawodowym, oczekuje się wzrostu przychodów ogółem o 415,9 zł.
Ceteris paribus, dla osób z ukończonym wykształceniem na poziomie policealnym, oczekuje się wzrostu przychodów ogółem o 157,2 zł.
Ceteris paribus, dla osób z ukończonym wykształceniem na poziomie zasadniczym zawodowym, oczekuje się wzrostu przychodów ogółem o 782,6 zł.

Po przedstawieniu danego modelu na wykresach widać, że nie jest on najlepiej dopasowany. Zdecydowanie warto byłoby stworzyć model o innej charakterystyce dla lepszego przedstawienia wpływu zmiennej objaśniającej na objaśnianą.

Podsumowanie

W raporcie pojęto próbę zbadania wpływu ukończonego poziomu edukacji na poziom przychodów ogółem w województwie pomorskim w roku 2017.
Dzięki opisowi statystycznemu oraz zastosowanym testom, wykazano znaczące różnice między grupami o różnym poziomie wykształcenia. Udowodniono, że im wyższy poziom edukacji, tym zwykle wyższe były średnie przychody.
W powyższym projekcie wyzwanie stanowiły braki danych oraz wartości odstające. Zastosowano imputację w obu przypadkach, co pozwoliło na zbadanie całej pierwotnej próby, bez potrzeby odrzucania wybranych obserwacji.
Powyższy projekt stanowił świetną okazję do zgłębienia świata języka programowania R, przez co zdecydowanie zaciekawił autorki, które swoje doświadczenia będą mogły wykorzystywać w dalszych projektach.