Timo Hurme Maa- ja elintarviketalouden tutkimuskeskus MTT
Sisältö Johdantoa aiheeseen esimerkein SAS-grafiikan uusi ja vanha tapa Tavat käyttää uutta ODS Grafiikkaa, esimerkein
Taustaa Perinteinen tapa SAS grafiikkaan: SAS/GRAPH Nähnyt päivänvalonsa 80-luvulla Monipuolisesti muokattavissa erilaisilla optioilla Osin kritisoitu vanhanaikaiseksi
Taustaa Uusi tapa: ODS GRAPHICS Tullut mukaan 2000-luvulla 9.1-versiosta alkaen 9.3-versiosta alkaen kuuluu Base-SAS lisenssiin Lähtökohtana laadukkaat kuviot helposti Jatkuvan kehityksen kohteena Erillisiä proseduureja (mm. SGPLOT) ja tuottaa grafiikkaa muiden proseduurien kanssa
Esimerkkikuvioita, oletusasetuksilla PROC SGPLOT DATA=apu2; VBAR a / RESPONSE=b; RUN; PROC GCHART DATA=apu2; VBAR a / SUMVAR=b; RUN;
Esimerkkikuvioita, proseduurien sivutuotteena FREQ-proseduurista pylväskuvio REG-proseduurista diagnostisia kuvioita
Esimerkkikuvioita, PROC SGPLOT Viivakuvio Aluekuvio (Band Plot)
Esimerkkikuvioita Kuplakuvio (Bubble Plot) Histogrammi + käyrät
Esimerkkikuvioita Pylväskuvio (ryhmät) Pylväskuvio + nahka
Esimerkkikuvioita Laatikkojanakuvio Pylväs-viivakuvio
Esimerkkikuvioita Spline-käyrä Sirontakuvio + regressiomalli
Esimerkkikuvioita Paneelikuva (paneelit ryhmittelevistä muuttujista) Sirontakuviomatriisi (eri muuttujia akseleilla)
Esimerkkikuvioita Tätä kaikkea saa tehtyä uudella ODS Graphics tekniikalla Tässä saatiin myös käsitystä uusien kuvien yleisilmeestä Seuraavaksi katsotaan tarkemmin uuden ja vanhan tekniikan eroja Annotate-tekniikkaa
Tarkemmin uuden ja vanhan tekniikan eroista Device-based graphics Perinteinen tapa, kehitetty aikanaan sillä ajatuksella että kuvat lähetettiin suoraan devicelle (esim. printteri) Nykyään kuitenkin kuva suoraan näytölle tai kuvatiedostoon halutussa muodossa Tätä tapaa käyttävät proseduurit GCHART, GPLOT, GMAP, GBARLINE, GCONTOUR ja G3D Kuva voidaan tallentaa yleensä myös kuvakatalogiin jatkokäyttöä varten Ulkoasuun vaikutetaan GOPTIONS, SYMBOL, PATTERN, AXIS ja LEGEND lauseilla Graafisena käyttöliittymänä toimii Enterprise Guide Template-based graphics eli ODS Graphics Perustuu template:ien eli kuvapohjien käyttöön Tuottaa aina kuvatiedoston, oletuksena PNG-muotoisen Template kertoo mitä kuvassa esitetetään ja tyyli (style) määrää käytetyt värit ja fontit Proseduurit SGPLOT, SGSCATTER, SGPANEL ja SGRENDER tuottavat ODS Grafiikan avulla kuvia Kuvien ulkoasuun vaikutetaan tyylien ja ODS lauseiden avulla sekä SG-proseduurien optioissa Myös graafinen käyttöliittymä ODS Graphics Designer
Tarkemmin uuden ja vanhan tekniikan eroista Vanhan tavan rajoitteita: Kuvien yleisilme Ohjelmointi monimutkaisempaa Erityisesti tilastotieteellisten kuvioiden laatimiseen ja päällekkäin plottaamiseen voidaan tarvita monta työvaihetta (proseduuria) Samoin paneelikuvien laatimiseen tarvitaan monta työvaihetta Vaatii GRAPH-tuotteen lisenssin! Uuden tavan rajoitteita: Piirakkakuviot eivät onnistu suoraan Karttakuviot eivät onnistu suoraan
Kaksi pääasiallista tapaa tehdä ODS grafiikkaa Erilliset proseduurit: SGPLOT (yksittäiset kuviot) SGPANEL (paneelikuva, ryhmittelevä muuttuja) SGSCATTER (mm. sirontakuviomatriisit) Tilastollisten proseduurien oheistuotteena SASin nykyversiossa lähes kaikki STATproseduurit ja Basen tilastolliset proseduurit tuottavat oheisgrafiikkaa (tekniikkana ODS Graphics)
Kuvat menetelmäproseduurien oheistuotteena Koko ODS Graphics on alun perin kehitetty sillä ajatuksella, että käyttäjät voisivat tuottaa menetelmätyökalujen yhteydessä tukigrafiikkaa helposti SAS 9.3:ssa tarvittava ODS Graphics on oletuksena päällä ja erilaisilla optioilla / avainsanoilla koodissa voidaan pyytää erilaista tukigrafiikka ja osa tulee tilaamattakin! Vanhemmissa versioissa: ODS GRAPHICS ON; Rajoitetusti mahdollisuuksia kuvien muokkaamiseen (esim. pylväskuvioilla pysty- tai vaakapylväät) Lisätietoa SASin helpistä kunkin proseduurin yhteydestä!
Lista proseduureista, joissa voi tuottaa tukigrafiikkaa Base SAS SAS/STAT SAS/QC SAS/ETS CORR ANOVA LOESS QUANTREG ANOM ARIMA FREQ BOXPLOT LOGISTIC REG CAPABILITY AUTOREG UNIVARIATE CALIS MCMC ROBUSTREG CUSUM COPULA CLUSTER MDS RSREG MACONTROL ENTROPY CORRESP MI SEQDESIGN MVPCHART ESM FACTOR MIXED SEQTEST MVPMODEL EXPAND FMM MULTTEST SIM2D PARETO MODEL GAM NLIN SURVEYFREQ RELIABILITY PANEL GENMOD NPAR1WAY SURVEYLOGISTIC SHEWHART SEVERITY GLIMMIX GLM GLMPOWER GLMSELECT KDE ORTHOREG PHREG PLM PLS POWER SURVEYPHREG SURVEYREG TPSPLINE TRANSREG TTEST OTHER HPF HPFENGINE SAS Risk Dimensions SIMILARITY SYSLIN TIMEID TIMESERIES UCM KRIGE2D PRINCOMP VARCLUS VARMAX LIFEREG PRINQUAL VARIOGRAM X12 LIFETEST PROBIT
Esimerkkejä Kokeellisen aineiston tilastolliseen analysointiin liittyvää mallin oletusten tarkastelua. PROC MIXED DATA=kir.esim1b; CLASS lohko kas; MODEL sato=kas / DDFM=kr RESIDUAL; RANDOM lohko; LSMEANS kas / CL; ODS OUTPUT LSmeans=estimaattidata; RUN;
Erilliset ODS Graphics proseduurit: SGPLOT proseduuri Sirontakuviot, viivakuviot Jakaumakuviot Kategoristen muuttujien kuviot Tilastotieteelliset kuviot
SGPLOT proseduuri Samassa SGPLOT-proseduurissa saa eri nimisillä lauseilla tehtyä eri tyyppisiä kuvioita, mm.: SCATTER-lause REG-lause SERIES-lause HISTOGRAM-lause HBOX- ja VBOX-lauseet HBAR-, VBAR-, HBARPARM- ja VBARPARM-lauseet Jne Lisäoptioilla tehdään hienosäätöä, mm.: / GROUP=ryhmittelevä-muuttuja Lisäksi on muun muassa akselien määrittelyyn liittyvät XAXISja YAXIS-lauseet optioineen HUOM! Samassa SGPLOT-proseduurissa voidaan kirjoittaa useampi kuviontekolause ja siten saadaan piirrettyä päällekkäin samaan kuvaan useampi erillinen kuvio.
Esimerkkejä PROC SGPLOT DATA=orion.budget; SERIES X=month Y=yr2003 / DATALABEL; YAXIS LABEL="Revenue"; RUN;
Esimerkkejä PROC SGPLOT DATA=kir2.vilj2006; REG X=paino Y=pituus / clm cli; RUN;
Esimerkkejä PROC SGPLOT DATA=estimaattidata; VBARPARM CATEGORY=kas RESPONSE=estimate / LIMITLOWER=lower LIMITUPPER=upper; TITLE "Pylväskuvio keskiarvoestimaateista"; RUN; Estimaattidata: Tällä voi piirtää pylväskuvion esim. tilastollisen proseduurin tuottamista keskiarvoestimaateista. VBAR-lauseella saa vastaavan tavallisen pylväskuvion.
Esimerkkejä PROC SGPLOT DATA=orion.profit; WHERE country='holland' AND year=2004; VBAR yymm / RESPONSE=sales STAT=sum; VLINE yymm / RESPONSE=cost STAT=sum CURVELABEL; FORMAT yymm monname3.; TITLE 'Monthly Sales and Costs'; RUN; HUOM! VLINE-lause on vastaava kuin SERIES-lause, mutta kategoriselle x-akselille.
SGPANEL proseduuri Samat kuviot samoilla kuviontekolauseilla kuin SGPLOTissa, MUTTA: PANELBY-lauseessa pitää määritellä ryhmittelevä muuttuja, jonka jokaiselle tasolle muodostetaan oma kuvaruutu muodostuvaan paneelikuvaan PANELBY-lauseen pitää olla ennen kuviontekolauseita koodissa
Esimerkki PROC SGPANEL DATA=orion.orders; WHERE age_group NE '61-75 years'; PANELBY age_group gender / COLUMNS=2; VBAR country / RESPONSE=sale_amount; RUN;
SGSCATTER proseduuri Vain sirontakuvioita (+ sovitteita, ellipsejä, ) Nyt eri paneeleissa voi olla akseleilla eri muuttujat (vertaa SGPANEL) Kuvat voi laatia seuraavilla lauseilla: PLOT (voi luetella muuttujaparit paneeleihin) COMPARE (yhteisiä akseleita) MATRIX (sirontakuviomatriisi) Katsotaan esimerkein!
Esimerkkejä, PLOT-lause PROC SGSCATTER DATA=orion.employees; PLOT salary*(age years_employed); RUN;
Esimerkkejä, COMPARE-lause PROC SGSCATTER DATA=orion.employees; WHERE department='sales'; COMPARE Y=salary X=(age years_employed); RUN;
Esimerkkejä, MATRIX-lause PROC SGSCATTER DATA=orion.employees; WHEREe department='sales'; MATRIX salary age years_employed; RUN;
Kuvien ulkoasuun vaikuttaminen (SGPLOT, SGPANEL, SGSCATTER, ) Ulkoasuun voi vaikuttaa kertarysäyksellä vaihtamalla käytössä olevaa tyyliä (ODS style) SG-alkuisissa kuvaproseduureissa on myös erittäin runsaasti optiota yksittäisten ulkoasuasioiden muokkaukseen. Niihin kannattaa tutustua SASin helpin kautta!
Esimerkki, tyylit: meadow ODS HTML STYLE=meadow; PROC SGPLOT DATA=orion.orders; VBAR gender / GROUP=country STAT=sum RESPONSE=sale_amount; RUN;
ODS Graphics Designer ODS Graphics Designerilla saa hyödynnettyä ODS grafiikkaa yksittäisten kuvien tekoon ilman SASkoodin kirjoittamista Käynnistetään: SASin valikosta: Tools -> ODS Graphics Designer tai Kirjoittamalla ja suorittamalla makrokutsu: %sgdesign; tai %sgdesign()
Esimerkki Ensin valitaan kuvion tyyppi
Esimerkki Seuraavaksi aukeaa ikkuna, jossa valitaan käytettävä SAS-data ja muuttujat
Esimerkki Kuva tulee ruudulle näkyviin ja sitä voi edelleen muokata esimerkiksi lisäämällä otsikoita tai uusia päällekkäin piirrettäviä kuvioita (esim. regressiosuora) Muokkaamaan pääsee mm. raahaamalla elementtejä kuvan päälle vasemman reunan ikkunasta tai klikkaamalla kuvaa hiiren oikealla painikkeella.
ODS Graphics Designer Valmiin kuvan voi tallentaa kuvatiedostoksi tai kuvan voi tallentaa Designerin kuvagalleriaan (uudelleen katseltavaksi tai pohjana käytettäväksi)
Muita ODS-grafiikan mahdollisuuksia Graph Template kielellä eli PROC TEMPLATElla voi itse laatia kuvatemplateja ja sen myötä tehdä hyvinkin monimutkaista kuvien muokkausta Tällöin kuvapohja yhdistetään dataan eli kuva piirretään käyttäen SGRENDER proseduuria HUOM! Voit myös muokata valmiita kuvatemplateja ja siten päästä melko helpolla TEMPLATE-proseduurin kanssa
Myös nämä tehty ODS Graphicsilla! Lähde ja ohjeet: Matange & Heath (2011)
Suomen SASilla peruskurssi aiheesta tarjolla ODS Graphics : Essentials Espoossa 22.-24.10.2013 Suomenkielinen opetus Lisätietoa SASin kursseista: www.sas.com/fi/koulutus
Lähteet SASin koulutusmateriaali: ODS Graphics: Essentials Course Notes Timo Pitkäsen (MTT) esitys MTT:n SAS 9.2 esittelykiertueelle Sanjay & Matange (2011) Statistical Graphics Procedures by Example Effective Graphs Using SAS, SAS Press, USA.