Software pentru analiza statistica si econometrica - FSEGArodica.lung/sase/cursuri/sas1.pdf ·...

21
SOFTWARE PENTRU ANALIZA STATISTICA SI ECONOMETRICA Conf. univ. dr. Rodica Ioana Lung [email protected]

Transcript of Software pentru analiza statistica si econometrica - FSEGArodica.lung/sase/cursuri/sas1.pdf ·...

SOFTWARE PENTRU

ANALIZA STATISTICA SI

ECONOMETRICA Conf. univ. dr. Rodica Ioana Lung

[email protected]

SAS

Moduri de lucru in SAS

• Interactiv • Batch mode

• Se ruleaza un fisier de

instructiuni SAS

• Rularea e programata de

sistemul de

operare/manual

• Ne-interactiv

• Rezultatele/logs sunt

salvate in fisiere pe hard.

Scriere sau

modificare

Testare program

Verificare si

depanare

Procesul de programare

Definirea problemei de rezolvat

Scrierea programului SAS

Rulare

Verificare rezultate

Depanare sau modificare

Componentele unui program SAS

DATA step PROC step

Combinate

Limbaj de programare

data gradinita;

input ID 1-3 Nume $ 5-19 Sex $21-21

Greutate_inceput_an Greutate_sfarsit_an;

datalines;

784 Pop Adela F 12.3 13.1

749 Candrea Andrei M 14.5 15.7

750 Muresan Ramon F 11.7 12.5

751 Achim Calin M 15 17

752 Zah Liliana F 12.2 13.4

;

proc print data=gradinita;

title "Greutate copii grupa mica";

run;

DATA step

PROC step

Exemplu

Date initiale DATA step SAS data set

PROC step Raport

Limbaj de programare

data gradinita;

input ID 1-3 Nume $ 5-19 Sex $21-21

Greutate_inceput_an Greutate_sfarsit_an;

datalines;

784 Pop Adela F 12.3 13.1

749 Candrea Andrei M 14.5 15.7

750 Muresan Ramon F 11.7 12.5

751 Achim Calin M 15 17

752 Zah Liliana F 12.2 13.4

;

proc print data=gradinita;

title "Greutate copii grupa mica";

run;

DATA step

PROC step

Rezultat

Greutate copii grupa mica

Obs ID Nume Sex Greutate_inceput

_an

Greutate_sfarsit

_an

1 784 Pop Adela F 12.3 13.1

2 749 Candrea Andrei M 14.5 15.7

3 750 Muresan Ramon F 11.7 12.5

4 751 Achim Calin M 15.0 17.0

5 752 Zah Liliana F 12.2 13.4

Program

data gradinita;

input ID 1-3 Nume $ 5-19 Sex $21-21

Greutate_inceput_an Greutate_sfarsit_an;

crestere=Greutate_sfarsit_an-Greutate_inceput_an;

datalines;

784 Pop Adela F 12.3 13.1

749 Candrea Andrei M 14.5 15.7

750 Muresan Ramon F 11.7 12.5

751 Achim Calin M 15 17

752 Zah Liliana F 12.2 13.4

;

proc print data=gradinita;

title "Greutate copii grupa mica";

run;

Limbaj de programare

Obs ID Nume Sex Greutate_i

nceput_an

Greutate_

sfarsit_an

crestere

1 784 Pop Adela F 12.3 13.1 0.8

2 749 Candrea Andrei M 14.5 15.7 1.2

3 750 Muresan Ramon F 11.7 12.5 0.8

4 751 Achim Calin M 15.0 17.0 2.0

5 752 Zah Liliana F 12.2 13.4 1.2

Greutate copii grupa mica

Structura programelor SAS

Sintaxa generală a comenzilor SAS

• Sfarsit : “;”

• majuscule/minuscule/combinatii;

• Pot incepe pe orice coloana

• Pot fi mai multe pe o linie

• O instructiune se poate intinde pe mai multe linii (pastrand

cuvintele intregi)

• Cuvintele se separa cu ‘ ‘ sau cu caractere speciale

Recomandari de buna practica

• Cate o instructiune pe o line;

• Folosirea ‘run’ dupa fiecare DATA sau PROC

• Lasarea unui rand liber intre doi pasi

• Indentarea liniilor fata de DATA, PROC sau RUN;

• Comentarea/documentarea programelor

• /* bloc – orice fel de text */

• * comentariu care nu contine ; sau ghilimele ;

Reguli generale pentru nume in SAS

• Lungimea intre 1-32 caractere;

• Primul caracter trebuie sa fie un caracter sau “_”;

• Urmatoarele pot fi litere/cifre sau “_”;

• Nu pot aparea spatii goale;

• Numele de variabile se pot scrie oricum

(majuscule/minuscule); SAS retine forma fara insa a tine

cont de reprezentare.

Erori de sintaxa

Ruleaza programul

SAS scaneaza un pas (step)

Verifica Log SAS emite un

mesaj de eroare

Corecteaza codul

Curata fereastra LOG

Eroare

Fara eroare

Diagnosticarea/corectare erori de sintaxa

• daat work.newsalesemps;

• length First_Name $ 12

• Last_Name $ 18 Job_Title $ 25;

• infile newemployees.csv' dlm=',';

• input First_Name $ Last_Name $

• Job_Title $ Salary

• run;

“Ghilimele..

• Nu apare mesaj de eroare in LOG dar

• PROC PRINT running

• DATA step running

• Posibile cauze:

• Ghilimele gresite

• Lipsa instructiunii RUN

• Un pas fara final;

• Solutie

• Se ANULEAZA rularea

• Se corecteaza/salveaza/RUN….

• SAS numara ghilimelele – nr. impar;

Raportare/Analize

proc tabulate data=gradinita;

class sex;

var Greutate_inceput_an Greutate_sfarsit_an

Crestere;

table sex, mean*(Greutate_inceput_an

Greutate_sfarsit_an Crestere);

title 'Media Greutatii - inceput/sfarsit an';

title2 'si a cresterii in greutate';

run;

Media Greutatii - inceput/sfarsit an

si a cresterii in greutate PROC step

Raportare/Analize

Media Greutatii - inceput/sfarsit an

si a cresterii in greutate

Mean

Greutate_inceput_

an

Greutate_sfarsit_a

n

crestere

Sex

12.07 13.00 0.93 F

M 14.75 16.35 1.60