Skip to main content

3.4 Generere aggregerte verdier over tid - collapse

I tillegg til å aggregere data til et høyere enhetsnivå1, f.eks. fra personnivå til familienivå (eller kommunenivå), kan kommandoen collapse også benyttes om en ønsker å beregne verdier målt over et angitt tidsspenn. En foretar da i praksis en aggregering fra hendelsesnivå/forløpsnivå til personnivå. Eksempler kan være beregninger av varighet i en tilstand målt over et gitt tidsintervall, uthenting av tilstand/status i et gitt tidsintervall, uthenting av antall forekomster i gitte tilstander/statuser i et gitt tidsintervall, eller summering av verdier over et gitt tidsintervall.

Dette gjøres på hendelsesorganiserte datasett (se kapittel 2.3.2) gjennom følgende kommando:

collapse (<aggregeringstype>) <datasett>, by(<enhetsid>)

En angir altså hva slags type aggregering en vil foreta i parentesen bak collapse, og deretter navnet på et hendelsesorganisert datasett. Aggregeringstype kan være følgende:

  • max maksverdi

  • min minimumsverdi

  • mean gjennomsnittsverdi

  • median medianverdi

  • count antall verdier

  • sum sum av verdier

  • semean standardfeil av gjennomsnitt

  • sebinomial binominal standardfeil av gjennomsnitt

  • sd standardavvik

  • percent prosentandel gyldige verdier

  • iqr interkvartilbredde (avstand mellom 75. og 25. prosentil)

Opsjonen by(<enhetsid>) brukes til å angi enhetstypen en skal aggregere over. Dette vil som regel være individ, gitt ved enhetsid PERSONID_1.

Eksempel 1: Beregne antall ganger individene har skiftet sivilstand i løpet av 2000-2005

 require no.ssb.fdb:23 as db

create-dataset sivstforløp
import-event db/SIVSTANDFDT_SIVSTAND 2000-01-01 to 2005-01-01 as sivstperiode
collapse (count) sivstperiode, by(PERSONID_1)

rename sivstperiode antsivstand
replace antsivstand = antsivstand - 1

tabulate antsivstand
 

Eksempel 2: Beregne antall ganger individene har skilt seg i løpet av 2000-2005

 require no.ssb.fdb:12 as db
create-dataset sivstforløp
import-event db/SIVSTANDFDT_SIVSTAND 2000-01-01 to 2005-01-01 as sivstperiode
keep if sivstperiode == '4'
collapse (count) sivstperiode, by(PERSONID_1)
rename sivstperiode antgangerskilt
tabulate antgangerskilt
 

Merk at variabelen sivstperiode i utgangspunktet angir sivilstand (hver nye record representerer en endring i sivilstand). Gjennom trinnene i eksemplene blir imidlertid variabelen transformert fra å inneholde sivilstand på hendelsesnivå til etterpå å inneholde count-verdien målt over 2000-2005 på enhetsnivå (= individ). Etter at collapse er kjørt inneholder variabelen sivstperiode altså en verdi som angir hvor mange sivilstatuser hvert individ har hatt over den angitte perioden (eksempel 1) eller hvor mange ganger en har hatt sivilstatusen "skilt" (= antall ganger skilt) (eksempel 2).

NB! For å kunne jobbe videre med den aggregerte verdien generert gjennom collapse, må en koble datasettet sammen med de øvrige variabler som ligger i hoveddatasettet bygget opp gjennom import-prosedyren (se kapittel 2.3.1). Se kapittel 2.8 for hvordan dette gjøres.


  1. Se kapittel 2.8