Scatterplots är bra för att visa samband mellan två kontinuerlinga variabler, med värden jämt utspridda på en skala. Men om man till exempel jobbar med enkätdata finns det ofta ett begränsat antal svarsalternativ, vilket gör att respondenterna återfinns inom några få kombinationer. Det gör scatterplots olämpliga.
Ett alternativ för att visualisera datan är då att använda sig av stapeldiagram. Ett av Statas kommandon för dem låter oss snabbt summera variabler och visa dem på ett överskådligt sett. I det här exemplet ska vi titta närmare på sambandet mellan utbildning och inkomst i USA, med hjälp av den amerikanska General Social Survey. Den går att ladda ned här https://gss.norc.org/get-the-data/stata och vi kommer använda 2018-upplagan.
cd "/Users/anderssundell/Dropbox/Jupyter/stathelp/data/"
use "GSS2018.dta", clear
Variabeln för utbildning heter degree
och har fem värden. Variabeln för inkomst är en skala som anger respondentens inkomst i dollar, realrinc
. USA är känt för att ha en hög "education premium", dvs att det lönar sig väldigt väl att utbilda sig. Löneskillnaderna är stora. Vi tar fram ett stapeldiagram med graph bar
-kommandot, anger att vi vill ha medelvärden av variabeln realrinc
, och säger till sist att vi vill ha en stapel för varje värde av variabeln degree
. Eftersom degree
har fem värden blir det fem staplar.
graph bar (mean) realrinc, over(degree)
Diagrammet visar på väldigt tydliga skillnader: De som till exempel har en kandidatexamen tjänar ungefär dubbelt så mycket som de som bara har gått high school eller junior college.
Vill vi ha liggande staplar (till exempel om man har mycket text i kategorimarkörerna) är det lätt gjort: det är bara att byta ut graph bar
mot graph hbar
i koden.
graph hbar (mean) realrinc, over(degree)
Stapeldiagrammet visar snabbt ungefär hur mycket de olika grupperna tjänar. Men om man vill veta exakt kan det vara bra att skriva ut de faktiska siffrorna. Det gör vi genom att lägga till etiketter som visar staplarnas höjd.
För det behöver vi ett option blabel(bar)
. Det lägger vi till efter over. Vi kan även prova att byta ut medelvärdet mot medianen, vilket ofta är lämpligt när man jobbar med inkomster, eftersom några få med extrema inkomster drar upp medelvärdet mycket.
Vi gör också två kosmetiska förändringar: Vi byter ut texten på y-axeln till något prydligare med option ytitle
, och ändrar färgen på staplarna med bar(1, color(purple))
.
graph bar (median) realrinc, over(degree) blabel(bar) ytitle("Medianinkomst i dollar") bar(1, color(purple))
Nu framträder mönstret ännu tydligare. De med graduate degree - motsvarande masterexamen - tjäner nästan fyra gånger så mycket i genomsnitt som de med den lägsta utbildningsnivån.
Precis som med alla grafer kan man lägga oändligt med tid på att slipa på dem för att få dem exakt som man vill. Men bara med de ganska snabba inställningarna vi använt här kommer man långt, och ett prydligt stapeldiagram gör ofta mycket för att förmedla huvuddragen i en datamängd.