Det gode SAS-program #22B: eliminer fejl i output og brug udtømmende ELSE statement

Du har nok allerede læst #22A af det gode SAS-program, hvor Georg skriver om vigtigheden af ELSE statement for at optimere performance. Dette opfølgende indlæg omhandler også ELSE statement, men vi tager lige et par andre briller på og har i dette indlæg fokus på at eliminere fejl – overordnet set er det helt centralt at have styr på sine IF statements, så man undgår datafejl i sit output.
Overvej disse to anbefalinger:

1. Undgå uhensigtsmæssige dobbelt IF statements

Pas på, at du ikke har to eller flere IF statements, der kan være opfyldt samtidig og dermed overskrive hinanden på en uhensigtsmæssig måde.

Eksempel:

22B1

I ovenstående eksempel vil den første IF statement altid blive overskrevet af de andre to IF statements. Det er altså vigtigt at være helt skarp på, hvilket output man ønsker, og sikre sig, at man ikke danner sine IF statements således, at man ikke kan kontrollere sit output optimalt.

2. Brug et udtømmende ELSE statement

Overvej altid om du skal medtage et udtømmende ELSE statement, så du sikrer dig, at alle værdier medtages i din IF-THEN-ELSE.

Eksempel:

22B2

I ovenstående eksempel sørger det afsluttende ELSE statement for, at vi rammer alle værdier af AGE og får værdien 0 i stedet for missing for alle de ikke ramte værdier i de tre IF statements og ELSE IF statements.

Hvis man benytter de gode råd fra det gode SAS-program #22A samt #22B, så vil man sikre, at ens IF statements fungerer både korrekt og optimerer performance.

God fornøjelse!

Anne

Post a Comment

SAS Specialepris - erfaringer fra sidste års vindere

SAS Institute er glade for igen i år at invitere dygtige studerende til at deltage i konkurrencen om SAS Specialepris. Det er tredje år, prisen bliver uddelt, og vi ser frem til igen at sætte fokus på gode specialer, som på en opfindsom og grundig måde har benyttet kvantitativ metode. Erfaringerne fra tidligere år har understreget den bredde spændevidde i specialerne, som indtil nu har dækket alt lige fra dieselbiler - til medicinske bivirkninger - til velfærd. Netop velfærd var fokus i sidste års vindende speciale, som belyste velfærdseffekten af at ændre dagpengesatsen. Vi har talt med vinderne af sidste års Specialepris, Frederik Greisen og Simon Sørensen omkring deres deltagelse i SAS Specialepris 2015, hvordan det er gået dem siden, samt hvilke gode råd de har til dette års deltagere.

Hvad fik jer til at deltage i SAS Specialepris 2015?
Vi havde i 2014 skrevet et speciale med fokus på at analysere incitamenter i dagpengesystemet via nye statistiske og økonometriske metoder. Specialet viste nogle interessante resultater herunder særligt, hvordan længden af ledighed påvirkes af dagpengesatsen, som vi gerne ville dele med andre, som også interesserer sig for anvendelsen af nye statistiske metoder.

Hvad fik I ud af at deltage i SAS Specialepris 2015?
Naturligvis pengepræmien, men mest af alt den store faglige ære ved at vinde prisen – vi ved, at mange dygtige studerende deltog, og ligeledes at en dygtig (økonomi-) studerende tidligere havde vundet prisen. Derudover lærte vi en masse af at skulle præsentere et 180-siders speciale på 5 minutter. Det var krævende at skulle destillere og formulere specialets metoder og konklusioner til et dommerpanel og en gruppe af påhører, som ikke på teknisk vis har beskæftiget sig med emnet før.

Hvad laver I nu? Og bruger I noget af jeres viden fra specialet i det daglige arbejde?
Simon arbejder i Novo Nordisk og Frederik er konsulent hos Boston Consulting Group. Ingen af os bruger direkte vores viden fra specialet i vores daglige arbejde, da vores nuværende arbejde hverken involverer arbejdsmarkedspolitiske analyser eller registeranalyser. Vi kan dog begge med sikkerhed sige, at det at arbejde med data og statistiske metoder gennem studiet og specialet har gjort os godt rustet til at tilgå datatunge opgaver i vores nuværende job og stille 'de rigtige' spørgsmål, når vi bliver præsenteret for en datatung analyse.

Hvad brugte I præmiepengene på 10.000 kroner til?
Simon brugte pengene til at supplere lejligheden med lidt ekstra møbler, og Frederik brugte pengene som tilskud til opførelsen af en altan i lejligheden.

Hvad er jeres to bedste råd til dem som overvejer at deltage i konkurrencen om SAS Specialepris 2016?
Vi syntes, at hovedudfordringen ved SAS Specialeprisen er, at der typisk er tale om meget tekniske specialer, som kan være svære for udenforstående at sætte sig ind i på fem minutter. Vores to bedste råd er derfor:
1. Skær mest muligt teknisk fra og fokuser på den 'historie', som din dataanalyse fortæller.
2. Øv præsentationen flere gange. Når man blot har 5 minutter er det vigtigt, at man har et godt flow.

Tilmelding til SAS Specialepris 2016

Igen i år er banen kridtet op, og vi har skudt endnu en runde af SAS Specialepris i gang! SAS Specialepris 2016 går til et projekt, som på en original og grundig måde har benyttet kvantitativ metode. Ved udvælgelsen lægges der ligeledes vægt på selvstændighed i anvendelsen af analytiske værktøjer, og at specialet inddrager databehandling i sådan en udstrækning, at dette bidrager til specialets overordnede kvalitet. I bedømmelsen indgår desuden evnen til at få budskabet igennem klart og præcist; også selvom modtageren ikke har stor analytisk viden og tankegang.

Så har du skrevet, eller kender du nogen, der har skrevet årets mest spændende speciale med data og statistisk analyse? Og er specialet afleveret og forsvaret inden 30. april 2016? Så er tilmeldingen til årets SAS Specialepris stadig åben. Det eneste som kræves for at deltage er at sende et referat af specialet (maks. 1 side) med karakter samt vejleders navn og underskrift til academic.dk@sas.com.

Ansøgningsfristen er den 1. maj 2016.

Læs mere om SAS Specialepris her.

Post a Comment

Ny redaktør på Klog på SAS-bloggen

Jeg hedder Signe Dyrby og er ny redaktør på Klog på SAS-bloggen. Jeg overtager rollen fra Ane Gerken og glæder mig til at fortsætte det gode arbejde med at dele ud af SAS-viden og erfaringer. Udover at være redaktør på denne blog er jeg også ny programleder for SAS Academic-program her i Danmark.

For øjeblikket har vi gang i en masse spændende ting hos SAS Institute. Blandt andet har vi budt velkommen til ni nye Data Science Graduates, introduceret nye SAS kurser samt skudt en ny runde af SAS Specialepris i gang. Alt dette glæder vi os til at kunne dele med jer på bloggen samt selvfølgelig at komme med masser af tips til Det Gode SAS Program og informationer om kommende Klog på SAS-seminarer.

Du kan som altid følge med både som nybegynder og som garvet SAS-bruger, og vi hører meget gerne kommentarer fra dig samt forslag til emner, vi kan berøre her på bloggen.

De bedste hilsner
Signe

Post a Comment

Det gode SAS-program #22A: Benyt ELSE statement og reducér svartid

I SAS® kan man skrive lige så mange IF statements, man har lyst til i datasteppet. Hvert IF statement bliver udført for hver eneste række. Du kan spare CPU-tid ved at benytte ELSE statements, hvorved kun de nødvendige IF statements udføres for hver række.
Vi anbefaler: Benyt ELSE statement, når du har flere IF statements på samme kolonne i et datastep  

Eksempel
Her et lille testprogram. Du kan selv prøve det på din computer. Vi danner en større SAS-tabel på 29 millioner rækker, så vi kan måle en signifikant besparelse på CPU-tiden.

Eksempel1

Som testeksempel ønsker vi at tildele bonus afhængig af værdien i kolonnen product_line. Vi skriver seks IF statements efter hinanden, som tester på samme kolonne. Dette tager ca. seks CPU-sekunder at udføre på min PC i SAS Studio.

Eksempel2

Nedenstående program reducerer CPU-tiden med 25%
Vi har tilføjet et ELSE statement på alle IF statements undtagen det første IF statement. Det betyder, at hvis f.eks. product_line er lig med ’Children’, så udføres kun de første tre IF-sætninger for den række.  Samtidig har vi ændret på rækkefølgen, så vi tester efter de mest hyppige værdier af product_line først. Samlet set medfører disse to forhold, at vi minimerer antallet af IF statements, der skal udføres per række. Og derfor reduceres CPU-tiden, så programmet kører hurtigere.

Eksempel3

Besparelsen ved at indføre ELSE statement afhænger af dine data og antallet af IF statements du benytter. Vi kan ikke sige noget specifikt om besparelsen. Den kan være lille, men den kan også være stor, måske endda helt op til 50% i meget specielle tilfælde. Men brug bare altid ELSE som ovenfor, så har du gjort det bedst muligt.

Bemærk:
Vi kunne også benytte et SELECT statement til at opnå samme forbedring. Koden er forskellig, men resultatet vil være identisk med ELSE-programlinjerne.

Koden fra eksemplet kan findes her

Post a Comment

SAS Specialepris – og vinderen er…

Sidste uge slog vi dørene op til vores årlige konference SAS Forum. Det var en dag med et hav af indlæg om analyse, Big Data, Data Management, Business Intellingence, SAS Programmering og meget andet. Som noget nyt, var der sat fokus på nye unge Data Science-talenter, vi holdt nemlig finalen i konkurrencen om SAS Specialepris derude.

Finalisterne lige før deres 5-minutters oplæg.

Finalisterne lige før deres 5-minutters oplæg.

I finalen var Jeevitha Yogachandiran fra Aalborg Universitet, Simon Sørensen og Frederik Greisen fra Københavns Universitet og Sune Schöttler fra Aarhus Universitet. Du kan læse om deres specialer her.

5 års studier bliver kogt ned til ét speciale og til SAS Forum gav vi finalisterne den svære opgave, at fortælle om deres speciale i et oplæg på 5 minutter! Det kræver gode formidlingsevner og evnen til at skære ind til kernen. Evner som alle finalister mestrede fornemt til trods for, at de stod i et lokale fyldt med skarpe analytikere og datajonglører. Keld Zornig, SAS Danmarks direktør, ærgrede sig da også over, at han ikke nåede at få fat i finalisterne, inden de er blevet ansat til anden arbejdgiver.

Så valget var svært for dommerpanelet, men det faldt på… Read More »

Post a Comment

Finalen i SAS Specialepris!

bog-sas-for-studerende-500px-kvadratiskSå er finalisterne fundet til SAS Specialeprisen 2015. Vi har udvalgt 3 ud af mange gode specialer, som gør smuk brug af kvantitativ metode og databehandling til at belyse en problemstilling. De indsendte specialer kom fra mange faglige retninger og understregede tilsammen, hvordan kløgtig brug af dataanalyse kan gøre os klogere på dagpengesystemet, på uddannelsesvalg og på forecasting af salg – se bare her blandt vores finalister: Read More »

Post a Comment

Webinarer om SAS-programmering

Skal du i gang med at bruge SAS eller har du behov for at få opfrisket din SAS-viden? Så er vores webinarer et godt sted at starte. Webinarerne er allerede løbet af stablen, men vi har optaget dem alle, så du kan blive klogere on demand. Seks af vores erfarne konsulenter deler ud af deres SAS-kundskaber, så du også kan komme godt i gang. Vi dækker et emne per webinar, så du kan shoppe rundt alt efter niveau og behov.

SAS for Studerende står bag webinarerne, men alle må kigge med og det er naturligvis gratis. Se eller gense webinarerne her:

Ane

Post a Comment

SAS Hotties – hot info til dig, der vil være på forkant med SAS-software!

Hotties1.1

Begreber som data governance, high performance analytics, hadoop og meget andet fylder rigtig meget i SAS-kommunikationen lige nu, og du er måske kun interesseret i SAS-programmering. Det kan også være, at diverse SAS-fora inspirerer dig, men du føler dig overvældet over alt det nye SAS.

Med SAS Hotties-bloggen får du en 100% subjektiv vurdering af kun to SAS-software værktøjer, som er hot lige nu. Opbygning af kompetencer i værktøjerne er vigtig, hvorfor jeg serverer tips, så du kan blive 100- meter mester!

SAS® Office Analytics 7.1 er en regulær SAS Hottie til masserne!

SAS Office Analytics (SAS OA) er til dig, som elsker at arbejde i Excel! Med SAS OA kan du bygge BI-rapporter og avancerede statistiske analyser baseret på SAS-procedurer, som udnytter SAS-motorens høje omdrejninger. Integration til MS Office, SAS Enterprise Guide, Stored Process Facility og mulighed for at integrere SAS-rapporterne og analyserne i Sharepoint er nøglefunktionalitet i SAS OA. Har du også SAS Visual Analytics kan du integrere VA-data og rapporter med SAS OA.

Read More »

Post a Comment

PROC LOGISTIC – Er en skole offentlig eller privat?

I denne artikel vil der blive opstillet en predictions-model, der kan forudsige, om en skole enten er en privatskole eller en offentlig skole ud fra de svar, den enkelte skole har givet til nogle udvalgte spørgsmål i OECD’s PISA-undersøgelse. Formålet med en sådan model kunne være at forudsige, om en skole er offentlig eller privat, når den ikke har oplyst dette.

Data

Data, der er brugt i denne artikel, er data fra OECD’s PISA-undersøgelse 2012. Data er frit tilgængelig for alle og kan hentes fra følgende link: http://pisa2012.acer.edu.au/downloads.php.

Datasættet, som er brugt, er den tekstfil, der kan downloades under ’School questionnaire data file’. På hjemmesiden er der også link til et SAS®-program, som kan omskrive tekstfilen til et SAS-datasæt. I artiklen er det dette datasæt, der bliver taget afsæt i, dog er indholdet blevet reduceret og modificeret.

Problemstilling

Den problemstilling, som artiklen ønsker at afdække, er at undersøge, om man kan opstille en predictions-model, der kan forudsige, om en skole, som har deltaget i undersøgelsen, enten er en privatskole eller en offentlig skole. Dermed kigges der først på sammensætningen af private og offentlige skoler i undersøgelsen.

SHY.1.1

Read More »

Det gode SAS-program #21: Gem tal i karakterkolonner

I SAS findes der kun 2 typer af kolonner: karakter og numerisk. En numerisk kolonne kan kun indeholde tal, hvorimod en karakterkolonne kan indeholde bokstaver, tal og specialtegn.

Vi anbefaler:  Gem tal i karakterkolonner, hvis du ikke skal foretage beregninger

Eksempel

Her et lille testprogram med tre numeriske kolonner og en karakterkolonne. Vi har oprettet talkolonner som numeriske uden at tænke meget over det.

Dgs#21.1

Read More »

Post a Comment