pbiecek / Diagnoza

Diagnoza Spoleczna, Social Diagnosis Objective and Subjective Quality of Life in Poland, data from http://diagnoza.com/
4 stars 4 forks source link

Data cleaning needed #6

Open BERENZ opened 8 years ago

BERENZ commented 8 years ago

Spory bałagan jest w tych danych. Na przykład, jest 81 gospodarstw, które nie są przypisane do żadnego roku oraz mają braki danych dla wszystkich badanych lat. Natomiast, członkowie tych gospodarstw pojawiają się w zbiorze z osobami.

Gospodarstwa i lata

> gospodarstwa %>% select(f2000:f2015) %>% rowSums(.,na.rm=T) %>% table()
.
    0     1     2     3     4     5     6     7     8 
   81 10376  5677  4032  4255  1102   346   408   489

Członkowie powyższych gospodarstw

flag <- gospodarstwa %>% select(f2000:f2015) %>% rowSums(.,na.rm=T) 
gosp_id <- gospodarstwa[which(flag == 0),'numer_gd'] ### coś mi filter nie działał :)

> osoby  %>% filter(numer_gd %in% gosp_id$numer_gd) %>% count(numer_gd,sort=T)
Source: local data frame [81 x 2]

   numer_gd     n
      (dbl) (int)
1     15200    12
2     50129     9
3     15050     7
4     15210     7
5     15220     7
6     14980     6
7     29890     6
8     15320     5
9    410974     5
10    15030     4
..      ...   ...
pbiecek commented 8 years ago

To już trzeba wyjaśnić z opiekunem danych. Napiszę maila i zobaczymy.

BERENZ commented 8 years ago

Super! Przyznam, że próbowałem odtworzyć niektóre tabele dla 2015 i wyniki rozjeżdżają się w porównaniu do raportów.

BERENZ commented 8 years ago

Coś się wyjaśniło w kwestii jakości danych ?

pbiecek commented 8 years ago

Dostałem taką odpowiedź:

Dla tych 81 gd nie ma danych ani w zbiorze gd, ani w zbiorze indywidualnym, co oznacza, że ankieter dotarł do nich I otrzymały one nr a niekiedy ustalił nawet skład osobowy, ale w istocie nie przeprowadził wywiadu I nie otrzymał zwrotnie wypełnionych kwestuionariuszy indywidualnych.

pbiecek commented 8 years ago

Jeżeli nawet po usunięciu tych osób wyniki się rozjeżdżają to podlinkuj może konkretny przykład, łatwiej będzie dojść z autorami oryginalnych raportów gdzie jest różnica w założeniach.

BERENZ commented 8 years ago

Hej, poniżej załączam przykłady. Zobacz ostatnią tabelę, zwłaszcza rencistów. :) Coś mi się nagłówki w tabelach rozjechały.

knitr::opts_chunk$set(echo = TRUE,cache=TRUE)
options(scipen=2,digits=2)
load('data/gospodarstwa.rda')
library(dplyr)
library(tidyr)
gosp2015 <- gospodarstwa %>%
  filter(f2015 == 1, waga_gd_2015 > 0) %>%
  select(numer_gd:miasto_28,starts_with('h'))

Ogólne liczebności

Skupiono się na roku 2015:

powinno <- c(1670,1284,1003,2456,1427,3909) ## Tabela 3.4.1
sum(powinno)  ## jest błąd w raporcie bo sumuje się do 11 749 (powinno być 11 740)
## [1] 11749
gosp2015 %>% 
  count(klasa_miejscowosci,
        wt = waga_gd_2015) %>%
  mutate(powinno = powinno,
         n = round(n),
         diff = n-powinno,
         etyk = names(attr(gosp2015$klasa_miejscowosci,'labels')[-1])) %>%
  knitr::kable(.,caption='Dane przeważone (porównanie do Tabela 3.4.1)')

Table: Dane przeważone (porównanie do Tabela 3.4.1)

klasa_miejscowosci n powinno diff etyk


              1   1736      1670     66  miasta o liczbie mieszkańców 500 tys. i więcej 
              2   1295      1284     11  miasta o liczbie mieszkańców 200-500 tys.      
              3   1010      1003      7  miasta o liczbie mieszkańców 100-200 tys.      
              4   2503      2456     47  miasta o liczbie mieszkańców 20-100 tys.       
              5   1456      1427     29  miasta o liczbie mieszkańców poniżej 20 tys.   
              6   3968      3909     59  wieś                                           
powinno <- c(947,645,640,306,810,992,1692,303,579,373,711,1482,361,449,980,545)
sum(powinno) ## według raportu, powinno być 11 749
## [1] 11815
gosp2015 %>% 
  count(wojewodztwo,
        wt = waga_gd_2015) %>%
  mutate(powinno =powinno,
         n=round(n),
         diff = n-powinno,
         etyk = names(attr(gosp2015$wojewodztwo,'labels')[-1]))%>%
  knitr::kable(.,caption='Dane przeważone (porównanie do Tabela 3.4.3)')

Table: Dane przeważone (porównanie do Tabela 3.4.3)

wojewodztwo n powinno diff etyk


       2    947       947      0  Dolnośląskie        
       4    644       645     -1  Kujawsko-Pomorskie  
       6    641       640      1  Lubelskie           
       8    307       306      1  Lubuskie            
      10    837       810     27  Łódzkie             
      12    993       992      1  Małopolskie         
      14   1692      1692      0  Mazowieckie         
      16    303       303      0  Opolskie            
      18    579       579      0  Podkarpackie        
      20    398       373     25  Podlaskie           
      22    712       711      1  Pomorskie           
      24   1482      1482      0  Śląskie             
      26    362       361      1  Świętokrzyskie      
      28    448       449     -1  Warmińsko-Mazurskie 
      30   1078       980     98  Wielkopolskie       
      32    545       545      0  Zachodnio-Pomorskie 

Dochody

gosp2015 %>%
  summarise(na_gosp = weighted.mean(hl2,waga_gd_2015,na.rm=T),
            na_osobe = weighted.mean(hdoch_m_osoba,waga_gd_2015,na.rm=T),
            na_jedn_ekw = weighted.mean(hdoch_m_ekw,waga_gd_2015,na.rm=T)) %>%
  knitr::kable(.,digits=2,caption='Dochody, Dane przeważone (porównanie do Tabeli 4.1.1)')

Table: Dochody, Dane przeważone (porównanie do Tabeli 4.1.1)

na_gosp na_osobe na_jedn_ekw


3676       1548          1901
## powinno być:
c(3731.02,1548.97,1902.26)
## [1] 3731 1549 1902

Dochody wg Grup społeczno ekonomicznych

gosp2015 %>%
  group_by(ha6_bez7) %>%
  summarise(na_gosp = weighted.mean(hl2,waga_gd_2015,na.rm=T),
            na_osobe = weighted.mean(hdoch_m_osoba,waga_gd_2015,na.rm=T),
            na_jedn_ekw = weighted.mean(hdoch_m_ekw,waga_gd_2015,na.rm=T),
            N=round(sum(waga_gd_2015))) %>%
  ungroup() %>%
  mutate(etyk = c(names(attr(gosp2015$ha6_bez7,'labels')),'brak danych')) %>%
  knitr::kable(.,digits=2,caption='Dochody, Dane przeważone (porównanie do Tabeli 4.1.1)')

Table: Dochody, Dane przeważone (porównanie do Tabeli 4.1.1)

ha6_bez7 na_gosp na_osobe na_jedn_ekw N etyk


    1      4380       1631          2135   6078  gospodarstwa pracowników                               
    2      3958       1012          1487    572  gospodarstwa rolników                                  
    3      5789       2180          2804    624  gospodarstwa pracujących na własny rachunek            
    4      2642       1562          1674   3475  gospodarstwa emerytów                                  
    5      2123       1118          1235    682  gospodarstwa rencistów                                 
    6      1724        864           968    467  gospodarstwa utrzymujących się z niezarobkowych źródeł 
   NA      4878       1708          2266     71  brak danych                                            

![tabela411](tabela411.png

tabela411