Documente Academic
Documente Profesional
Documente Cultură
Elemente introductive
Capitolul 1
SAS/Graph - include o multitudine de proceduri de procesare grafic i care asigur posibilitatea construirii unor obiecte grafice de nalt calitate; SAS/Stat - este modulul ce include o mare varietate de proceduri statistice complexe, diferite de cele care aparin modulului SAS/Base; SAS/ETS - include procedurile software destinate soluionrii problemelor din domeniul Econometriei i Analizei Serilor de Timp; SAS/FSP - include proceduri specifice controlului i prelucrrii fiierelor SAS, cu ajutorul crora pot fi efectuate o multitudine de operaii, cum ar fi: cutarea, modificarea sau tergere de nregistrri din fiierele de date SAS; SAS/OR - implementeaz proceduri software dedicate rezolvrii problemelor din domeniul Cercetrilor Operaionale (programare liniar, programare neliniar etc.); SAS/IM L - include proceduri software destinate manipulrii matricilor i calculului matricial; SAS/QC - include proceduri software destinate rezolvrii problemelor din domeniul Controlului Calitii.
Sistemul SAS poate fi instalat pe o mare varietate de calculatoare, ncepnd de la calculatoarele personale i terminnd cu cele mai performante calculatoare mainframe. Iniial, sistemul SAS a fost dezvoltat prin utilizarea limbajului PL/1 i a limbajului de asamblare specific sistemelor IBM. Ulterior, sistemul SAS a fost rescris n limbajul C, odat cu aceast rescriere urmrindu-se i obinerea unei independene att fa de sistemele hardware, ct i fa de sistemele de operare. n aceste fel, sistemul SAS poate fi instalat, n prezent, pe o mare varietate de platforme software, cum ar fi W indows XP, W indows Vista, Unix etc. Sistemul SAS este n continu dezvoltare i perfecionare. n prezent, sistemul SAS a ajuns la versiunea 9.2.
Elemente introductive
Figura 1.1: Fereastra principal Display Manager Fereastra principal a mediului SAS include alte patru ferestre importante, respectiv: fereastra Information, fereastra Program editor, fereastra Output i fereastra Log, care pot fi activate i vizualizate, fie prin efectuarea unui simplu click pe suprafaa acestora, fie prin apsarea unuia dintre butoanele asociate cu ferestrele i aflate la baza ferestrei principale, respectiv butoanele Results, Explorer, Editor, Log i Output. Cele patru ferestre componente ale ferestre principale, respectiv Information, Program editor, Output i Log pot fi activate i vizualizate i prin intermediul comenzii W indow, prin selectarea ferestrei corespunztoare, respectiv: W indow {1. Editor | 2. Log | 3. Explorer | 4. Results | 5. Output} n partea superioar a ferestrei Display Manager, se gsete Bara de Meniu Principal, care conine o configuraie variabil de butoane, configuraie care depinde de tipul ferestrei care este activat n cadrul ferestrei Display Manager. Astfel, imediat dup lansare i n cazul n care este activat una dintre ferestrele Information, Log sau Output, Bara Meniu Principal include butoanele: File, Edit, View, Tools, Solutions, W indow i Help, iar n cazul n care este activat fereastra Program editor, Bara Meniu Principal include butoanele: File, Edit, View, Tools, Run, Solutions, W indow i Help. Imediat sub Bara Meniu Principal, se gsete Bara Tasks, care conine o serie de iconie, cu ajutorul crora pot fi executate o serie de activiti, cum ar fi: deschidere i salvare fiiere, execuie program, tiprire, stergere etc. De regul, programul SAS ce urmeaz a fi executat, este introdus direct, de la tastatur, sub form de text, prin intermediul ferestrei Program Editor. Introducerea programului SAS n fereastra Program Editor, poate fi fcut i indirect, prin intermediul unui fiier cu extensia .sas, fiier care conine programul SAS i care este poate fi construit cu ajutorul unui editor de texte obinuit. Pentru introducerea programului n aceast manier, poate fi utilizat comanda File din Meniul Principal, urmat de comanda Open Program i de aciunea de localizare a fiierului care conine programul SAS, respectiv: File Open Localizare fiier program SAS
Capitolul 1
Figura 1.2: Incrcarea programului SAS dintr-un fiier extern O alt modalitate de ncrcare a programului SAS, este specific tot situaiei n care programul rezid pe hard-disk, ntr-un fiier cu extensia .sas. n aceast situaie, cu un dublu click pe numele fiierului, este declanat att execuia programului sas.exe, ct i ncrcarea programului n fereastra Program Editor. Datele de intrare pentru un program SAS, care fac obiectul prelucrrii n cadrul programului, pot fi fcute accesibile pentru program, prin mai multe metode: prin procedeul inline, care const din introducerea datelor odat cu programul SAS, liniile de date fiind situate imediat dup blocul data; prin importarea datelor din diferite fiiere de date, cum ar fi fiierele de tip .txt, .xls, .sta etc.; prin ncrcarea unui fiier de date de tip .sas, creat ntr-o sesiune SAS anterioar. Dup ce programul SAS a fost ncrcat n fereastra Program Editor, el poate fi executat folosind comanda Run din meniul principal, urmat de comanda Submit, care nu este activ dect n situaia n care n fereastra Program Editor, este ncrcat un program SAS. Run Submit Execuia programului SAS aflat n fereastra Program Editor, poate fi declanat i prin efectuarea unui click pe iconia Submit, respectiv: , aflat pe Bara Tasks. ncheierea unei sesiuni SAS poate fi declanat prin efectuarea unui click pe iconia de nchidere a ferestrei Display Manager, aflat n colul stnga-sus al acestei ferestre, respectiv pe iconia: . De asemenea, pentru ncheierea unei sesiuni SAS, se poate utiliza i comanda File din meniul principal, urmat de comanda Exit, respectiv utilizarea secvenei: File Exit .
Dup ncheierea unei sesiuni SAS, sunt pierdute att programele i fiierele create n cadrul sesiunii, ct i coninuturile tuturor ferestrelor, exceptnd situaiile n care acestea sunt
Elemente introductive
salvate n cadrul sesiunii SAS.
Fereastra Program Editor, aflat n partea stnga-jos a ferestrei principale, reprezint spaiul n care este introdus programul SAS, care urmeaz a fi executat. Introducerea programului n aceast fereastr, poate fi fcut direct de la tastatur sau utiliznd facilitatea Copy-Paste, prin care programul SAS poate fi preluat dintr-o sursa extern, de exemplu un fiier de tip .txt, i copiat n aceast fereastr. Fereastra Log, capt coninut n urma execuiei unui program SAS i include listingul programului, informaii despre execuia instruciunilor programului, precum i informaii despre erorile semnalate n urma acestei execuii. Pe baza informaiilor din aceast fereastr, utilizatorul mpoate stabili dac programul este corect sau dac are erori, n acest din urm caz fiind necesar efectuarea de corecii ale programului. De exemplu, dup execuia programului din figura urmtoare:
data fisier; input nume $ prenume $ nota; cards; Ionescu Ion 7 Vasilescu Vasile 8 Georgescu George 9 ; run; proc print data=fis; title 'Lista Date Intrare'; run;
Figura 1.5: Exemplu de program eronat configuraia ferestrelor Program Editor i Log sunt cele din figura urmtoare.
Capitolul 1
Figura 1.6: Configuraia ferestrelor Program Editor i Log Dup cum se poate observa, n cadrul ferestrei Log este semnalat faptul c programul are o eroare, eroare reprezentat de faptul c n procedura print este specificat numele unui fiier care nu exist, respectiv numele fisier. Avnd n vedere funcionalitatea ferestrei Log, este necesar ca, dup fiecare rulare a unui program, utilizatorul s exploreze coninutul acestei ferestre, n scopul detectrii eventualelor erori care apar n program. Fereastra output conine rezultatele execuiei unor proceduri SAS, atunci cnd n aceste proceduri este precizat, implicit sau explicit, afiarea de rezultate. Dup executarea programului introdus n fereastra Program Editor, dac acesta este fr erori, rezultatele programului vor fi afiate n fereastra Output. De exemplu, n urma corectrii programului din figura 1.2, adic n urma introducerii liniei corectate:
proc print data=fisier;
Elemente introductive
Figura 1.7: Configuraia ferestei output n afara operaiei de vizualizare, coninutul ferestrelor Program Editor, Log i Output, poate face obiectul unor operaii specifice de prelucrare, cum ar fi operaiile de salvare, tergere, copiere, tiprire etc. Odat ce una dintre cele trei ferestre menionate anterior este activat, coninutul acestei ferestre poate fi salvat ntr-un fiier de pe hard-disk, cu ajutorul comenzii File din meniul principal, urmat de comanda Save As, adic prin intermediul unei secvene de forma: File Save As Selectare adres fiier salvare n funcie de natura ferestrei salvate, fiierul va avea o extensie corespunztoare, respectiv o extensie de tip .sas, .log, .lst, .txt, .rtf, sau .dat. De exemplu, coninutul fereastrei Program Editor este salvat ntr-un fiier cu extensia implicit .sas, coninutul ferestrei Log este salvat ntr-un fiier cu extensia implicit .log, iar coninutul ferestrei Output este salvat ntr-un fiier cu extensia implicit .lst. Coninutul celor trei ferestre poate fi salvat, la cerere, i n fiiere co oricare dintre extensiile .txt, .rtf, sau .dat. n mod similar, coninutul ferestrelor Program Editor, Log i Output, poate fi ters, printr-o secven de forma: Edit Clear All poate fi copiat n clipboard, printr-o secven de forma: Edit Copy sau poate fi tiprit la imprimant, printr-o secven de forma: File Print . , ,
Capitolul 1
Elemente introductive
Figura 1.8: Structura general a unui program SAS Blocurile de tip data ale unui program SAS, au ca scop construirea bazei informaionale a programului SAS, respectiv construirea fiierelor SAS. Informaiile din fiierele SAS
10
Capitolul 1
construite n cadrul blocurilor de tip data, sunt utilizate n continuare n contextul prelucrrilor i analizelor efectuate n cadrul blocurilor de tip proc. Blocurile de tip data, sunt utilizate n contextul SAS pentru introducerea datelor, pentru manipularea i transformarea datelor de intrare, pentru recodificarea variabilelor i construirea de noi variabile, pentru extragerea de submulimi de variabile i de observaii din fiiere, precum i pentru alte scopuri specifice prelucrrilor n SAS. Execuia blocurilor de tip data are loc intruciune cu instruciune i n mod repetat, de fiecare dat cnd este citit o linie de date observaii. Blocurile de tip proc ale unui program SAS, reprezint proceduri software care sunt dedicate rezolvrii unor probleme specifice utilizrii SAS, cum ar fi: tiprirea unor fiiere, efectuarea de analize statistice, sortarea coninutului unor fiiere, construirea de grafice etc. Execuia blocurilor de tip proc poate determina construirea unor noi fiiere, care conin rezultate ale respectivei execuii. Forma i structura informaiilor generate prin execuia unui bloc de tip proc, pot fi constrolate prin intermediul unor clauze de tip options. n principiu, orice bloc de tip proc trebuie s fie precedat de cel puin un bloc de tip data, prin intermediul cruia este construit fiirul sau fiierele necesare execuiei respectivei proceduri. Exist ns i situaii speciale, n care un bloc proc, nu trebuie precedat n mod obligatoriu de un bloc de tip data. Sistemul SAS include mulime extrem de numeroas i variat de proceduri software, construite cu scopul rezolvrii unei mari diversiti de probleme din domeniul statisticii, econometriei, analizei datelor etc. De regul, procedurile SAS opereaz pe date din fiierele construite prin intermediul blocurilor data, pentru fiecare procedur putndu-se specifica, n mod explicit , fiirul pe al crui coninut opereaz respectiva procedur. n cazul unei proceduri pentru care nu este specificat n mod explicit fiierul pe care aceasta va opera, se asum ca fiierul vizat de respectiva procedur este fiierul definit n cadrul celui mai recent bloc data, situat imediat naintea acestei proceduri. Comanda run;, cu care trebuie s se ncheie, de regul orice bloc data i orice bloc proc, declaneaz execuia instruciunilor care alctuiesc respectivele blocuri. n situaia n care un bloc, data sau proc, nu se termin cu comanda run; blocul respectiv nu este executat. n cazul execuiei unui bloc care nu se termin cu comanda run; are loc doar o verifiecare sintactic a instruciunilor care aparin blocului respectiv, iar eventualele erori care sunt depistate cu aceast ocazie, sunt semnalate prin intermediul ferestrei Log. Din acest motiv, se poate considera ca o bun practic pentru dezvoltarea de programe SAS, este aceea n care, ntr-o faz iniial, toate blocurile programului sunt scrise fr a fi finalizate cu comanda run;, n vederea detectrii eventualelor erori, urmnd ca, dup corectarea erorilor semnalate, programul s fie executat cu toate comenzile run; incluse. Aceast strategie este recomandat, mai ales, n cazul programelor complexe, care necesit un timp de execuie foarte mare. Datele de intrare pentru un program SAS sunt reprezentate de mulimi de valori numerice sau nenumerice, referitoare la caracteristicile unor obiecte din lumea real, valori rezultate din observarea i nregistrarea acestor obiecte. Datele de intrare ale unui program SAS reprezint materia prim necesar execuiei procedurilor SAS.
Elemente introductive
11
inserarea de comentarii, n vederea facilitrii nelegerii operaiilor pe care le execut acest program, precum i n scopul uurrii eventualelor activiti de modificare, de dezvoltare sau de depanare. n programele SAS, comentariile ncep cu caracterele /*, se termin cu caracterele */ i pot s apar n orice loc din programul SAS. n cadrul figurii urmtoare, este ilustrat modalitatea de comentare a unui program SAS.
libname nume_lib 'c:\Date_SAS\' ; /*stabileste locatie salvare fisier */ run; d a t a nume_lib.nume_fisier; /* inceput bloc d a t a ; creare fisier permanent*/ infile 'c:\SAS_Programs\ex1.txt' firstobs=2; /* importa datele din fisier extern*/ input var1 var2 var3; run; run; /* atribuie nume variabilelor */ /* final bloc d a t a */ /* final procedura print */
observaii extrase din mulimea de valori ale unei variabile aleatoare X, repartizat dup legea normal, de medie i varian necunoscute, pentru care densitatea de probabilitate are forma: , unde i reprezint cei doi parametri ai distribuiei normale, respectiv media i variana. Funcia de verosimilitate asociat cu eantionul de observaii anterior, este definit sub forma urmtoare:
Problema care se pune n acest context, este aceea a determinrii valorilor parametrilor i , care maximizeaz valoarea funciei de verosimilitate. Deoarece funcia de verosimilitate are aceleai puncte de maxim ca i logaritmul natural al acesteia, problema poate fi formulat sub forma urmtoare:
Program SAS, care rezolv problema enunat anterior, este prezentat n cadrul figurii urmtoare:
12
data val_x; input x @@; datalines; 5.36 6.45 4.68 7.09 5.66 8.28 4.96 4.98 9.15 7.84 4.47 2.25 -0.13 8.78 6.11 3.35 7.00 0.46 3.37 3.11 4.34 -3.74 9.20 6.82 6.31 7.71 3.33 8.27 4.18 5.61 ; run; proc nlp data=val_x vardef=n covariance=h pcov phes; profile mu sigma / alpha=.2 .1 .05 .01; max fct; parms mu=0, sigma=1; bounds sigma > 0.1e-15; fct=-0.5*log(6.28)-log(sigma)-0.5*((x-mu)/sigma)**2; run;
Capitolul 1
Figura 1.10: Programul SAS pentru maximizarea verosimilitii iar rezultatele programului, reprezentnd coninutul ferestrei Output, sunt urmtoarele:
The SAS System 00:06 Friday, April 9, 2009 1 PROC NLP: Nonlinear Maximization Gradient is computed using analytic formulas. Hessian is computed using analytic formulas. The SAS System 00:06 Friday, April 9, 2009 2 PROC NLP: Nonlinear Maximization Optimization Start Parameter Estimates Gradient Lower Objective Bound Estimate Function Constraint 0 155.250000 . 1.000000 1020.292700 1E-16 Value of Objective Function = -552.7068997 Hessian Matrix mu sigma mu -30 -310.5 sigma -310.5 -3120.8781 Determinant = -2783.907 Matrix has 1 Positive Eigenvalue(s) WARNING: Second-order optimality condition violated. The SAS System 00:06 Friday, April 9, 2009 PROC NLP: Nonlinear Maximization Newton-Raphson Ridge Optimization Without Parameter Scaling Parameter Estimates 2 Functions (Observations) 30 Lower Bounds 1 Upper Bounds 0 3
N Parameter 1 mu 2 sigma
Optimization Start Objective Function -552.7068997 1020.2927 Objective Max Abs Ratio between Actual Function Active Objective Function Gradient Actual and Predicted Iter Restarts Calls Constraints Function Change Element Ridge Change 1 0 4 0 -257.96316 294.7 366.6 32.00 1.385 2 0 5 0 -131.11507 126.8 136.5 8.000 1.280 3 0 6 0 -96.34073 34.7743 54.4249 2.000 1.286 4 0 7 0 -81.51384 14.8269 20.8004 0.500 1.276 5 0 8 0 -75.90172 5.6121 7.1849 0.125 1.248 6 0 9 0 -74.37951 1.5222 1.9522 0.0313 1.191 7 0 10 0 -74.18121 0.1983 0.2867 0 1.100 8 0 11 0 -74.17576 0.00545 0.00907 0 1.021 Active Constraints Max Abs Gradient Element 0
Elemente introductive
9 0 12 0 -74.17576 5.68E-6 9.84E-6 0 1.001 Optimization Results Iterations 9 Function Calls Hessian Calls 10 Active Constraints Objective Function -74.17575722 Max Abs Gradient Element Ridge 0 Actual Over Pred Change ABSGCONV convergence criterion satisfied. The SAS System 00:06 Friday, April 9, 2009 4 PROC NLP: Nonlinear Maximization Optimization Results Parameter Estimates Approx Pr > |t| 6.044127E-11 1.2145819E-8 Gradient Objective Function 0.000000492 0.000009840
13
13 0 9.8403332E-6 1.0007221412
Approx N Parameter Estimate Std Err 1 mu 5.175000 0.523741 2 sigma 2.868645 0.370340 Value of Objective Function = -74.17575722 Hessian Matrix mu sigma mu -3.645588556 -3.427037E-7 sigma -3.427037E-7 -7.291187403 Determinant = 26.580669353 Matrix has Only Negative Eigenvalues Covariance Matrix 2: H = (NOBS/d) inv(G) mu sigma mu 0.2743041308 -1.289297E-8 sigma -1.289297E-8 0.1371518718 Factor sigm = 1 Determinant = 0.037621325 Matrix has 2 Positive Eigenvalue(s) Approximate Correlation Matrix of Parameter Estimates mu sigma mu 1 -6.647155E-8 sigma -6.647155E-8 1 Determinant = 1 Matrix has 2 Positive Eigenvalue(s) The SAS System 00:06 Friday, April 9, 2009 PROC NLP: Nonlinear Maximization Wald and PL Confidence Limits N 1 1 1 1 2 2 2 2 Parameter mu mu mu mu sigma sigma sigma sigma Estimate 5.175000 . . . 2.868645 . . . Alpha 0.200000 0.100000 0.050000 0.010000 0.200000 0.100000 0.050000 0.010000
Profile Likelihood Confidence Limits 4.494933 5.855067 4.294196 6.055804 4.115261 6.234739 3.748523 6.601477 2.452996 3.417097 2.353678 3.604933 2.272688 3.781450 2.127181 4.168841
Wald and PL Confidence Limits Wald Confidence Limits 4.503799 5.846200 4.313523 6.036476 4.148487 6.201512 3.825934 6.524066 2.394035 3.343255 2.259490 3.477800 2.142791 3.594498 1.914712 3.822578