Generering av aggregert statistikk på variabelnivå

Med kommandoen aggregate kan du enkelt opprette nye variabler som inneholder aggregerte utregninger basert på eksisterende variabler. Utregningene kan grupperes etter utvalgte kategorier.

La oss si at du har et fullpopulasjons datasett på personnivå som blant annet inneholder en variabel med data om bostedskommune. Du ønsker å legge til en kontekstuell opplysning om antallet bosatte i hver kommune, der alle individer bosatt i samme kommune får samme verdi for antall bosatte. Da setter du enkelt opp følgende uttrykk:

aggregate (count) kjønn -> ant_bosatte, by(kommune)

Man teller altså antall individer med en verdi på kjønn i de respektive kommuner gitt ved by()-uttrykket, noe som er ekvivalent med å foreta en fulltelling (siden alle personer har en verdi for kjønn). Resultatet er en ny variabel, ant_bosatte, som inneholder antallet bosatte i individets bostedskommune. For at opptellingen skal bli riktig, er det viktig at datasettet ditt inneholder en totalpopulasjon (alle bosatt i Norge på det gitte tidspunkt).

Eksempel der vi lager kontekstuelle variabler som viser antall bosatte, antall arbeidssøkere (registrert hos NAV) og andel arbeidssøkere i forhold til befolkningen i hver kommune. Ved å telle alle med en verdi på variabelen arbeidssøker, foretar man i praksis en opptelling av antall arbeidssøkere (det er kun arbeidssøkere hos NAV som har en verdi på denne variabelen, alle andre har missing på denne og holdes derfor utenfor opptellingen):

Et annet scenario: Du har et datasett med variablene kjønn og lønnsinntekt. Du ønsker å legge til kontekstuell informasjon om gjennomsnittlig lønnsinntekt knyttet til menn og kvinner. Da setter du opp dette uttrykket som lager variabelen snittlønn_kjønn:

aggregate (mean) lønnsinntekt -> snittlønn_kjønn, by(kjønn)

Eksempel der vi lager variabler som viser gjennomsnittslønn for hhv. kjønn, bostedskommune og bostedsfylke, og foretar en analyse av effekten av gjennomsnittslønn i bostedskommunen på egen lønn:

Måletypene som er tilgjengelig for aggregate() er de samme som for collapse():

  • count (antall enheter med gyldig verdi)
  • mean
  • median
  • min
  • max
  • sum
  • sd (standardavvik)
  • semean (standardfeil av gjennomsnitt)
  • sebinomial (binomial standardfeil av gjennomsnitt)
  • percent (prosentandel gyldige verdier)
  • iqr (interkvartilbredde)

Merk at aggregate() lar deg lage flere variabler med aggregerte utregninger, og med ulike typer utregninger.

Eksempler:

Aggregate vs collapse

Kommandoen aggregate() gjør det kort fortalt mye enklere å lage aggregerte verdier enn ved bruk av kommandoen collapse():

  • aggregate(): Variabler opprettes med ferdig aggregerte utregninger i eksisterende datasett
  • collapse(): Hele datasettet aggregeres basert på grupperingsvariabelen som benyttes. Om dette er en kommunevariabel og datasettet ditt har person som enhetsnivå, vil datasettet ditt etter operasjonen bli aggregert opp fra person til kommunenivå. Videre vil variabelen du aggregerer opp (f.eks. lønnsinntekt) erstattes med aggregert verdi for det nye aggregeringsnivået (kommune).
  • Begge kommandoene genererer aggregert statistikk som grupperes over en kategorisk variabel, men der collapse() aggregerer hele datasettet opp til det nivået man grupperer verdiene over (f.eks. kommuner), vil aggregate() i stedet bare opprette en ny variabel som inneholder de aggregerte utregningene. Videre vil enheter med samme verdi for grupperingsvariabel (f.eks. alle med samme bostedskommune) få samme aggregerte verdi (f.eks. gjennomsnittsverdi for bostedskommunen).

Man vil få samme resultat gjennom collapse() som for aggregate() dersom man benytter det aggregerte datasettet og kobler dette på rådatasettet med grupperingsvariabelen (kommune) som koblingsnøkkel. Du må da opprette to like datasett der det ene brukes til aggregering, mens det andre (rådatasettet) brukes som base/mottaker for påkobling av de aggregerte verdiene (via grupperingsvariabel).