TDM - Laborator 6 - Proceduri SAS

15
Laborator 6 Proceduri SAS – sistematizare (Print Sort Means). Cuprins 1. PROCEDURI SAS - SISTEMATIZARE...........1 1.1. Proceduri SAS.....................1 1.1.1. Procedura PRINT................1 1.1.2. Procedura SORT.................8 1.1.3. Procedura MEANS................9 1. PROCEDURI SAS - SISTEMATIZARE 1.1. PROCEDURI SAS 1.1.1. Procedura PRINT Afişează conţinutul unui tabel de date. Sintaxa procedurii: PROC PRINT <optiuni>; <clauze> RUN; Exemplul 1. Crearea unui listing, cu selectarea variabilelor ce vor fi afişate options nodate pageno=1 linesize=70 pagesize=60; data situatie;

description

proceduri SAS - statistica si informatica economica

Transcript of TDM - Laborator 6 - Proceduri SAS

Page 1: TDM - Laborator 6 - Proceduri SAS

Laborator 6 Proceduri SAS – sistematizare (Print Sort Means).

Cuprins1. PROCEDURI SAS - SISTEMATIZARE.................................................1

1.1. Proceduri SAS.........................................................................11.1.1. Procedura PRINT...............................................................11.1.2. Procedura SORT................................................................81.1.3. Procedura MEANS...............................................................9

1. PROCEDURI SAS - SISTEMATIZARE

1.1. PROCEDURI SAS

1.1.1. Procedura PRINT

Afişează conţinutul unui tabel de date.

Sintaxa procedurii:

PROC PRINT <optiuni>;

<clauze>

RUN;

Exemplul 1. Crearea unui listing, cu selectarea variabilelor ce vor fi afişate

options nodate pageno=1 linesize=70 pagesize=60;data situatie; input Regiune $ Stat $ Luna monyy5. Cheltuieli Venituri; format Luna monyy5.; datalines;Sud GA JAN95 2000 8000Sud GA FEB95 1200 6000Sud FL FEB95 8500 11000Nord NY FEB95 3000 4000Nord NY MAR95 6000 5000Sud FL MAR95 9800 13500

Page 2: TDM - Laborator 6 - Proceduri SAS

Nord MA MAR95 1500 1000;proc print data=situatie double;var luna stat cheltuieli;title 'Cheltuieli lunare';run;

Acest exemplu:

Setează opţiuni generale SAS (fără dată, număr pagină, lungimea unei linii,

dimensiunea paginii);

Creează tabelul de date situatie, conţinând cinci variabile: Regiune, Stat, Luna,

Cheltuieli, Venituri şi populează acest tabel cu şapte observaţii;

Dublează spaţiul dintre liniile afişării (opţiunea double) ;

Selectează trei variabile pentru a fi afişate (clauza var);

Adaugă în afişare titlul 'Cheltuieli lunare';

Foloseşte etichetele variabilelor pentru antetul afişării.

Figura 1.1. Baza de date creată

Exemplul 2. Crearea unui raport HTMLods html file='pagina.html';proc print data=situatie double; var luna stat cheltuieli; title 'Cheltuieli lunare';run;ods html close;

Page 3: TDM - Laborator 6 - Proceduri SAS

Figura 1.2. Raport HTML

Observaţii:

Exemplul produce acelaşi rezultat ca exemplul precedent, dar creează în plus pagina

web pagina.html. Acesta poate fi vizualizată, salvată (File -> Save as).

ods – Output Delivery System.

Exemplul 3. Crearea unui raport HTML cu opţiunea STYLEods html file='pagina.html';proc print data=situatie doublestyle(HEADER) = {font_style=italic foreground = white} style(OBS) = {background=red};var luna stat cheltuieli; title 'Cheltuieli lunare';run;ods html close;

Figura 1.3. Raport HTML

Exemplul 4. Modificarea antetului afişării

Page 4: TDM - Laborator 6 - Proceduri SAS

options nodate pageno=1 linesize=70 pagesize=60;proc print data=situatie split='*' n obs='Observation*Number*=========='; var luna stat cheltuieli; label luna='LUNA**=====' stat='STAT**=====' cheltuieli='CHELTUIELI**========'; format cheltuieli comma10.; title 'Cheltuieli lunare';run;

Observaţii.

opţiunea SPLIT identifică asterisk-ul drept caracterul care începe o nouă linie în

antet;

opţiunea n afişează numărul observaţiilor la sfârşitul listingului;

opţiunea OBS specifică antetul pentru coloana care desemnează numărul observaţiei.

Figura 1.4. Modificarea antetului afişării

Exemplul 5. Crearea unui raport pdf

options nodate pageno=1 linesize=70 pagesize=60;ods pdf file='fisier.pdf';proc print data=situatie split='*' n obs='Observation*Number*=========='; var luna stat cheltuieli; label luna='LUNA**=====' stat='STAT**=====' cheltuieli='CHELTUIELI**========'; format cheltuieli comma10.; title 'Cheltuieli lunare';run;

ods pdf close;

Figura 1.5. Raport PDF

Page 5: TDM - Laborator 6 - Proceduri SAS

Exemplul 6. Afişarea pe grupuri de observaţii

options pagesize=60 pageno=1 nodate linesize=70;proc sort data=situatie; by regiune stat luna;run;

proc print data=situatie n='Nr. observatii: ' noobs label; var luna cheltuieli venituri; by regiune stat; pageby regiune; format cheltuieli venituri comma10.;run;

Figura 1.6. Modificarea antetului afişării

Figura 1.7. Modificarea antetului afişării

Page 6: TDM - Laborator 6 - Proceduri SAS

Observaţie:

folosirea clauzei BY implică anterior sortarea crescătoare a observaţiilor în funcţie

de variabila definită la clauza BY, lucru realizat cu procedura SORT;

Exemplul 7. Afişare cu însumarea variabilelor numerice, grupate cu clauza BY

options nodate pageno=1 linesize=70 pagesize=60 nobyline;proc sort data=situatie; by regiune;run; proc print data=situatie noobs n='Numarul observatiilor pe regiune: ' 'Numar total: '; sum cheltuieli venituri; by regiune; format cheltuieli venituri comma10.; title 'Venituri si cheltuieli totale pentru regiunea #byval(regiune)';run;

options byline;

Figura 1.8. Modificarea antetului afişării

Figura 1.9. Modificarea antetului afişării

Page 7: TDM - Laborator 6 - Proceduri SAS

Observaţii:

Specificaţia byval plasează în titlu valoarea curentă a variabilei definită în clauza

BY;

Opţiunea BYLINE are ca efect afişarea fiecărui grup BY pe câte o pagină.

Page 8: TDM - Laborator 6 - Proceduri SAS

1.1.2. Procedura SORT

Sortează observaţiile unui tabel de date

Sintaxa procedurii:

PROC SORT <opțiuni>;

BY <DESCENDING> var_1 <...<DESCENDING> var_n>;

RUN;

Exemple:

Exemplul 1. Sortare descrescătoare în funcţie de cheltuieli

proc sort data=situatie;by descending cheltuieli;

run;

proc print data=situatie;run;

Exemplul 2. Sortare (descrescătoare în funcţie de cheltuieli şi crescătoare în funcţie de

venituri) în alt tabel de date.

proc sort data=situatie out=situatie_sortata;by descending cheltuieli venituri;

run;

proc print data=situatie_sortata;run;

Observaţie:

sortarea implicită este cea crescătoare. Ea nu trebuie specificată cu nicio opţiune;

sortare descrescătoare şi după cheltuieli şi după venituri ar implica folosirea clauzei

BY astfel: by descending cheltuieli descending venituri;

Page 9: TDM - Laborator 6 - Proceduri SAS

1.1.3. Procedura MEANS

Calculează media variabilelor dintr-un tabel de date

Sintaxa procedurii:

PROC MEANS <optiuni>;

<clauze>

RUN;

Exemplul 1. Statistici simple descriptive.options nodate pageno=1 linesize=80 pagesize=60;data concurs_de_prajituri; input nume $ 1-12 varsta 13-14 aspect 16-17 gust 19-20 aroma $ 23-32 etaje 34 ; datalines;Orlando 27 93 80 Vanilie 1Ramey 32 84 72 Rom 2Goldston 46 68 75 Vanilie 1Roe 38 79 73 Vanilie 2Larsen 23 77 84 Ciocolata .Davis 51 86 91 Rom 3Strickland 19 82 79 Ciocolata 1Nguyen 57 77 84 Vanilie .Hildenbrand 33 81 83 Ciocolata 1Byron 62 72 87 Vanilie 2Sanders 26 56 79 Ciocolata 1Jaeger 43 66 74 1Davis 28 69 75 Ciocolata 2Conrad 69 85 94 Vanilie 1Walters 55 67 72 Ciocolata 2Rossburger 28 78 81 Rom 2Matthew 42 81 92 Ciocolata 2Becker 36 62 83 Vanilie 2Anderson 27 87 85 Ciocolata 1Merritt 62 73 84 Ciocolata 1;

proc means data=concurs_de_prajituri n mean max min range std fw=8; var aspect gust; title 'Statistici pentru punctajele privind aspectul si gustul’;run;

Page 10: TDM - Laborator 6 - Proceduri SAS

Figura 1.10. Modificarea antetului afişării

Aceste exemplu creează tabelul de date concurs_de_prajituri, conţinând 6 variabile

referitoare la numele participantului, vârsta, punctajul obţinut pentru aspectul prăjiturii, punctajul

pentru gustul prăjiturii, aroma prăjiturii şi numărul de etaje.

Observaţii:

tabelul este populat cu 20 de observaţii;

procedura MEANS este folosită cu următoarele opţiuni şi clauze:

Opţiuni:

DATA=tabel_de_date_SAS;

N – numărul de observaţii valide;

MEAN – media variabilelor;

MAX – valoarea maximă;

MIN – valoarea minimă;

RANGE – diferenţa MAX-MIN;

STD – deviaţia standard;

FW=nr (aici 8) - field width – lăţimea câmpului (coloanei) de afişare, care determină

şi numărul de zecimale afişate.

Clauze:

VAR – specifică variabilele ce vor fi analizate;

TITLE – adaugă un titlu în afişare.

Exemplul 2. Statistici descriptive cu clasificarea datelor

data curs; input nume $ 1-8 gen $ 11 an $ 13-14

Page 11: TDM - Laborator 6 - Proceduri SAS

clasa $ 16 examen 18-19 punctaj_final 21-22; datalines;Abbott F 97 A 90 87Branford M 98 A 92 97Crandell M 98 B 81 71Dennison M 97 A 85 72Edgar F 98 B 89 80Faust M 97 B 78 73Greeley F 97 A 82 91Hart F 98 B 84 80Isley M 97 A 88 86Jasper M 97 B 91 93;

proc means data=curs maxdec=3; var examen; class gen an; types () gen*an;title 'punctajul la examen, grupat pe gen si anul absolvirii';run;

Aceste exemplu creează tabelul de date curs, conţinând 6 variabile referitoare la un curs

perfectionare: numele cursantului, genul, anul absolvirii, clasa, punctajul obţinut la examen şi

punctajul final.

Observaţii:

tabelul este populat cu 10 de observaţii;

procedura MEANS este folosită cu următoarele opţiuni şi clauze:

Opţiuni:

DATA=tabel_de_date_SAS;

Pentru că nu se specifică nicio statistică, vor fi afişate toate cele implicite (N,

MEANS, STD, MIN, MAX)

MAXDEC - specifică numărul maxim de zecimale afişate.

Clauze:

VAR – specifică variabilele ce vor fi analizate;

CLASS – separă analiza în subgrupuri; fiecare combinaţie unică de valori pentru gen

şi anul absolvirii reprezintă un subgrup;

TYPES (() gen*an ) – specifică faptul că analiza va fi făcută atât asupra tuturor

observaţiilor din tabel, cât şi asupra celor 4 subgrupuri rezultate în urma combinaţiei

gen*an (întrucât variabilele gen şi an au câte două valori distincte, rezultă în total

patru subgrupuri);

Page 12: TDM - Laborator 6 - Proceduri SAS

TITLE – adaugă un titlu în afişare.

Figura 1.11. Modificarea antetului afişării

Exemplul 3. Folosirea clauzei BY proc sort data=curs out=tabel_ordonat; by clasa;run;proc means data=tabel_ordonat min max median; by clasa; var examen; class gen an; title1 'punctajul la examen, grupat pe gen si anul absolvirii'; title2 ' in cadrul fiecarei clase ’;run;

Figura 1.12. Modificarea antetului afişării

Page 13: TDM - Laborator 6 - Proceduri SAS

Observaţie:

Clauza BY produce o analiză separată pe fiecare valoare a variabilei specificate (în

acest caz variabila clasa).

Exemplul 4. Crearea unui interval de încredere pentru valoarea medieidata voluntariat; input liceu $ 1-7 an 9-12 nume $ 14-20 suma 22-26 ore 28-29; datalines;Monroe 1992 Allison 31.65 19Monroe 1992 Barry 23.76 16Monroe 1992 Candace 21.11 5Kennedy 1994 Sid 27.45 25Kennedy 1994 Will 28.88 21Kennedy 1994 Morty 34.44 25;proc means data=voluntariat fw=8 maxdec=2 alpha=0.1 clm mean std; class an; var suma ore;run;

Figura 1.13. Modificarea antetului afişării

Observaţie:

Opţiunea alpha=0.1 specifică o limită de încredere de 90%, iar opţiunea CLM

produce atât limita inferioară, cât şi pe cea superioară.