Sunteți pe pagina 1din 13

Seminar 4 Programare SAS

Prelucrarea datelor prin crearea de rapoarte şi aplicarea de analize


statistice

1. Procedura PRINT - realizarea de rapoarte detaliate


Procedura PRINT este probabil cea mai utilizată procedură SAS, fiind folosită pentru
afişarea datelor cu sau fără grupare. În forma sa cea mai simplă, procedura listează toate
variabilele şi toate observaţiile dintr-un set de date.

Sintaxa:
PROC PRINT DATA = set_date NOOBS LABEL;
- NOOBS suprimă afişarea numărului observaţiei.
- LABEL afişează eticheta, în loc de numele variabilei.
O serie de declaraţii opţionale sunt utile la creare de raporte de detaliu:
- BY lista_variabile; Declaraţia BY iniţiază în rezultate o nouă secţiune pentru fiecare valoare
nouă a variabilelor de grupare şi scrie valorile variabilelor de grupare în partea de sus a
fiecărei secţiuni. Datele trebuie să fie sortate în prealabil după variabilele de grupare.
- ID lista_variabile; Când se utilizează declaraţia ID, numerele observaţiilor nu vor fi afişate.
În schimb, variabilele din lista_variabile vor apărea în partea stângă a paginii.
- SUM lista_variabile; Declaraţia afişează sume ale valorilor variabilelor din listă.
- VAR lista_variabile; Specifică variabilele afişate şi ordinea acestora.

Exerciţiul 1: Pentru a-şi suplimenta fondurile destinate unei excursii şcolare, elevii claselor a III-
a A şi a III-a B au decis să participe la câteva evenimente din cadrul unei campanii de încurajare
a cititului în rândurile copiilor, prin vânzarea de semne de carte cu mesaje motivaţionale create
de ei. Copiii au câştigat câte 3 lei pentru un semn de carte pe suport de hârtie sau textil. În
fişierul „micii_cititori.txt” au fost stocate date referitoare la elevul care a participat la eveniment,
tipulsemnelor de carte vânduteşicantitatea. Se cere să se realizeze un raport privind sumele cu
care a contribuit fiecare elev, totalul pe fiecare clasă şi totalul general.
DATA cititori;
INFILE "/home/nume.prenume/micii_cititori.txt";
INPUT Nume $ Clasa $ DataParticipare MMDDYY10. Suport $ Cantitate;
Castig= Cantitate*3;
RUN;
PROC SORT DATA=cititori;
BY Clasa;
PROC PRINT DATA=cititori;
BY Clasa;
SUM Castig;
TITLE 'Fondurile stranse de fiecare clasa';
RUN;
De lucru!!!!Modificaţi codul SAS de mai sus pentru a personaliza raportul obţinut astfel încât
pentru câştigul fiecărei clase şi per total să se precizeze etichete. Adăugaţi codul:
sumlabel='Total #byval(Clasa)' grandtotal_label='Total'ca opţiune a procedurii PRINT, după
numele setului de date care se afişează. Formataţi data de participare folosind formatul SAS
DATE9..

2. Procedura UNIVARIATE – generarea de statistici descriptive

Procedura UNIVARIATE, parte a BASE SAS, este folosită în principal pentru examinarea
distribuţiei datelor pentru o singură variabilă, incluzând o evaluarea a normalităţii datelor şi
identificarea valorilor extreme. Pe lângă calcularea unor indicatori statistici de bază (care se vor
regăsi şi în procedra MEANS), UNIVARIATE poate include şi reprezentări grafice necesare
pentru a analiza datele.

Sintaxa simplificată:
PROC UNIVARIATE<optiuni>;
VARlistă_variabile;
BY listă_variabile;
ID variabilă;
HISTOGRAM <listă_variabile>;

Fără declaraţia VAR, procedura va genera statistici pentru toate variabilele numerice ale setului
de date. Trei opţiuni uzuale care se pot specifica împreună cu declaraţia procedurii sunt:DATA,
NORMAL, FREQ şi PLOT. Prin opţiunea NORMAL sunt realizate teste de normalitate, FREQ
generează tabele de frecvenţă ale variabilelor, iar PLOT produce trei tipuri de grafice: diagrama
ramură-frunză (stem-leaf), diagramabox plot şi diagrama distribuţiei normale. Se poate folosi
declaraţia BY pentru a obţine analize separate pe grupe de valori. Declaraţia ID denumeşte
variabila care identifică observaţiile în locul numărului observaţiei, iar HISTOGRAM
construieşte un grafic de tip histogramă.

Exerciţiul 2:Se consideră datele referitoare la notele obţinute de o grupă de studenţi la un test
(fişierul“note.txt”). Din rezultatele afişate prin aplicarea procedurii UNIVARIATE se cere să se
determine media notelor studenţilor, dacă au existat valori în afara intervalului 0-100 şi care este,
cu aproximaţie,punctajul în jurul căruia se concentrează majoritatea notelor studenţilor.
*Statistici descriptive cu UNIVARIATE;
DATA note;
INFILE "/home/nume.prenume/note.txt";
INPUT Punctaj @@;
RUN;
PROC UNIVARIATE DATA=note PLOT;
VAR Punctaj;
TITLE;
RUN;

Identificarea valorilor extreme

Implicit, procedura afişează cinci dintre valorile cele mai mici şi mai mari ale variabilei analizate
şi numărul observaţiei care are aceste valori extreme.
Se poate utiliza opţiunea NEXTROBS= pentru a afişa un alt număr de valori extreme.
Pentru a afişa cele mai mici şi mai mari valori distincte, se va utiliza opţiunea NEXTRVAL= ,
iar pentru a suprima afişarea tabelei cu observaţiile extreme, opţiunea NEXTROBS=0.

Exerciţiul 3: Fişierul “amenzi.txt” conţine numărul de amenzi date pentru depăşirea vitezei în
fiecare stat din SUA. Se cere:
a) să seanalizeze aceste date şi să se identifice valorile extreme ale numărului de amenzi cu
evidenţierea codului statului în loc de numărul înregistrării;
b) să se reprezinte grafic o histogramă a numărului de amenzi;
c) să se identifice cele mai mici şi cele mai mari cinci valori extreme distincte pentru variabila
numerică.

*Valori extreme si histograma cu UNIVARIATE;


LIBNAME sem4 "/home/spreda2003";
data sem4.amenzi_viteza;
set "/home/spreda2003/SeminarProg4/amenzi_viteza.sas7bdat";
run;

*punctul a);
PROC UNIVARIATE DATA=sem4.amenzi_viteza;
VAR Amenzi;
ID Stat;
Title "Indicatori statistici pentru amenzile de viteza";
RUN;
*punctul b);
PROC UNIVARIATE DATA=sem4.amenzi_viteza noprint; *nu fiseaza tabelele de iesire;
VAR Amenzi;
HISTOGRAM Amenzi;
Title "Histograma pentru amenzile de viteza";
RUN;
*punctul c);
PROC UNIVARIATE DATA=sem4.amenzi_viteza NEXTRVAL=5 NEXTROBS=0;
VAR Amenzi;
ID Stat;
Title "Indicatori statistici cu valori limita distincte pentru amenzile de viteza";
RUN;

3. Procedura MEANS – crearea de rapoarte agregate

Procedura MEANS are rolul de a crea rapoarte agregate prin generarea de diferiţi indicatori
statistici pentru variabilele de tip numeric. De asemenea, poate fi folosită pentru a crea seturi de
date agregate care pot fi ulterior analizate cu ajutorul altor secţiuni de date sau proceduri.

Sintaxa:
PROC MEANS indicatori;
Unde indicatori reprezintă tipuri de indicatori statistici. Exemple de indicatori care pot fi
utilizaţi:

MAX – valoarea maximă


MIN – valoarea minimă
MEAN – media
N – numărul de valori nenule
NMISS – numărul de valori lipsă
SUM – suma

Se pot adăuga următoarele declaraţii opţionale:


- BY lista_variabile – realizează analize separate pentru fiecare nivel al variabilelor din listă.
Datele trebuie să fie în prealabil sortate în aceeaşi ordine în care apar variabilele din
lista_variabile.
- CLASS lista_variabile – realizează tot analize separate pentru fiecare nivel al variabilelor,
însă rezultatele sunt prezentate mai compact faţă de declaraţia BY, iar datele nu trebuie
sortate.
- VAR lista_variabile – specifică variabile analizate.

Exerciţiul 4: Un distribuitor de bulbi de flori doreşte să realizeze un raport agregat al vânzărilor


din fiecare lună. Setul de date SAS “flori” conţine codul clientului, data vânzării şi bulbii de
lalele, gladiole şi zambile vânduţi.
LIBNAME ad_data "/home/nume.prenume";
data ad_data.flori;
set "/home/spreda2003/SeminarProg4/flori.sas7bdat";
run;
DATA vanzari;
SET ad_data.flori;
Luna = MONTH(DataVanzare);
PROC SORT DATA =vanzari;
BY Luna;
* Calculeaza media vanzarilor lunare de bulbi de flori;
PROC MEANS DATA = vanzari;
BY Luna;
VAR Lalele Gladiole Zambile;
TITLE 'Raportul vanzarilor lunare de bulbi de flori';
RUN;

Scrierea statisticilor agregate într-un set de date

Uneori este necesară salvarea statisticilor agregate într-un set de date pentru analize ulterioare
sau pentru combinarea cu alte date.

Sintaxa:
OUTPUT OUT =set-date lista-statistici-iesire;
unde:
- set-date este setul de date care va conţine rezultatele;
- lista-statistici-iesire conţine indicatorii statistici care se vor calcula şi numele variabilelor
asociate cu aceştia.
Un format posibil pentru această listăde ieşire este:
statistica (lista_variabile)=lista_nume
- statistica = unul dintre indicatorii statistici disponibili cu procedura MEANS;
- lista_variabile = pentru ce variabile se vor calcula indicatorii;
- lista_nume = noile nume de variabile asociate indicatorilor statistici.
Prin folosirea opţiunii NOPRINT rezultatele nu se vor mai afişa pe ecran, ci vor fi direcţionate
doar către setul de date de ieşire.

Exerciţiul 5:Se doreşte agregarea datelor de la exerciţiul 4, astfel încât să avem o singură
observaţie pentru fiecare client, care să conţină suma, media şi numărul de bulbi cumpăraţi de
acesta.
*Scrierea statisticilor agregate intr-un set de date;
DATA vanzari1;
SET ad_data.flori;
PROC SORT DATA = vanzari1;
BY IDClient;
PROC MEANS NOPRINT DATA = vanzari1;
BY IDClient;
VAR Lalele Gladiole Zambile;
OUTPUT OUT = totaluri MEAN(Lalele Gladiole Zambile) =
MedieLalele MedieGladiole MedieZambile
SUM(Lalele Gladiole Zambile) = Lalele Gladiole Zambile;
PROC PRINT DATA = totaluri;
TITLE 'Raport privind bulbii de flori vanduti fiecarui client';
FORMAT MedieLalele MedieGladiole MedieZambile 3.;
RUN;

Intervale de încredere
Dacă nu se specifică nicio opţiune, procedura MEANS va calcula media, numărul de
valori nenule, abaterea standard, valoarea minimă şi maximă a fiecărei variabile numerice. Prin
adăugarea oricărui indicator, procedura nu va mai calcula indicatorii impliciţi, aceştia trebuind
adăugaţi.
Intervalul de încredere implicit pentru calculul mediei este acela al nivelului de
semnificaţie 0.05, adică 95%. Dacă se doreşte specificarea unui alt interval de încredere, acest
lucru trebuie realizat folosind opţiunea ALPHA împreună cu indicatorul CLM (limitele
intervalului de încredere).

Exerciţiul 6: O tânără scriitoare aspirantă de cărţi pentru copii doreşte să realizeze un studiu în
vederea publicării unei cărţi ilustrate de poveşti. Fiind interesată în special de numărul de pagini
pe care ar trebui să îl aibă o astfel de carte, tânăra vizitează o librărie şi numără paginile unei
selecţii aleatore de cărţi similare. Folosind datele stocate în fişierul “carti.txt”, realizaţi un raport
care să îi fie folositor scriitoarei în luarea deciziei.
*Intervale de incredere pentru medie;
DATA PaginiCarte;
INFILE "/home/nume.prenume/carti.txt";
INPUT NrPagini @@;
RUN;
PROC MEANS DATA=PaginiCarte N MEAN MEDIAN CLM ALPHA=.10;
TITLE "Raport privind numarul de pagini al cartilor ilustrate";
RUN;
De lucru!!!!Interpretaţi rezultatele obţinute!

4. Procedura FREQ – calcularea distribuţiei de frecvenţe


Scopul principal al procedurii FREQ (parte a BASE SAS) este acela de a crea tabele care
arată distribuţia valorilor datelor categorice, dar totodată poate identifica şi nereguli în date.

Sintaxa:
PROC FREQ DATA = date_intrare <optiuni>;
TABLES combinatii_variabile <optiuni>;
Declaraţia TABLES este cea care defineşte variabilele pentru care se creează tabele de
frecvenţe. Pentru tabelele de frecvenţe unidimensionle, se specifică numele variabilei, iar pentru
tabele de frecvenţe unidimensionale se scrie o expresie de tipul var1*var2*...*varn.
Următoarele reprezintă opţiuni care controlează modul de afişare:
LIST – afişează tabelele multidimensionale în format listă, nu tabelar;
MISSING – include valorile lipsă în statistici;
NOCOL – suprimă afişarea procentelor coloanelor în tabelele de frecvenţă;
NOROW– suprimă afişarea procentelor rândurilor în tabelele de frecvenţă;
NOCUM – suprimă afişarea frecvenţelor şi procentelor cumulate în tabelele unidmensionale;
NOPERCENT – suprimă afişarea tuturor procentelor în tabelele de frecvenţe.
OUT = set_date – scrie un set de date care conţine frecvenţele.

Exerciţiul 7: Un proprietar al unei cafenele ţine o evidenţă a vânzărilor sale şi înregistrează


fiecare tip de cafea vândută (cappuccino, frappe, espresso şi latte macchiatto), împreună cu
locaţia unde a avut loc vânzarea: în interiorul magazinului (-i-) sau la fereastra expres pentru
vânzare rapidă (-x-). Se cere să se realizeze un raport privind numărul de cafele vândute în cele
două puncte de vânzare per total şi pe fiecare tip de cafea.
PROC FORMAT;
value $zona
'i' = 'interior'
'x' = 'exterior';
RUN;
DATA comenzi;
INPUT cafea $ zona $ @@;
DATALINES;
esp i cap x cap i fra i lat i fra x esp x fra i lat x esp x
cap i esp x cap x fra x . x fra i esp x cap i lat i fra i
fra i fra i lat x esp x fra i esp x esp i fra i cap i fra i
;
RUN;
Title "Tabele de frecventa pentru zona si zona/cafea";
PROC freq DATA=comenzi;
format zona $zona.;
TABLES zona zona*cafea;
RUN;

Exerciţiul 8: O companie aeriană doreşte să facă o analiză a salariilor anuale exprimate în dolari
ale angajaţilor săi şi să determine câte dintre salarii se găsesc în următoarele intervale de valori,
per total companie şi pentru fiecare departament: a) mai mic decât 40.000 (mic); b) între 40.000
şi 60.000 (mediu); c) între 60.000 şi 100.000 (mare); d) peste 100.000 (executiv). Datele se
găsesc în setul de date SAS “angajati”.
*Determinarea frecventelor datelor grupate;
LIBNAME sem4 "/home/nume.prenume";
data sem4.angajati;
set "/home/spreda2003/SeminarProg4/angajati.sas7bdat";
run;
PROC FORMAT;
value nivel low-<40000='Mic'
40000-<60000='Mediu'
60000-100000='Mare'
other = 'Executiv';
RUN;
PROC FREQ DATA=sem4.angajati ;
TABLES Salariu /nocum ;
FORMAT Salariu nivel.;
TITLE "Raport privind nivelul salariului anual";
RUN;
PROC FREQ DATA=sem4.angajati;
TABLES Departament * Salariu/ nocol norow nopercent;
FORMAT Salariu nivel.;
TITLE "Raport privind nivelul salariului anual pe departament";
RUN;

5. Procedurile GCHART şi GPLOT – realizarea de grafice


Pentru realizarea de grafice cu opţiuni mai avansate în SAS este necesar modulul
SAS/GRAPH. Şi BASE SAS permite construirea de grafice (prin procedurile CHART şi PLOT),
însă acestea au doar opţiuni de bază în ceea ce priveşte modul de prezentare. Afişarea graficelor
este controlată prin opţiuni grafice globale precum GOPTIONS, SYMBOL sau PATTERN, al
căror effect rămâne valabil între prelucrări şi care sunt aditive (spre exemplu, dacă setăm două
elemente grafice şi, ulterior, modificăm unul dintre ele, celălalt element rămâne valabil).

Sintaxa:
PROC GCHART DATA = set_date;
HBAR | HBAR3D | VBAR | VBAR3D lista_var_grafic / <optiuni>;
PIE | PIE3D | DONUT lista_var_grafic / <optiuni>;
STAR lista_var_grafic / <optiuni>;
Declaraţiile care urmează după numele procedurii definesc tipul de grafic construit,
astfel:
HBAR – Grafic cu bare orizontale
HBAR3D – Grafic cu bare orizontale 3D
VBAR – Grafic cu bare verticale
VBAR3D – Grafic cu bare verticale 3D
PIE – Grafic de tip Pie
PIE3D – Grafic de tip Pie 3D
DONUT– Grafic de tip inel
STAR– Grafic de tip stea
Exerciţiul 9:Un distribuitor de biciclete a înregistrat vânzările sale (exprimate în mii de dolari)
pentru diferite tipuri de biciclete în patru ţări. Folosind datele cuprinse în setul de date
“Biciclete”, se cere să se realizeze două grafice verticale care arată frecvenţele pentru ţară şi
model.
LIBNAME ad_data "/home/nume.prenume";
data ad_data.biciclete;
set "/home/spreda2003/SeminarProg4/biciclete.sas7bdat";
run;
TITLE 'Distributia vanzarilor in functie de tara si model';
GOPTIONS reset=all;
* grafic cu bare pentru variabile discrete;
PROC GCHART data=ad_data.biciclete;
VBAR Model Tara;
RUN;
QUIT;
De lucru!!!!Să se modifica programul anterior pentru a realiza un grafic de tip pie care arată
frecvenţele pentru modelul de bicicletă.

Exerciţiul 10: Folosind setul de date “Biciclete”, să se creeze un grafic cu bare vertical pentru
VanzarileTotale. Se vo adăuga opţiuni prin care se specifică limitele valorilor numerice
reprezentate şi punctele central pentru barele graficului. Folosiţi pentru punctele central limitele
de la 0 la 12.000, cu interval de 2.000.
* grafic cu bare pentru variabile continue;
TITLE "Distributiavanzarilor totale";
PATTERN value=solid;
PROC GCHART data=ad_data.biciclete;
vbar VanzariTotale / midpoints= 0 to 12000 by 2000;
RUN;
QUIT;

Procedura GCHART permite crearea unor grafice în care înălţimea unei bare reprezintă anumiţi
indicatori statistici precum media sau suma, pentru fiecare variabilă de clasificare. Se pot folosi
următoarele opţiuni:
SUMVAR – arată variabilele pentru care se calculează indicatorul statistic;
TYPE – tipul de indicator statistic.
Exerciţiul 11: Folosind setul de date “Biciclete”, să se creeze un grafic cu bare vertical pentru
VanzarileTotale pentru fiecare ţară.
* grafic cu bare care reprezinta sume;
TITLE "Suma vanzarilor totale pe tara";
PATTERN value=L1;
*definirea unei axe cu valori ordonate;
AXIS1 order =("Franta" "Italia" "SUA" "Marea Britanie");
PROC GCHART data=ad_data.biciclete;
VBAR Tara / sumvar=VanzariTotale
type=sum
maxis=axis1;
RUN;
QUIT;
Există două modalităţi prin care se pot adăuga noi variabile pe una din axele unui graphic şi
anume prin intermediul opţiunilor GROUP= şi SUBGROUP=. Opţiunea GROUP grupează
datele în funcţie de valorile variabilei de clasificare pe care o referă, în timp ce opţiunea
SUBGROUP foloseşte şabloane diferite încadrul fiecărei coloane pentru a reprezenta valorile
variabilei adăugate.

Exerciţiul 12: Folosind datele cuprinse în setul de date “Biciclete”, să se creeze un grafic cu bare
verticale care arată frecvenţa distribuţiei pentru ţară şi, încadrul fiecărei coloane, distribuţia
pentru model.
*grafic cu a doua variabila ca subgrup;
TITLE "Distribuita vanzarilor in functie tara şi de model";
PATTERN value = solid;
PROC GCHART data=ad_data.Biciclete;
VBAR Tara / subgroup=Model;
RUN;
QUIT;

Pentru a construi un grafic care arată legătura între două variabile (cunoscut sub denumirea de
diagramă de corelaţie – scatter plot) se poate folosi procedura GPLOT.

Sintaxa:
PROC GPLOT DATA = set_date;
PLOT variabila_Y*variabila_X / <optiuni>;

Declaraţia PLOT specific cele două variabile care se reprezintă pe axele graficului. Prin
declaraţia SYMBOL se pot adăuga anumite simboluri care să reprezinte intersecţia valorilor
variabilelor şi se pot conecta punctele prin linii drepte sau curbe. Opţiunea INTERPOL=
(prescurtat I=) ajută la conectarea punctelor şi poate lua valori precum join (uneşte cu liniid
repte) sau sm (uneşte prin linie continuă), în timp ce opţiunea WIDTH= controlează lăţimea
liniei.
Exerciţiul 13: Setul de date SAS “Actiuni” conţine preţul unei acţiuni cotate la bursă în fiecare
zi din luna ianuarie. Se cere să se reprezinte grafic evoluţia în timp a preţului acţiunii folosind
diferite opţiuni ale procedurii GPLOT.

*grafice care arata corelatia intre variabile;


*diagrama de corelatie standard;
LIBNAME ad_data "/home/nume.prenume";
data ad_data.actiuni;
set "/home/spreda2003/SeminarProg4/actiuni.sas7bdat";
run;
TITLE "Evolutia in timp a pretului actiunii - Grafic standard";
PROC GPLOT data=ad_data.actiuni;
PLOT DATA * Pret;
RUN;
QUIT;
*diagrama de corelatie cu puncte;
SYMBOL value=dot;
TITLE "Evolutia in timp a pretului actiunii - Grafic cu puncte";
PROC GPLOT data=ad_data.actiuni;
PLOT Data * Pret;
RUN;
QUIT;
*diagrama de corelatie cu linie continua;
SYMBOL value=dot i=sm;
TITLE "Evolutia in timp a pretului actiunii - Grafic cu linie continua";
PROC GPLOT data=ad_data.actiuni;
PLOT Data * Pret;
RUN;
QUIT;

6. Procedura CORR – analiza de corelaţie

Procedura CORR, inclusă în BASE SAS, are rolul de a calcula corelaţii între două variabile, prin
intermediul coeficienţilor de corelaţie.

Sintaxa:
PROC CORRDATA = set_date;
VAR lista_variabile;
WITH lista_variabile;

Fără declaraţiile VAR şi WITH, procedura calculează corelaţii între toate variabilele numerice
care se găsesc în setul de date SAS cel mai recent utilizat. Variabilele specificate în declaraţia
VAR vor apărea în partea de sus a tabelului de corelaţie, iar cele din declaraţia WITH în stânga
tabelului. Implicit, procedura CORR calculează coeficientul de corelaţie al lui Pearson. Se pot
adăuga opţiuni prin care se pot calcula alţi coeficienţi, precum SPEARMAN sau KENDALL.
Exerciţiul 14: Studenţii dintr-o grupă au susţinut un test practic la o disciplină de programare şi
au notat rezultatul obţinut la test, precum şi numărul de ore, din săptămâna anterioară testului, în
care au urmărit producţii TV, împreună cu orele în care au exersat pentru test. Se cere să se
evalueze influenţa orelor petrecute la televizor şi a celor în care au exersat asupra notei obţinute.
*Analiza de corelatie;
DATA grupa_studenti;
INPUT Punctaj Televiziune Exercitii @@;
DATALINES;
56 6 2 78 7 4 84 5 5 73 4 0 90 3 4
44 9 0 76 5 1 87 3 3 92 2 7 75 8 3
85 1 6 67 4 2 90 5 5 84 6 5 74 5 2
64 4 1 73 0 5 78 5 2 69 6 1 56 7 1
87 8 4 73 8 3 100 0 6 54 8 0 81 5 4
78 5 2 69 4 1 64 7 1 73 7 3 65 6 2
;
RUN;
PROC CORR DATA = grupa_studenti;
VAR Televiziune Exercitii;
WITH Punctaj;
TITLE 'Corelatie intre punctajul la test';
TITLE2 'Si orele petrecute la televizor sau exarsand';
RUN;

7. Procedura REG – analiza de regresie

Procedura REG (parte a modulului SAS/STAT) este potrivită pentru a realize modele de regresie
liniară.

Sintaxa:
PROC REGDATA = set_date;
MODEL dependenta = independenta;
PLOT dependenta * independenta;

În declaraţia MODEL, variabila dependentă este plasată în stânga semnului “=”, iar variabila(le)
independente în partea dreaptă. Declaraţia PLOT este una dintre multele opţiuni ale procedurii
prin intermediul acesteia realizându-se diferite diagrame de corelaţie.

Exerciţiul 15: Un comerciant doreşte să prognozeze vânzările de băuturi răcoritoare în unul din
punctele sale de vânzare. Pentru aceasta a notat vânzările din primele douăzeci şi cinci de zile ale
lunii iunie, precum şi temperaturile înregistrate în aceste zile. Se cere să se determine dacă există
corelaţie semnificativă între vânzările de răcoritoare şi temperatură şi să se estimeze vâzările din
ziua de 26 iunie, dacă temparatura prognozată este de 32 grade. Datele să găsesc în fişierul
“racoritoate.txt”.
*Analiza de regresie;
DATA racoritoare;
INFILE "/home/nume.prenume/racoritoare.txt";
INPUT Data: MMDDYY. Vanzari Temperatura;
RUN;
PROC PRINT data=racoritoare;
FORMAT data DDMMYY.;
RUN;
PROC CORR data=racoritoare;
VAR Temperatura;
WITH Vanzari;
TITLE "Corelatia intre vanzarile de racoritoare";
RUN;
PROC REG data=racoritoare;
MODEL Vanzari=Temperatura;
PLOT Vanzari*Temperatura;
TITLE "Rezultatele analizei de regresie";
RUN;

8. Procedura ANOVA – analiza dispersională

ANOVA (parte a SAS/STAT) este una dintre procedurile disponibile în SAS pentru efectuarea
de analize dispersionale. Procedura este special proiectată pentru a lucra cu date echilibrate, unde
există acelaşi număr de observaţii pentru fiecare variabilă de clasificare.
Sintaxa:
PROC ANOVADATA = set_date;
CLASS listă_variabile;
MODEL dependenta = explicative;
MEANSexplicative /optiuni;

Declaraţia CLASS trebuie scrisă înainte de MODELşi defineşte variabila(le) de clasificare.


Declaraţia MODEL defineşte variabila dependentă şi variabilele explicative. MEANS calculează
media variabilei dependente pentru oricare din variabilele explicative speficate în MODEL. Se
pot efectua mai multe tipuri de teste de comparaţie pentru medii, precum SCHEFFE sau testul t
al lui Bonferroni (BON).

Exerciţiul 16: Pornind de la datele de la exerciţiul 15, comerciantul intenţionează să afle dacă
vânzările de băuturi răcoritoare din acea locaţie (L1) diferă semnificativ faţă de vânzările
înregistrate în aceeaşi perioadă în alte două locaţii pe care acesta le deţine (L2 şi L3). Se va
folosi fişierul “locatii.txt” ce conţine două coloane care memorează vânzările şi locaţia.
*Analiza dispersionala;
DATA locatii;
INFILE "/home/nume.prenume/locatii.txt";
INPUT Vanzari Locatie$;
RUN;
PROC ANOVA DATA=locatii;
CLASS Locatie;
MODEL Vanzari = Locatie;
MEANS Locatie / SCHEFFE;
TITLE "Vanzarile de racoritoare in cele trei locatii";
RUN;

Probleme propuse

1. Un număr de 25 de studenţi din diferite centre universitare au participat la strângerea de


fonduri pentru un eveniment caritabil. În fişierul text “caritabil.txt” au fost salvate, în ordine,
date referitoare la centrul universitar din care provine studentul (BUC – Bucuresti, IAS –
Iasi, TIM – Timisoara, CLU - Cluj), profilul facultăţii urmate (ECON – economic, TEHN –
tehnic. UMAN - Umanist), genul studentului (M sau F), precum şi anul de studiu (1-3).
Se cere să se creeze tabele de frecvenţe bidimensionale pentru perechile: Centru-Profil,
Centru-Gen, An-Profil şi An-Gen. Se va folosi procedura FREQ cu o declaraţie de tipul
TABLES (A B) * (C D). Se asemenea, se cere să se afişeze forma detaliată a valorilor pentru
denumirile centrelor universitare şi ale profilurilor.

2. Folosind datele din setul de date SAS “Angajati”, să se creeze un grafic cu bare verticale care
să arate salariul mediu anual pe fiecare departament.

3. Într-un campionat de bachet între şcoli evoluează cinci echipe de fete. Se cere să se
determine dacă există diferenţe semnificative în ceea ce priveşte înalţimea jucătoarelor celor
cinci echipe, dorindu-se, ca la acest nivel, să existe echitate între echipele înscrise în
campionat. Se vor folosi datele din setul de date SAS “echipe”.

S-ar putea să vă placă și