Datastrukturer. Kevin Thon. 25 april 2017

Like dokumenter
Datastrukturer. Kevin Thon. 25 april 2017

Datavask - klargjøring av data for analyse. Kevin Thon

Kom i gang med Stata for Windows på UiO - hurtigstart for begynnere

DATAUTFORSKNING I EG, EG 7.1 OG EGENDEFINERTE FUNKSJONER SAS FANS I STAVANGER 4. MARS 2014, MARIT FISKAAEN

Kvalitetssikre og analysere egne data - Nødvendig kunnskap

ting å gjøre å prøve å oppsummere informasjonen i Hva som er hensiktsmessig måter å beskrive dataene på en hensiktsmessig måte.

Den norske mor og barn undersøkelsen Versjon 2

Mål. Pensum. TDT4110 Informasjonsteknologi grunnkurs: Tema: Et større case. Terje Rydland - IDI/NTNU. Lære å lage større og sammensatte programmer

Bakgrunn. Viktig del av kvalitetsstrategien Et viktig helsepolitisk mål HOD med styringssignaler til RHF

Dagens temaer. Sekvensiell logikk: Kretser med minne. D-flipflop: Forbedring av RS-latch

ØVINGER 2017 Løsninger til oppgaver. Øving 1

En lett innføring i foreninger (JOINs) i SQL

BEGYNNERKURS I SPSS. Anne Schad Bergsaker 17. november 2017

GrandView. Et dataprogram for samle, organisere og analysere mengder av ulike typer informasjon. Brukermanual

Den norske mor og barn undersøkelsen Versjon 2

BEGYNNERKURS I SPSS. Anne Schad Bergsaker 12. februar 2019

Parallelle og distribuerte databaser del III

Tirsdag 21/11. Onsdag 24/11. Tirsdag 12/12. TDT4110 Informasjonsteknologi grunnkurs: Tema: Et større case

TDT4110 Informasjonsteknologi grunnkurs: Programmering: En større case. Professor Alf Inge Wang

Læringsmål og pensum. En større case. Mål Lære å lage større og sammensatte programmer Pensum Kapitlene 1-9 og 12.

GJENNOMGANG UKESOPPGAVER 9 TESTING

Eksport /Import person

Verdier, variabler og forms

TDT4110 Informasjonsteknologi grunnkurs: Eksempler. Mangekanter

TDT4110 Informasjonsteknologi grunnkurs: Kapittel 7 Filer og unntak ( exceptions ) Professor Alf Inge Wang Stipendiat Lars Bungum

Øvingsforelesning TDT4105

Repetisjon: Normalformer og SQL

Sensorveiledning for IN2090 og INF desember :30 18:30 (4 timer)

Tilkobling og Triggere

Romlig datamanipulering

NRFs administrasjon TLF Norske Rørgrossisters Forening. Effektiv informasjonslogistikk. Terje Røising Daglig leder

Utvidet brukerveiledning

Brukerveiledning. Enkelt søk i Naturbase. Versjon 23. februar 2015

Hva kan vi forvente og kreve?

Eksamen i SLI 5 høsten 1993

GoOnline Site Search

Datamodellering og databaser SQL, del 2

Morfologi i Binære Bilder

Verktøy for boligkartlegging

Verktøy for boligkartlegging

Deskriptiv statistikk., Introduksjon til dataanalyse

Deskriptiv statistikk., Introduksjon til dataanalyse

Python: Intro til funksjoner. TDT4110 IT Grunnkurs Professor Guttorm Sindre

TDT4300 Datavarehus og datagruvedri3, Våren 2014

Hva kan et klinisk fagsystem bidra med til kvalitetsregistre?

TDT4110 Informasjonsteknologi grunnkurs: Uke 43: Datastrukturer (kap. 8)

Kategoriske data, del I: Kategoriske data - del 2 (Rosner, ) Kategoriske data, del II: 2x2 tabell, parede data (Mc Nemar s test)

Lage større programmer (Python, relatert til teoridelen om Software Engineering ) TDT 4110 IT Grunnkurs Professor Guttorm Sindre

IN2090 Databaser og datamodellering. Databasedesign og normalformer

Semantisk Analyse del I

ST0103 Brukerkurs i statistikk Høst 2014

XSLT 2. David Massey MBIB

MAT1030 Diskret Matematikk

Viktig informasjon ang. lagringsområder

Integrasjon mot Active Directory i EK 2.37

Veileder til levering og godkjenning av rapporteringsdata til DBH-F

Utplukk og sortering. Innhold

Metaspråket for å beskrive grammatikk

PG4200 Algoritmer og datastrukturer Forelesning 7

FÅ KONTROLL PÅ DE USTRUKTURERTE DATAENE

BEGYNNERKURS I SPSS. Anne Schad Bergsaker 26. april 2018

Løsningsforslag for Obligatorisk Oppgave 3. Algoritmer og Datastrukturer ITF20006

Analysekurs Bevisst. Superbrukere

TDT4105 Informasjonsteknologi grunnkurs: Uke 43: Datastrukturer (kap. 8)

Team2 Requirements & Design Document Værsystem

IN uke 1. Komme i gang med programmering

Dette dokumentet beskriver ny funksjonalitet i NOBB Kontrakt versjon 7.0. Merk at alle skjermbilder i beskrivelsen er gjort med fiktive data.

TDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python

Problemer med Indre joins. Inner joins og manglende verdier med aggregater. Left Outer Join. Outer Joins. Hvor mange har kjøpt hvert produkt?

Innhold uke 10. Objektorientert programmering i Python. Oblig 7 og 8. IN1000 Seminar! IN1000 Høst 2018 uke 10 Siri Moe Jensen

IN Algoritmer og datastrukturer

Løsningsforslag til eksamen i IN2090 Databaser og datamodellering og INF1300 Introduksjon til databaser 6. desember :30 18:30 (4 timer)

RESULTATHÅNDTERING Guide om håndtering av resultater for klubber (eksport og import)

TDT4110 Informasjonsteknologi grunnkurs: Tema: Funksjoner med retur og moduler. - 3rd edition: Kapittel Professor Alf Inge Wang

INF april, 2013 Kap. 8 Noen oppgaver som er meget relevante for Oblig 2

TDT4105 Informasjonsteknologi, grunnkurs MatLab: Filbehandling - load, save, type - fopen, fgetl, feof, fprintf, fclose

Gruppe prosjekt del 3. INFO134 Klientprogrammering Vår 2017 Kandidatnummer: 304, 298

IN2090 Databaser og datamodellering. 06 Enkele joins og nestede SELECT

Import/Eksport av SOSI

PROGRAMUTVIKLINGSPLAN. Big Data and Machine Learning

SPSS Statistics-kurs 2014

Oversikt. Beskrivelse Bash. 1 UNIX shell. 2 Kommandolinje som brukergrensesnitt. 3 Input og output. 4 Bash builtins. 5 Linux utilities.

OPPGAVESETTET BESTÅR AV 3 OPPGAVER PÅ 6 SIDER MERKNADER: Alle deloppgaver vektlegges likt.

Unit Relational Algebra 1 1. Relational Algebra 1. Unit 3.3

PG 4200 Algoritmer og datastrukturer Innlevering 2

Simulerings-eksperiment - Fysikk/Matematikk

Læringsmål og pensum. if (be): else (not_to_be):

Kapittel 1: Data og fordelinger

UNIVERSITETET I OSLO

Tom Røise 2/28/2007. IMT2243 : Systemutvikling 1. Forelesning IMT mars Tema : Litteratur : Strukturert analyse. Strukturert analyse

Status tekniske løsninger Medisinske kvalitetsregistre. HelsIT 23 september 2010 Avdelingsleder

Begynnerkurs i Stata. UiO vår 2019, Knut Waagan 1 / 95

INF 3430/4431. Simuleringsmetodikk

Rutenettsmodell Import av Laserscan datafiler

Brukerveiledning Excelmal Merkesystem 2017

INF 3430/4430. Simuleringsmetodikk

Redigere innsynsmodulens oppslagsregistre

STYRINGSSYSTEMER OG VERDISKAPING; HVOR STÅR BUDSJETTET I NORSKE VIRKSOMHETER?

DIN DIGITALE PARTNER

Institutt for økonomi og administrasjon

Transkript:

Datastrukturer Kevin Thon 25 april 2017

Innledning De fleste som er involvert med registerdata på et eller annet plan vil et et tidspunkt måtte forholde seg til hvordan dataen er strukturert. Dette gjelder f.eks. ved: Utvikling/design av register Eksport/import av registerdata Analyse av registerdata Validering av registerdata

Avgrensing Denne forelesningen vil i stor grad ha fokus på data ut og kun i liten grad berøre temaer som omhandler databaser og effektiv datalagring.

Avgrensing Denne forelesningen vil i stor grad ha fokus på data ut og kun i liten grad berøre temaer som omhandler databaser og effektiv datalagring. Det betyr fokus på et bredere tema nemlig vasking/rydding av data for å etablere analyseklare datasett. Praktiske eksempler vil benytte statistikkprogrammet R men fokus vil være på underliggende konsepter.

Avgrensing Denne forelesningen vil i stor grad ha fokus på data ut og kun i liten grad berøre temaer som omhandler databaser og effektiv datalagring. Det betyr fokus på et bredere tema nemlig vasking/rydding av data for å etablere analyseklare datasett. Praktiske eksempler vil benytte statistikkprogrammet R men fokus vil være på underliggende konsepter. Disclaimer: Innholdet er sterkt inspirert av Hadley Wickham sin artikkel Tidy Data og eksemplene er hentet direkte derfra.

Definisjoner De fleste statistiske datasett er rektangulære tabeller bestående av rader og kolonner. Table 1: En tabell med behandlingsresultatet av to metoder i et fiktivt eksperiment treatmenta treatmentb John Smith - 8 Jane Doe 15 14 Mary Johnson 17 12

Definisjoner forts. Et datasett er en samling verdier, typisk numeriske eller tekstlige. Hver verdi tilhører en variabel og en observasjon.

Definisjoner forts. Et datasett er en samling verdier, typisk numeriske eller tekstlige. Hver verdi tilhører en variabel og en observasjon. En variabel inneholder alle verdier som måler samme underliggende atributt på tvers av enheter. Eksempler: Høyde, blodtrykk, O 2 -opptak.

Definisjoner forts. Et datasett er en samling verdier, typisk numeriske eller tekstlige. Hver verdi tilhører en variabel og en observasjon. En variabel inneholder alle verdier som måler samme underliggende atributt på tvers av enheter. Eksempler: Høyde, blodtrykk, O 2 -opptak. En observasjon inneholder alle verdier målt på samme enhet (f.eks person, operasjon, dag) på tvers av atributter.

Oppgave treatmenta treatmentb John Smith - 8 Jane Doe 15 14 Mary Johnson 17 12 Oppgave: Hva er variablene i dette datasettet?

Oppgave treatmenta treatmentb John Smith - 8 Jane Doe 15 14 Mary Johnson 17 12 Oppgave: Hva er variablene i datasettet? Løsningsforslag: 1. person med verdiene John Smith, Mary Johnson, and Jane Doe 2. behandling med verdiene a og b 3. resultat med verdiene 8, 15 14, 17, 12 (og én missing)

Hva er god datastruktur? Avhengig av formålet

Hva er god datastruktur? Avhengig av formålet God struktur for lagring er ikke nødvendigvis god struktur for analyse

Hva er god datastruktur? Avhengig av formålet God struktur for lagring er ikke nødvendigvis god struktur for analyse Forskjellige typer analyse kan forusette forskjellig struktur

Hva er god datastruktur? Avhengig av formålet God struktur for lagring er ikke nødvendigvis god struktur for analyse Forskjellige typer analyse kan forusette forskjellig struktur Forskjellig programvare kan forutsette ulik struktur for samme analyser...

Data i flere tabeller Et register sin database vil typisk bestå av flere tabeller, f.eks.: Pasientinfo Behandlerskjema/intervensjon Oppfølging Som regel ønsker registerfolk/forskere data i én fil - kobling overlates til IT leverandør Ikke alltid praktisk mulig f.eks. for kronikerregister med vilkårlig antall oppfølginger

Kobling av data - prinsipper Hver tabell vil ha én eller flere koblingsnøkler Pasient-ID Foløps-ID Ved en kobling matcher man rader med samme koblingsnøkkel Forskjellige måter å koble data: Inner join: Behold rader med koblingsnøkkel i begge tabeller Left outer join: Behold alle rader i venstre tabell, de som ikke har matchende koblingsnøkkel i høyre tabell blir tomme Full outer join: Behold alle rader, ikke-matchede (venstre eller høyre) blir tomme Right outer join: Behold alle rader i høyre tabell, de som ikke har matchende koblingsnøkkel i venstre tabell blir tomme

Kobling av data - eksempler Eksempeldata: PART PRODNR SUPPLIER WIRE 10 ACWF OIL 160 WESTERN_CHEM MAGNETS 10 BATEMAN PLASTIC 30 PLASTIK_CORP BLADES 205 ACE_STEEL PRODUCT PRODNR PRICE SCREWDRIVER 505 3.70 RELAY 30 7.55 SAW 205 18.90 GENERATOR 10 45.75

Kobling av data - eksempler Inner join: PRODNR PART SUPPLIER PRODUCT PRICE 10 WIRE ACWF GENERATOR 45.75 10 MAGNETS BATEMAN GENERATOR 45.75 30 PLASTIC PLASTIK_CORP RELAY 7.55 205 BLADES ACE_STEEL SAW 18.90

Kobling av data - eksempler Figure 1

Ryddig (tidy) data Et datasett er ryddig når: 1. Hver variabel utgjør en kolonne 2. Hver observasjon utgjør en rad (noe forenklet... )

Ryddig versjon av Tabell 1. treatmenta treatmentb John Smith - 8 Jane Doe 15 14 Mary Johnson 17 12 name trt result John Smith a - Jane Doe a 15 Mary Johnson a 17 John Smith b 8 Jane Doe b 14 Mary Johnson b 12

Rotete data Datasett man treffer på i villmarken vil ofte bryte med prinsippene for ryddige datasett, og det på alle mulige måter. F.eks.: Kolonnenavn kan være verdier (ikke variabelnavn)

Rotete data Datasett man treffer på i villmarken vil ofte bryte med prinsippene for ryddige datasett, og det på alle mulige måter. F.eks.: Kolonnenavn kan være verdier (ikke variabelnavn) Flere variabler kan være lagret i én kolonne

Rotete data Datasett man treffer på i villmarken vil ofte bryte med prinsippene for ryddige datasett, og det på alle mulige måter. F.eks.: Kolonnenavn kan være verdier (ikke variabelnavn) Flere variabler kan være lagret i én kolonne Variabler kan være lagret i både rader og kolonner

Kolonnenavn kan være verdier religion <$10k $10-20k $20-30k $30-40k Agnostic 27 34 60 81 Atheist 12 27 37 52 Buddhist 27 21 30 34 Catholic 418 617 732 670 Don t know/refused 15 14 15 11 Evangelical Prot 575 869 1064 982 Hindu 1 9 7 9 Historically Black Prot 228 244 236 238 Jehovah s Witness 20 27 24 24 Jewish 19 19 25 25

Ryddig form religion income freq Agnostic <$10k 27 Agnostic $10-20k 34 Agnostic $20-30k 60 Agnostic $30-40k 81 Agnostic $40-50k 76 Agnostic $50-75k 137 Agnostic $75-100k 122 Agnostic $100-150k 109 Agnostic >150k 84 Agnostic Don t know/refused 96 Atheist <$10k 12 Atheist $10-20k 27 Atheist $20-30k 37 Atheist $30-40k 52

Flere variabler kan være lagret i én kolonne country year m014 m1524 m2534 m3544 m4554 11 AD 2000 0 0 1 0 0 37 AE 2000 2 4 4 6 5 61 AF 2000 52 228 183 149 129 88 AG 2000 0 0 0 0 0 137 AL 2000 2 19 21 14 24 166 AM 2000 2 152 130 131 63 179 AN 2000 0 0 1 2 0 208 AO 2000 186 999 1003 912 482 237 AR 2000 97 278 594 402 419 266 AS 2000 - - - - 1

Opprydding country year column cases AD 2000 m014 0 AD 2000 m1524 0 AD 2000 m2534 1 AD 2000 m3544 0 AD 2000 m4554 0 AD 2000 m5564 0 AD 2000 m65 0 AE 2000 m014 2 AE 2000 m1524 4 AE 2000 m2534 4 AE 2000 m3544 6 AE 2000 m4554 5 AE 2000 m5564 12 AE 2000 m65 10 AE 2000 f014 3

Opprydding country year sex age cases AD 2000 m 0-14 0 AD 2000 m 15-24 0 AD 2000 m 25-34 1 AD 2000 m 35-44 0 AD 2000 m 45-54 0 AD 2000 m 55-64 0 AD 2000 m 65+ 0 AE 2000 m 0-14 2 AE 2000 m 15-24 4 AE 2000 m 25-34 4 AE 2000 m 35-44 6 AE 2000 m 45-54 5 AE 2000 m 55-64 12 AE 2000 m 65+ 10 AE 2000 f 0-14 3

Flere variabler i én kolonne: Norsk register Figure 2

Variabler kan være lagret i både rader og kolonner id year month element d1 d2 d3 d4 d5 MX17004 2010 1 tmax - - - - - MX17004 2010 1 tmin - - - - - MX17004 2010 2 tmax - 27.3 24.1 - - MX17004 2010 2 tmin - 14.4 14.4 - - MX17004 2010 3 tmax - - - - 32.1 MX17004 2010 3 tmin - - - - 14.2 MX17004 2010 4 tmax - - - - - MX17004 2010 4 tmin - - - - - MX17004 2010 5 tmax - - - - - MX17004 2010 5 tmin - - - - -

Opprydding id date element value MX17004 2010-01-30 tmax 27.8 MX17004 2010-01-30 tmin 14.5 MX17004 2010-02-02 tmax 27.3 MX17004 2010-02-02 tmin 14.4 MX17004 2010-02-03 tmax 24.1 MX17004 2010-02-03 tmin 14.4 MX17004 2010-02-11 tmax 29.7 MX17004 2010-02-11 tmin 13.4 MX17004 2010-02-23 tmax 29.9 MX17004 2010-02-23 tmin 10.7

Opprydding id date tmax tmin MX17004 2010-01-30 27.8 14.5 MX17004 2010-02-02 27.3 14.4 MX17004 2010-02-03 24.1 14.4 MX17004 2010-02-11 29.7 13.4 MX17004 2010-02-23 29.9 10.7 MX17004 2010-03-05 32.1 14.2 MX17004 2010-03-10 34.5 16.8 MX17004 2010-03-16 31.1 17.6 MX17004 2010-04-27 36.3 16.7 MX17004 2010-05-27 33.2 18.2

Ryddige data - hva så? Ryddige verktøy: Ryddig input -> ryddig output Forenkler en sammensatt analyse siden output fra ett verktøy kan gis som input til et annet

Ryddige data - hva så? Ryddige verktøy: Ryddig input -> ryddig output Forenkler en sammensatt analyse siden output fra ett verktøy kan gis som input til et annet Kan potensielt forenkle de vanligste operasjoner på data: Manipulering (filtrering, transformering, aggregering, sortering) Plotting/visualisering (ggplot2) Modellering (f.eks regresjonsanalyse)

Oppsummering Vær bevisst hva du ønsker å bruke dataen til

Oppsummering Vær bevisst hva du ønsker å bruke dataen til Ingen fasit, bli kjent med mulighetene i ditt foretrukne verktøy

Oppsummering Vær bevisst hva du ønsker å bruke dataen til Ingen fasit, bli kjent med mulighetene i ditt foretrukne verktøy En konsistent måte å tenke dataorganisering og struktur gjør at man slipper å begynne fra scratch for hvert datasett

Oppsummering Vær bevisst hva du ønsker å bruke dataen til Ingen fasit, bli kjent med mulighetene i ditt foretrukne verktøy En konsistent måte å tenke dataorganisering og struktur gjør at man slipper å begynne fra scratch for hvert datasett Struktur bare én av mange utfordringer Takk for meg!