Dorte Aaquist Hougaard står i spidsen for SAS-modernisering hos Lundbeck

Privat har Dorte to børn og er glad for Geocaching – skattejagt i naturen med gps.

Privat har Dorte to børn og er glad for Geocaching – skattejagt i naturen med gps.

Lundbeck har igennem de seneste måneder med succes opgraderet deres SAS-platform til SAS® 9.4, hvilket betyder, at programmering nu foregår i SAS® Enterprise Guide®. I den forbindelse har de givet 55 SAS-brugere i Danmark, Singapore, USA og Frankrig et fælles kompetenceløft.

Dorte Aaquist Hougaard, som til daglig er leder for 16 SAS-programmører i afdelingen Biometric Programming, har stået for projektet.

“Det er virkelig gået godt, vi har kunnet holde budget og tidsplaner, og vi er meget tilfredse med de performanceforbedringer og den ny funktionalitet, vi har fået ud af at opgradere vores SAS-miljø. Vi har også fået gode tilbagemeldinger på uddannelsesdelen,” fortæller Dorte.

“Sandkasse” i projektopstart 
Når det samlede opgraderingsprojekt forløb stramt og effektivt, skyldes det ifølge Dorte i høj grad, at de tog sig tid til at teste den nye software, inden beslutning om opgradering blev taget.

“Vi gjorde det uformelt ved brug af en sandkasseserver og et par pc’er uden det papirarbejde og den dokumentation, der normalt hører til et it-projekt i medicinalbranchen,” forklarer Dorte. “Det gav os et rigtig godt overblik, og vi fik mulighed for at lave en risikoanalyse og realistiske budgetter og tidsplaner. Det kan jeg varmt anbefale alle, der skal i gang med et lignende projekt.”

Fælles SAS-kurser over nettet
Projektets kurser blev planlagt i samarbejde med SAS Institutes uddannelsesafdeling. Udfordringen var at gøre dette på en god måde uden for meget rejseaktivitet, og løsningen blev at transmittere SAS-instruktørens undervisning live via webex – og samtidig supplere dette med et Lync-videomøde, så deltagerne kunne se og høre hinanden. “Der var nogle små udfordringer, men ikke noget, vi ikke kunne løse,” siger Dorte. Read More »

Post a Comment

Dieselbiler og specialepriser

Fordrer Facebook politisk debat? Hvilke idéer om et specifikt produkt taler folk om på internettet? Hvilket billede tegner WiFi af dine venskaber? Hvorfor køber vi dieselbiler? Og hvor i Danmark rammer blodprop i hjertet oftest? 

Anders Munk-Nielsen løb med førstepladsen og en præmie på 10.000 kr. Desuden får han fornøjelsen af at møde Jim Goodnight til en snak om dataanalyse og statistik. Her er han sammen med Jens Olivarius, som er nordisk marketingdirektør i SAS Institute.

Anders Munk-Nielsen løb med førstepladsen og en præmie på 10.000 kr. Desuden får han fornøjelsen af at møde Jim Goodnight til en snak om dataanalyse og statistik. Her er han sammen med Jens Olivarius, som er nordisk marketingdirektør i SAS Institute.

Det er meget forskellige spørgsmål at svare på. Fællesnævneren for dem er, at de er komplekse og svære spørgsmål, og at de alle ligger til grund for specialer, der kom i finalen til vores Analytics Specialepris.

For spørgsmålene blev alle besvaret med kyndig brug af statistiske metoder og grundige dataanalyser.

Det var et tæt løb og efter fem imponerende oplæg havde dommerpanelet en svær opgave i at finde en vinder. Dommerpanelet bestod af Kaare Brandt Petersen (SAS Institute), Anne Olesen (SAS Institute) og David Earle (Braintrust), og deres valg faldt på Anders Munk-Nielsen, som afleverede specialet ”Diesel cars and environmental policy” i Økonomi ved Københavns Universitet i august sidste år.

Specialet blev så godt, at han har valgt at arbejde videre med emnet i en ph.d., som handler om biler i Danmark generelt og forskellige dynamiske aspekter af bilejerskab og brug.

Read More »

Post a Comment

5 bud på fremtidens dataanalytikere

Hvert år bliver der lavet mange rigtig gode specialer, hvor der arbejdes grundigt og opfindsomt med statistiske analyser og databehandling – dem vil vi gerne have frem i lyset og præmiere. Derfor har vi i samarbejde med Braintrust oprettet en pris for bedste speciale med analytics.

Vi har modtaget et væld af gode og kvalificerede specialer, hvorfra vi har udvalgt 5 finalister. De skal i dag konkurrere om Analytics Specialeprisen 2014.

Der er i øjeblikket stort fokus på dataanalytikerens rolle, og den er endda blevet udråbt til det 21. århundredes mest hotte job. Om der følger dyre biler og champagne med, skal jeg ikke kunne sige, men vi kan vist roligt konstatere, at det er en funktion, som allerede nu er stærkt efterspurgt både i erhvervslivet og den offentlige sektor.

Vores finalister er 5 rigtige gode bud på nogle, der allerede i deres studie har gjort godt brug af grundig dataanalyse og solide statiske metoder. Læs selv med her, hvor de præsenterer deres specialer: Read More »

Post a Comment

Det gode SAS-program #15: Bestem kolonnerækkefølgen i din tabel

Denne anbefaling handler om rækkefølgen af kolonner i din SAS-tabel. Typisk danner du tabeller med datasteppet eller PROC SQL.

Vi anbefaler:

  1. Benyt FORMAT statement i starten af datasteppet til at bestemme kolonnerækkefølge
  2. Benyt SELECT statement i PROC SQL til at vælge kolonner og bestemme rækkefølge

Alternativ 1:

data ny_tabel;
   format /* kolonne-rækkefølge */;
   set gammel_tabel;
run;

Benytter du datasteppet til at oprette en SAS-tabel, og ønsker du at ændre kolonnerækkefølgen, er vores anbefaling, at du benytter et FORMAT statement, som placeres inden tabeller indlæses med SET eller MERGE statement. Read More »

Post a Comment

Det gode SAS-program #14: Rækkefølgen af dine steps

Denne anbefaling handler om den rækkefølge, du skriver dine steps i. Overordnet set er vores anbefaling:

Opbyg din kode efter det logiske jobflow

Lad os først se på et jobflow:

Dette diagram viser klart det logiske jobflow i udførelsen af en opgave. I ovenstående eksempel har vi to datasæt, vi ønsker at sætte sammen og rapportere på. Data er organiseret på en sådan måde, at vi skal bruge PROC TRANSPOSE til at lægge data til rette inden det efterfølgende MERGE og rapportering. Read More »

Post a Comment

Det Gode SAS-program #13: Rækkefølgen i et PROC step

Denne anbefaling handler om den rækkefølge, du skriver dine statements i i et PROC step. Det er oftest ikke afgørende for dit output, men af forståelsesmæssige årsager og for at sikre nem vedligeholdelse er disse anbefalinger vigtige.

De overordnede anbefalinger er:

  1. Lad altid dine BY og WHERE statements stå øverst, da disse er generelle indlæsnings-statements.
  2. Saml de specifikke kolonne-statements, der hører til det pågældende PROC step, så disse står samlet i midten.
  3. Lad FORMAT og LABEL statements stå til sidst, da disse er generelle statements mht., hvordan output skal se ud.
  4. Husk altid at definere data med et DATA=, også selvom det senest brugte datasæt anvendes automatisk, hvis man ikke definerer data.
  5. Tilføj et TITLE og/eller FOOTNOTE statement med en dynamisk makrovariabel ved brug af WHERE statements.

Et PROC step bør altså opbygges således:

Placering i PROC steppet Opgave
BY, WHERE Indlæsning og udvælgelse af data
Specifikke kolonne-statements, der passer til den specifikke procedure
FORMAT, LABEL Tilpasning af udseende af output

Read More »

Post a Comment

Det gode SAS-program #12: Rækkefølgen i datasteppet

Denne anbefaling handler om rækkefølgen af SAS-kode i datasteppet. Som udgangspunkt er rækkefølgen vigtig, da SAS udfører programlinjerne i den orden, du har skrevet dem. Og de udføres én gang for hver række, der behandles i datasteppet.

I anbefaling #11 har vi behandlet de specielle COMPILE-TIME statements, og de mest typiske er anvendt i oversigten nedenfor. Den store blok af kode i midten af datasteppet bør logisk grupperes i følgende 3 blokke og i denne rækkefølge:

  1. Validér data
  2. Ret fejl i data
  3. Nye kolonner

Read More »

Post a Comment

Det gode SAS-program #11: Rækkefølgen i datasteppet, COMPILE-TIME statements

Denne anbefaling handler om rækkefølgen af SAS-kode i datasteppet. Som udgangspunkt er rækkefølgen vigtig, da SAS udfører programlinjerne i den orden, du har skrevet dem. Og de udføres én gang for hver række, der behandles i datasteppet.

Der er dog 12 undtagelser. Vi kalder dem COMPILE-TIME statements, som kun udføres ved kompilering af SAS-programmet. Vi anbefaler, at du placerer dem således:        

  1. LENGTH og ATTRIB kan bruges til at oprette en ny kolonne med type og længde. Dette skal ske, inden den pågældende kolonne benyttes senere i koden. Derfor anbefaler vi, at disse 2 statements placeres i toppen af datasteppet.
  2. BY, WHERE, ARRAY og INFORMAT vil typisk referere til kolonner i en tabel/fil, som skal læses. Placer dem derfor lige umiddelbart efter et statement, som indlæser data (SET, MERGE, INPUT).
  3. DROP, KEEP, RENAME, LABEL, RETAIN og FORMAT har informationer om kolonnerne i den nye tabel, der dannes. Placer dem derfor samlet i bunden af datasteppet.

Oversigt over anbefalet placering af COMPILE-TIME statements 

Start på datasteppet   
________________________________________________________                                                                                         
LENGTH og ATTRIB statements
________________________________________________________
Indlæsning af data               
________________________________________________________                                                                                 
BY, WHERE, INFORMAT og ARRAY statements
________________________________________________________
Mere kode – bearbejdning af data        
________________________________________________________                                                         
DROP, KEEP, RENAME, LABEL, RETAIN og FORMAT statements  
________________________________________________________
Afslutning af datasteppet

Read More »

Post a Comment

Det gode SAS-program #10: Rækkefølgen i dit SAS-program

Denne anbefaling handler om at anvende en standardrækkefølge, når man skriver de forskellige elementer af sin SAS-kode. Dette bør gøres for at sikre ensartethed og overskuelighed samt af vedligeholdelsesårsager.

Mine overordnede anbefalinger er:

1. Placer alle definitioner i starten af dit program:
Options, fil &; biblioteksreferencer, makrovariable. Disse bør komme tidligt i programmet for at
skabe overblik og gøre det let at vedligeholde.

2. Generelle statements som TITLE og FOOTNOTE skal også være øverst.

3. Egne makroer, formater og funktioner bør være gemt permanent og altså ikke indgå i din kode,
hvis disse bruges mere end én gang. Vælger du alligevel at lave midlertidige makroer, formater
eller funktioner, bør disse placeres øverst i koden.

4. Brug %include, hvis indholdet af 1-3 ovenfor fylder for meget.
Se anbefaling #04 om Program Flow.

5. Placer ens elementer sammen, eksempelvis alle dine makrovariable i forlængelse af hinanden.

6. Vær konsekvent – så skaber du ensartethed i din kode.

7. Ryd op efter dig selv forstået på den måde, at man bør nulstille TITLE og FOOTNOTE statements,
deassigne libnames etc. efter brug – efter behov.

En standardrækkefølge kunne se således ud: Read More »

Post a Comment