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.
Footnotes
-
Se kapittel 2.8 ↩