Z czym koreluje wykształcenie a dwuwymiarowa analiza gradacyjna

Dwa tygodnie temu pisałem po raz pierwszy o analizie gradacyjnej. Więcej o jednowymiarowej analizie gradacyjnej znaleźć można tutaj. W międzyczasie magistranci przedstawiają kolejne warianty tej analizy. Dziś na przykładach pokażemy dwuwymiarową analizę gradacyjną.

Przepis:
– weź dwie zmienne jakościowe.
– dla każdej grupy pierwszej zmiennej jakościowej wykonaj jednowymiarową analizę gradacyjną drugiej zmiennej jakościowej, porównując rozkład w grupie versus rozkład brzegowy.

Kod do wykonania dwuwymiarowej analizy gradacyjnej znajduje się poniżej

# funkcja pomocnicza, rysuje dwuwymiarowa analizę gradacyjna na jednym panelu
plotGradeStat2D <- function(zmienna1, zmienna2, osX = "", osY = "", cex.text=0.8, tekst=TRUE) {
  tab    <- table(factor(zmienna1),factor(zmienna2))
  tabSum <- addmargins(tab, 2)
  tabProp<- prop.table(tabSum, 2)
  tabCS  <- apply(tabProp, 2, cumsum)
 
  kolor  <- brewer.pal(ncol(tab),"Set3")
  plot(c(0,1),c(0,1),type="n",pch=19,xlab=osX,ylab=osY)
  abline(0,1,col="grey")
  abline(h=seq(0,1,0.2),col="grey95",lty=3)
  abline(v=seq(0,1,0.2),col="grey95",lty=3)
  for (i in 1:ncol(tab)) {
    points(c(0,tabCS[,"Sum"]), c(0,tabCS[,i]), type="b", pch=19, col=kolor[i])
  }
  legend("topleft", colnames(tab), col=kolor, pch=10, lwd=3,bty="n")
 
  par(xpd=NA)
  if (tekst) 
    text(tabCS[,"Sum"], apply(tabCS,1,min),rownames(tabCS), srt=-45, adj=c(0,0),cex=cex.text, col="black")
  par(xpd=F)
}
# funkcja wlasciwa, rysuje dwa panele, zamieniajac zmienne miejscami na osiach
plotGradeStat2D2  <- function(zmienna1, zmienna2, osX="", osX1=osX, osX2=osX, osY="", osY1=osY, osY2=osY, ...) {
   par(mfrow=c(1,2))
   par(xpd=F)
   plotGradeStat2D(zmienna1, zmienna2, osX=osX1, osY=osY1, ...)
   plotGradeStat2D(zmienna2, zmienna1, osX=osX2, osY=osY2, ...)
}

Wykorzystamy tę analizę by zbadać zależność pomiędzy wykształceniem respondenta (zmienna jakościowa: podstawowe, zasadnicze, średnie, wyższe) a trzema innymi zmiennymi jakościowymi: pytaniem czy przed 1989 żyło się lepiej, pytaniem czy denerwują respondenta decyzje władz, pytaniem o wykształcenie ojca.

Poniższe wykresy umieszczane są jako obiekty SVG. Jeżeli się nie wyświetlają to odpowiadające im pliki png znaleźć można w tym katalogu.

Wykształcenie ojca gdy ankietowany miał 16 lat a wykształcenie ankietowanego.

Panel lewy od prawego różni się kolejnością zmiennych. Im bliżej krzywa opisująca wybraną grupę przekątnej narysowanej na szaro, tym mniejsza różnica w odpowiedziach tej grupy respondentów a odpowiedziami wszystkich respondentów. W przypadku powyższego wykresu pomiędzy grupami są duże różnice. Ewidentnie wykształcenie ojca ankietowanego i ankietowanego jest silnie skorelowane.
Wśród osób o wykształceniu podstawowym i niższym 80% osób ma ojca również o wykształceniu podstawowym lub niższym. Wśród osób o wykształceniu wyższym 20% ma ojca o wykształceniu podstawowym lub niższym. Tak więc zależność jest wyraźna i silna.

Zauważmy ile informacji możemy z powyższych wykresów odczytać. Na osi OX przedstawione są rozkłady brzegowe raz jednej raz drugiej zmiennej. Możemy więc porównując wartości na osi OX powiedzieć, że w pokoleniu rodzicielskim (brzmi to strasznie, ale nie możemy napisać w pokoleniu poprzednim, ponieważ nie mamy reprezentantów osób bezdzietnych) ponad 40% osób miało wykształcenie podstawowe i niższe, w pokoleniu ankietowanych ta frakcja spadła ponad dwukrotnie do 20%. Możliwości edukacyjne są więc większe.

Kolejny wykres dotyczy wykształcenia a odpowiedzi na pytanie kiedy żyło się lepiej, czy przed 1989 czy teraz.

Około 35% odpowiedzi było że kiedyś żyło się łatwiej, 20% że teraz, 25% że ankietowany jest za młody i reszta że trudno powiedzieć. Jest zależność pomiędzy wykształceniem a udzielonymi odpowiedziami, osoby o wykształceniu wyższym częściej niż średnia uważa że teraz życie się lepiej. Osoby o wykształceniu podstawowym częściej niż średnia uważają że żyło im się lepiej przed 1989.

Ostatnie porównanie dotyczy pytania czy jest się i jak często denerwowanym prze z decyzje władz. Tym razem pomiędzy grupami osób o różnym wykształceniu odpowiedzi kształtują się podobnie.

Zależność jest nie duża, osoby o wykształceniu podstawowym trochę rzadziej niż średnia denerwują się na decyzje władz. Czyżby to ignorancja dawała spokój? A może to inna mądrość pozwala na nie przejmowanie się rzeczami na które nie czuje się wpływu?

Zmiany zamożności Polaków

Kontynuujemy analizy danych z badania Diagnoza Społeczna. Średnia pensja w Polsce rośnie szybciej nawet niż inflacja. Można więc uważać, że jest coraz lepiej.

Ten i kolejny wpis powstał ponieważ po pierwsze wyniki są ciekawe, a po drugie, ponieważ będzie okazja wprowadzić kolory w analizie gradacyjnej.

W kwestionariuszu dla gospodarstw piąte pytanie dotyczy sposobu gospodarowania dochodem, czy na wszystko wystarcza pieniędzy, czy wystarcza ale przy oszczędnym życiu, czy brakuje na coś. Będziemy poniżej porównywać odpowiedzi pomiędzy latami 2005 (kolumna „cl7”) i 2001 (kolumna „fL5”). Do porównania odpowiedzi w tych dwóch rocznikach wykorzystamy analizę gradacyjną.

Kilka linii kodu w R

# czy wystarcza pieniedzy w roku 2005 i 2011
zb1 = rev(table(factor(diagnozaGospodarstwa2011[,"fL5"])))
zb2 = rev(table(factor(diagnozaGospodarstwa2011[,"cl7"])))
 
plotGradeStat(t(t(zb2)), t(t(zb1)), osX="rok 2005", osY="rok 2011", skala=c(0.01,0.5), cutoff=0.011,uporzadkujMalejaco=F)

i mamy następujący wykres.

Etykiety można by skrócić, ale póki są czytelne nie walczyłem z nimi. W porównaniu z rokiem 2005 w roku 2011 ubyło o około jedną trzecią osób, którym wystarcza co prawda na najtańsze jedzenie, ale nie wystarcza na inne potrzeby. Liczba osób, którym wystarcza i jeszcze oszczędzają wzrosła trzykrotnie.

Co jest ważne w życiu? w zależności od wieku

Cztery dni temu (tutaj) badaliśmy jak zmieniały się wartości ważne w życiu, bazując na danych z Diagnozy Społecznej. Można jednak przypuszczać że to co jest ważne w życiu zależy od wielu czynników, ale z pewnością równiez od wieku.

Więc powtórzyliśmy analizę gradacyjną w czterech grupach wiekowych. najpierw zbadaliśmy kwartyle roku urodzenia i dało nam to cztery mniej więcej równoliczne grupy respondentów, urodzonych w latach: 1910 – 1952, 1952-1971, 1971-1987, 1987-2011.

Grupa wiekowa 1910-1952.

 

W grupie 1951-1971.

W grupie 1971-1987

W grupie 1987 – 2011

 

Z powyższych wykresów wynikają przynajmniej dwie rzeczy:

– najsilniej zmienia się system wartości ludzi w wieku 30-40 lat. Odległość krzywej od przekątnej jest największa. Analiza gradacyjna dowiodła swojej wartości w wyraźny sposób podsumowując wielkość zmian. Dla respondentów w wieku 30-40 liczą się i to coraz bardziej dzieci i udane małżeństwo.

– zmieniają się też rzeczy uznawane za ważne. W grupie osób najmłodszych wysokie miejsce zajmują pieniądze i praca, a starszych grupach i pieniądze i płacę wyprzedzają udane małżeństwo i dzieci.

 

Co jest ważne w pracy?

Dwa  dni temu pokazywaliśmy przykład analizy gradacyjnej w badaniu co jest ważne w życiu. Dziś zobaczymy co dla ankietowanych jest ważne w pracy. W latach 2007 i 2011 zadano respondentom pytanie o to co jest ważne w pracy. Podobnie jak w przypadku wartości ważnej w życiu, można było wybrać maksymalnie trzy cechy dorej pracy (z listy: Brak napięć i stresów, Duza samodzielnosc, Możliwość rozwoju osobistego, Praca zgodna z umiejetnosciami, Możliwość szybkiego awansowania, Stabilnosc zatrudnienia, Dogodne godziny pracy, Możliwość wykonywania pracy w domu, Dlugi urlop, Zajecie powazane przez ludzi, Odpowiednia płaca, Inne czynniki).

Używając tych samych technik co ostatnio, sprawdzimy czy oczekiwania w stosunku do pracy sie zmienily.

 

Po prawej stronie przedstawiono dla każdej cechy dotyczącej pracy informacje jaka frakcja osób uznała tę cechę za ważną. Po lewej stronie mamy wynik jednowymiarowej analizy gradacyjnej.

Zauważmy na początek że odległość tej krzywej od przekątnej, jest dużo większa niz w przypadku pytan o to co ważne w życiu. Wydaje sie to zgodne z intuicja ze pogląd dotyczący wartości waznych w zyciu zmienia sie wolniej niz dotyczacy wartosci waznych w pracy.

Największe zmiany dotyczyły wzrostu liczby osob uwazajacych ze wazna jest stabilnosc zatrudnienia (z 11.8% do 19% a więc zmiana o ponad 60%), duża samodzielnośc w pracy, brak napiec i stresow. Mniej osób za najważniejsze wymienia odpowiednia place czy prace zgodna z umiejętnościami. Mam nadzieje ze jest to zwiazane z tym ze podstawowe potrzeby zwiazane z wystarczająca placa i zatrudnieniem w odpowiednim miejscu zostaly zaspokojone i teraz osoby mogą sie skupic na wyzszych potrzebach. Moze to tez byc związane z rosnacym wiekiem respondentów, sa o 4 lata starsi moga juz cenic inne rzeczy.

Warto zrobic taka analize w podziale na grupy wiekowe, moze wiec wrocimy do tego tematu nastepnym razem.

 

1
2
3
4
5
6
7
8
9
10
11
12
# zbieramy dane kto co uwazal za wazne w pracy w roku 2007 i 2011
zb1 <- colSums(diagnozaOsoby2011[,paste("dp106_",1:12,sep="")]=="TAK zaznaczone",na.rm=T)
zb2 <- colSums(diagnozaOsoby2011[,paste("dp106_",1:12,sep="")]=="NIE zaznaczone",na.rm=T)
zb3 <- colSums(diagnozaOsoby2011[,paste("fp113",c("_1","_2","_3","_4","_5","_6","_7","_8","_9","10","11","12"),sep="")]=="TAK",na.rm=T)
zb4 <- colSums(diagnozaOsoby2011[,paste("fp113",c("_1","_2","_3","_4","_5","_6","_7","_8","_9","10","11","12"),sep="")]=="NIE",na.rm=T)
etykiety <- c("Brak napiec i stresow", "Duza samodzielnosc", "Mozliwosc rozwoju osobistego", "Praca zgodna z umiejetnosciami", "Mozliwosc szybkiego awansowania", "Stabilnosc zatrudnienia", "Dogodne godziny pracy", "Mozliwosc wykonywania pracy w domu", "Dlugi urlop", "Zajecie powazane przez ludzi", "Odpowiednia placa", "Inne czynniki")
dane <- data.frame(TAK2007 = zb1, NIE2007 = zb2, TAK2011=zb3, NIE2011=zb4)
rownames(dane) <- etykiety
zm1 <- dane[,1,drop=F]/dane[,2]
zm2 <- dane[,3,drop=F]/dane[,4]
 
plotGradeStat(zm1, zm2, osX="rok 2007", osY="rok 2011", skala=c(0.002,0.6), cutoff=0.011)

Co jest w życiu ważne?

Ostatnio moi magistranci na mini-seminarium prezentowali jednowymiarową analizę gradacyjną. Służyć może ona między innymi do porównania czy pomiędzy dwoma wektorami obserwacji zmieniła się struktura odpowiedzi. Wygląda to na ciekawą metodę, więc warto ją zaimplementować w R i zobaczyć jak dziala.

Kilka dni temu pisaliśmy o zbiorze Diagnoza Społeczna (http://smarterpoland.pl/index.php/2011/10/diagnoza-spoleczna-2011/), już dołączony do repozytorium. Wykorzystamy go na potrzeby badania analizy gradacyjnej.

W latach 2005 i 2009 w Diagnozie Społecznej ankieterzy pytali respondentów o wskazanie wartości ważnych w ich życiu (zmienne cp2.1-cp2.14 i ep2.1-ep2.14) . Badany mógł wybrać maksymalnie trzy odpowiedzi ze zbioru 14 możliwych (PIENIADZE, DZIECI, UDANE MALZENSTWO, PRACA, PRZYJACIELE, OPATRZNOSC, BOG, POGODA DUCHA, OPTYMIZM, UCZCIWOŚĆ, ŻYCZLIWOŚĆ I SZACUNEK OTOCZENIA, WOLNOSC, SWOBODA, ZDROWIE, WYKSZTALCENIE, SILNY CHARAKTER, INNE). Wykorzystamy analizę gradacyjną by sprawdzić czy zmieniła się struktura wartości w badanej grupie respondentów w przeciągu czterech lat.

Zaczniemy od analizy dwóch czternastoelementowych wektorów. Każdy wektor określi jaka frakcja osób uznała daną wartość za ważną w ich życiu. Porównamy oba wektory, by sprawdzić które wartości zyskały, a które straciły na znaczeniu pomiędzy rokiem 2009 a 2005.

 

 

Kod generujący powyższy rysunek znajduje się poniżej. Po lewej prezentowane są wyniki analizy gradacyjnej, po prawej zwykły wykres rozrzutu. Oba wykresy prezentują te same dane.

Zacznijmy od prawego wykresu. Frakcje osób uznających daną wartośc za ważną unormowano tak, by po zsumowaniu wszystkich wartości otrzymać 1. Osobno dla roku 2005 osobno dla 2009. Każdy punkt opisuje jedną wartość. Współrzędne punktu odpowiadają unormowanej frakcji osób uznających tą wartość za ważną w roku 2005 i 2009. Dorysowano przekątną, dzięki temu punkty pod przekątną odpowiadają wartościom których znaczenie spadło do roku 2009, punkty nad odpowiadają wartosciom których znaczenie wzrosło.

Po lewej stronie przedstawiono te frakcje w sposób skumulowany. Kolejność odpowiada procentowej zmianie ważności w stosunku do roku 2009. Na początku wykresu, przy punkcie 0,0 znajdują się wartości, które zyskały na znaczeniu. Pod koniec wartości, ktore stracily na znaczeniu. Długość kroku odpowiada frakcji osob uznających daną wartość za ważną. Odległość wyrysowanej łamanej od przekątnej obrazuje jak bardzo zmieniła się struktura wartości. W tym przypadku łamana jest blisko przekątnej, więc ludzie nie zmienili istotnie swojego systemu wartości. Dzieci i zdrowie zyskały na ważności. Pieniądze i praca straciły, choć w obu przypadkach nie są to duże zmiany.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
plotGradeStat <- function(zmienna1, zmienna2, uporzadkujMalejaco = TRUE, osX = "", osY = "", skala=c(0.005,0.5), cex.text=0.8, cutoff = 0.01) {
# normalizacja obu cech
  zm1r   <- zmienna1/sum(zmienna1)
  zm2r   <- zmienna2/sum(zmienna2)
  iloraz <- zm1r/zm2r
# jezeli zachodzi taka potrzeba to zmienna sa porzadkowane w kolejn  
  if (uporzadkujMalejaco) {
    zm1r   <- zm1r[order(iloraz, decreasing=FALSE), 1, drop=FALSE]
    zm2r   <- zm2r[order(iloraz, decreasing=FALSE), 1, drop=FALSE]
    iloraz <- zm1r/zm2r
  }
# dwa wykresy w poziomie  
  par(mfrow=c(1,2))
  par(xpd=F)
# pierwszy wykres to analiza gradacyjna
# dla jednowymiarowych danych  
  plot(c(0,cumsum(zm1r[,1])),c(0,cumsum(zm2r[,1])),type="b",pch=19,xlab=osX,ylab=osY)
  abline(0,1,col="grey")
  par(xpd=NA)
# korekta na zachodzace etykiety
  odleglosci <- sqrt(diff(c(0,cumsum(zm1r[,1])))^2+diff(c(0,cumsum(zm2r[,1])))^2)
  korekta    <- numeric(length(odleglosci))
  for (i in seq_along(korekta)) {
      if (odleglosci[i] < cutoff) 
          korekta[i] <- cutoff + korekta[i-1]
  }
  text(cumsum(zm1r[,1])+korekta+2*cutoff,cumsum(zm2r[,1])+korekta-2*cutoff,rownames(zm1r), srt=-45, adj=c(0,0),cex=cex.text)
  text(cumsum(zm1r[,1])+korekta-2*cutoff,cumsum(zm2r[,1])+korekta+2*cutoff,paste(round((1/iloraz[,1]-1)*1000)/10," %",sep=""), srt=-45, adj=c(1,1),cex=cex.text)
  par(xpd=F)
# drugi wykres to klasyczny wykres rozrzutu
  plot(1,type="n",log="xy",xlim=skala,ylim=skala, las=1, cex.axis=0.8, xlab=osX, ylab=osY)
  abline(0,1,col="grey")
  abline(h=c(0.0001*c(1,2,5),0.001*c(1,2,5),0.01*c(1,2,5),0.1*c(1,2,5)),col="grey95")
  abline(v=c(0.0001*c(1,2,5),0.001*c(1,2,5),0.01*c(1,2,5),0.1*c(1,2,5)),col="grey95")
  points(zm1r[,1],zm2r[,1],pch=19)
  par(xpd=NA)
  text(zm1r[,1],zm2r[,1],rownames(zm1r), srt=-45, adj=c(-0.1,-0.1),cex=cex.text)
  par(xpd=F)
}
 
# zbieramy dane kto co uwazal za istotne w zyciu w roku 2005 i 2009
zb1 <- colSums(diagnozaOsoby2011[,paste("cp2_",1:14,sep="")]=="TAK",na.rm=T)
zb2 <- colSums(diagnozaOsoby2011[,paste("cp2_",1:14,sep="")]=="NIE",na.rm=T)
zb3 <- colSums(diagnozaOsoby2011[,paste("ep2_",1:14,sep="")]=="TAK",na.rm=T)
zb4 <- colSums(diagnozaOsoby2011[,paste("ep2_",1:14,sep="")]=="NIE",na.rm=T)
# etykiety, co jest wazne w zyciu
etykiety <- c("PIENIADZE", "DZIECI", "UDANE MALZENSTWO", "PRACA", "PRZYJACIELE", "OPATRZNOSC, BOG", "POGODA DUCHA, OPTYMIZM", "UCZCIWOSC", "ZYCZLIWOSC I SZACUNEK OTOCZENIA", "WOLNOSC, SWOBODA", "ZDROWIE", "WYKSZTALCENIE", "SILNY CHARAKTER", "INNE")
# tabela opisujaca ktora wartosc ile osob zaznaczylo lub nie w wymienionych powyzej latach
dane <- data.frame(TAK2005 = zb1, NIE2005 = zb2, TAK2009=zb3, NIE2009=zb4)
rownames(dane) <- etykiety
zm1 <- dane[,1,drop=F]/dane[,2]
zm2 <- dane[,3,drop=F]/dane[,4]
 
plotGradeStat(zm1, zm2, osX="rok 2005", osY="rok 2009", skala=c(0.001,0.5),cutoff=0.01)

Zmiany zamożności Polaków na kolorowo

Trzy dni temu pisaliśmy o tym jak zmienia się zamożność gospodarstw badanych w ramach Diagnozy Społecznej (ponad 20 tys gospodarstw).
Generalny wniosek jest taki, że coraz więcej gospodarstw domowych poprawiło swój standard przez ostatnie 6 lat (porównywaliśmy wyniki z lat 2005 i 2011). Zobaczmy jak ta sytuacja wygląda w rożnych województwach.
Na poniższych wykresach wykonamy analizę gradacyjną, kolorami zaznaczając wyniki różnych województw.


Aby było czytelniej wybraliśmy pięć województw, dla których wyniki były ciekawe. Są to województwa Zachodni-pomorskie, Mazowieckie, Dolnośląskie, Lubuskie i Świętokrzyskie. Etykiety zamiast przy punktach zostały umieszczone w prawej dolnej legendzie. Jak czytać te wykresy? Ponieważ odpowiedzi są w skali uporządkowanej możemy interpretować bezpośrednio położenie k-tego punktu,  anie tylko ścieżkę do niego prowadzącą (jak na poprzednich przykładach).
Etykieta 5 oznacza, że wystarcza tylko na najtańsze jedzenie, ubranie, opłaty, kredyt. Ponieważ na wykresie współrzędne punktów to skumulowane częstości dla danego i niższych poziomów, więc współrzędne punktów z etykietą 5 oznaczają frakcję osób, którym starcza tylko na najtańsze jedzenie, kredyt, ubrania lub i na to nie. W województwie zachodnio-pomorskim w roku 2005 takich osób było około 40% (współrzędna OX brązowej 5), ale w roku 2011 było już takich osób niewiele ponad 20%. Praktycznie w każdym z narysowanych województw współrzędna OY dla cyfry 7 to 80%, co oznacza, że w roku 2011 80% gospodarstw w tych województwach deklarowało, że muszą żyć oszczędnie, bardzo oszczędnie a czasem i to nie wystarcza. W roku 2005 procent takich deklaracji był wyższy w każdym z województw, najwięcej spadł w Świętokrzyskim z około 90%.

Im dalej punkt od przekątnej tym większa zmiana do tego poziomu. Przykładowo różowa 6 ilustruje, że w województwie Lubuskim osób które żyją bardzo oszczędnie a i to czasem nie starcza było ponad 60% w roku 2005 a w 6 lat później było ich już tylko około 40%.

Mniejsze zmiany dotknęły województw Mazowieckiego i Dolnośląskiego.

Na zakończenie wykres dla wszystkich województw, dosyć gęsty, 16 krzywych zachodzi na sobie co utrudnia odcyfrowywanie wyników. W każdym województwie krzywa jest w większości pod przekątną co znaczy, że jest raczej lepiej niż przed 6 laty.