Sunteți pe pagina 1din 40

Instrumente Software pt Analiza

Datelor
Lect. Univ. dr. Anda BELCIU
anda.belciu@gmail.com
Instrumente Software pt Analiza
Datelor
Curs 1: Introducere n SAS
Curs 2: Analiza datelor
Pregtirea datelor pt analize

Transpunerea i agregarea datelor

Curs 3: Analize statistice (Conf. Daniel Pele)


Seminar 1: Analiza datelor -> vineri ora 17.00 sau luni ora
18.00
Seminar 2: Analize statistice (Conf. Daniel Pele) -> marti sau
miercuri ora 18.00
Seminar 3: Evaluare proiecte -> joi ora 18.00 sau vineri ora
17.00
Examen: luni, 22 mai 2017, ora 19.30, sala 2101
Evaluare

60% - examen gril


30% - proiect
10% - prezente/activitate curs + seminar
ISAD - Curs 1
Introducere n SAS
CUPRINS Curs 1

1. Prelucrri analitice
2. Sistemul integrat SAS
3. Programe SAS
Prelucrri analitice/1

Definirea conceptului

Prelucrrile analitice (engl. Analytics) reprezint punerea n


aplicare a tehnologiei informaiei, a cercetrilor operaionale i
a statisticii pentru rezolvarea problemelor din diverse domenii.
Pot constitui intrri pentru deciziile umane sau pot determina
decizii complet automatizate.

Sunt considerate o parte a ceea ce este cunoscut sub denumirea


de Inteligena afacerii.
Prelucrri analitice/2

Optimizri Cum este cel mai bine?

Modelare predictiv Ce se va ntmpla? Prelucrri


analitice
Prognoze Dac tendina continu?
Avantaje competitive

Analize statistice De ce se ntmpl?

Alerte Ce se poate face?

Interogri/descompuneri Unde este problema?


Accesare i
Rapoarte ah-hoc Ct, ct de des, unde? raportare

Rapoarte standard Ce i cnd s-a ntmplat?

Niveluri de prelucrare a datelor


Prelucrri analitice/3

Beneficii ale aplicarii prelucrarilor analitice -1

Ajuta la gestionarea companiei in vremuri neprielnice, prin


oferirea managerilor instrumente pentru intelegerea dinamicii
afacerii, incluzand modalitatea in care schimbarile economice si
de piata influenteaza performanta afacerii.
Pun in valoare investitiile anterioare in IT si in dobandirea de
informatii pentru a obtine executii mai rapide si mai multa
valoare adaugata afacerii.
Asigura o baza pentru luarea deciziilor de-a lungul timpului, prin
folosirea datelor clare, logice si explicite.
Prelucrri analitice/4

Beneficii ale aplicarii prelucrarilor analitice -2

Reduc costurile si imbunatatesc eficienta. Tehnicile de


optimizare pot minimiza cererea de active, iar modelele
predictive pot anticipa schimbarile pe piata si permit
companiilor sa adopte rapid reducerea preturilor si eliminarea
risipelor.
Asigura managementul riscului prin folosirea unor metrici
precise si modele pentru managmentul riscului.
Anticipeaza schimbarile in conditiile pietei prin detectarea
sabloanelor in datele extrem de multe referitoare la clienti si
piata.
Prelucrri analitice/5

Categorii de software pentru prelucrri analitice


Instrumente bazate pe foi de calcul

Instrumente OLAP

Software pentru analize statistice

SAS, SPSS, SYSTAT, STATISTICA, MINITAB, JMP, R


Software pentru optimizri
Instrumente de data mining
Instrumente de text mining
Sistemul SAS/1

Sistemul integrat SAS

Dezvoltat la nceputul anilor 1970 la North Carolina State


University
Intenia iniial a fost dezvoltarea unui sistem pentru
managementul i analiza experimentelor n domeniul agricol
La momentul actual este cel mai utilizat software statistic
Iniial a fost acronimul pentru Statistical Analysis System,
acum nu mai are acest sens
Conine o mare varietate de module care acoper aria
prelucrrii analitice a datelor i nu numai
Sistemul SAS/2

Funcii de baz ale SAS


Introducerea, regsirea i managementul datelor
Realizarea de rapoarte i grafice

Analize statistice i matematice

Previziuni i suport decizional

Cercetri operaionale i managementul proiectelor

Dezvoltarea de aplicaii

Soluii SAS dedicate


Managementul riscurilor

Detectarea fraudelor

Managementul clienilor
Sistemul SAS/3

Exemple de module SAS

Base SAS managementul datelor i proceduri de baz


SAS/STAT analize statistice
SAS/GRAPH grafice i hri
SAS/OR cercetri operaionale
SAS/ETS econometrie i analiza seriilor de timp
SAS/IML limbaj specializat pentru lucrul cu matrice
SAS/QC controlul calitii
Sistemul SAS/4

SAS Studio:
- Disponibil n interfa web
- Conine nucleul BASE SAS
- Implicit pt conturile SAS On Demand for Academics
https://odamid.oda.sas.com
Programe SAS
15

Un program SAS const dintr-o secven de pai trimis ctre execuie


motorului SAS.

Seciunile de date (DATA steps) sunt, de


obicei, folosite pentru a crea tabele SAS.
Fiier
Text
Seciune de Seciune de
date Tabel proceduri
Raport
SAS
nou
Tabele
Seciunile de proceduri (PROC steps) sunt, de
SAS
obicei, folosite pentru a efectua prelucrri i
existente
interogri.
Tipuri de fiiere n SAS

ASCII
Externe Fiiere generate de alte aplicaii

Fiiere n SAS
Interne Temporare nume pe un nivel
Permanente - nume pe nou niveluri (libref.nume)

16
Reguli de sintax
Instructiunile SAS au urmtoarele caracteristici:
ncep, de obicei, cu un cuvnt cheie

ntotdeuna se termin cu punct i virgul

libname lib_data '/home/username';


data lib_data.new_orders;
infile '/home/username/orders.txt';
input Order_No 1-5 Prod_ID $ 7-10
Quantity 13-15 SellPrice 17-22
Income 25-32;
run;
proc print data=lib_data.new_orders;
title 'The orders';
run;
proc means data=lib_data.new_orders;
title 'Orders Analysis';
var SellPrice;
17
run;
Reguli de sintax
18
Unul sau mai multe caractere de spaiere pot fi folosite pentru a
separa cuvintele.
Instructiunile pot ncepe i se pot termina n orice coloan.
O singur instructiune se poate scrie pe mai multe rnduri.
Mai multe instructiuni pot fi scrise pe acceai linie.
libname ad_data 'C:\exemple';
data ad_data.orders;
infile 'C:\exemple\orders.txt';
input Order_No 1-5 Prod_ID $ 2-10
Quantity 13-15 SellPrice 17-22 Income
25-32;
run;
proc print data=ad_data.orders;
run;
proc means
data=ad_data.orders;
title 'Orders Analysis; var SellPrice; run;
Comentarii SAS
Comentarii bloc: /*comentariu*/
Comentarii care pot fi incluse in cod: * comentariu;
cod * comentariu; cod

/* Creaza tabela SAS ad_data.orders */


libname ad_data 'C:\exemple';
data ad_data.orders;
infile 'C:\exemple\orders.txt';
input Order_No 1-5 Prod_ID $ 2-10
Quantity 13-15 SellPrice 17-22 Income 25-32;
run;
/* Realizeaza un raport lista
pentru ad_data.orders */
proc print data=ad_data.orders;
run;

19
Limite ale unei seciuni
20

SAS compileaz i execut fiecare seciune n mod


independent bazandu-se pe ceea ce poart denumirea de
limite ale unei seciuni.
Limitele unei seciuni:
Limite explicite: RUN i QUIT au rolul de a executa
seciunea anterioar;
Limite implicite: DATA i PROC indic nceputul unei
seciuni.
O seciune de date sau de proceduri se termin atunci
cnd se ntlnete o alt seciune, ceea ce nseamn c
prezena declaraiilor RUN i QUIT nu este obligatorie.
Fiiere temporare
Trebuie furnizate valorile datelor.
Nu se salveaz ca un set de date ntr-o locaie specificat.

data ord;
input age sex $ prod_id quantity order_date mmddyy8.;
format order_date yymmdds10.;
cards;
25 f 02344 2 05/27/10
37 m 08798 4 04/29/10
45 f 09876 1 05/27/10
19 m 07897 3 05/30/10
proc sort data=ord; by descending order_date;
proc print data=ord;
title 'Unfulfilled orders';

21
Biblioteci SAS
22

O bibliotec SAS este o colecie care include unul sau mai multe fiiere
SAS care sunt recunoscute de SAS i care sunt referite i stocate n
mod unitar.
Sintaxa este:
LIBNAME libref Biblioteca-SAS;
LIBNAME definete o bibliotec
libref este o referin la o bibliotec, un alias pentru o locaie fizic
unde se gsesc fiierele incluse n bibliotec
Bilioteca-SAS este locaia fizic propriu-zis
LIBNAME exemple C:\curs; (pt Enterprise Guide)
LIBNAME exemple /home/username; (pt SAS Studio)
Libname nu este parte a unei seciuni de date sau de proceduri i nu are
nevoie de RUN pentru a rula.
Se pot defini oricte declaraii LIBNAME.
Biblioteca Work este temporar i se iniializeaz la deschiderea sesiunii
de lucru SAS.
Crearea seturilor de date SAS din
23
seturi de date existente -1
Sintaxa general:

DATA set-de-date-SAS-de-iesire;
SET set-de-date-SAS-de-intrare;
WHERE expresie-conditionala;
DROP list-variabile;
KEEP list-variabile;
LABEL var1=eticheta1 var2=eticheta2;
FORMAT variabila(le) format;
RUN;
Crearea seturilor de date SAS din
24
seturi de date existente -2
Implicit toate ntregistrrile dintr-un set de date de intrare
sunt scrise n setul de date rezultat.
Declaraia WHERE are rolul de a extrage observaiile dintr-
un set de date. O seciune de date poate include o singur
declaraie WHERE.
Include operatori de comparaie identici cu cei de la
filtrele din SAS Enterprise Guide.
Exemple:
where gen eq M;
where salariu ne .;
where pozitie contain Vanzari;
where nume like T_M%;
where cod is missing;
Crearea seturilor de date SAS din
25
seturi de date existente -3
Extragerea (selectarea) variabilelor din setul rezultat se
realizeaz cu ajutorul declaraiilor DROP i KEEP:
DROP list-variabile; {cu spaiu ntre ele} arat care
sunt variabilele care se exclud din setul rezultat
KEEP list-variabile; {cu spaiu ntre ele} arat care
sunt variabilele care se pstreaz n setul rezultat
Declaraia LABEL are rolul de a aduga o etichet la zona
de descriere a unui set de date. Eticheta schimb modul n
care apare numele variabilei n diverse proceduri. Spre
exemplu, PROC PRINT poate afia numele etichetei n loc
de numele variabilei:
PROC PRINT DATA = set-de-date-SAS LABEL;
FORMAT este un format de afiare care schimb modul de
afiare a variabilelor: <$>format <w>.<d>
Citirea datelor din fiiere flat
Procesul de citire a fiierelor de date flat
26
Delimitatorul spaiu
27

Considernd c avem un fiier numit produse.txt care conine numele, preul i


categoria a cinci produse, fiecare avnd valoarea separat printr-un spaiu,
acesta ar avea urmtoarea form:
hartie 2 birotica
creione 10 birotica
apa 6 alimente
ceai 8 alimente
tricou 100 haine
Presupunnd c fiierul este stocat pe server, programul SAS care citete date din
acest fiier este:
data produse;
infile '/home/username/produse.txt';
input Nume $ Pret Categorie $;
run;
Delimitatorul virgula
28

Pentru fiierul de date:


hartie,2,birotica
creione,10,birotica
apa,6,alimente
ceai,8,alimente
tricou,100,haine
se vor folosi urmtoarele declaraii pentru a obine setul de date
produse:
data produse;
infile '/home/username/produse2.txt' dsd;
input Nume $ Pret Categorie $;
run;
Ali delimitatori
29

Pentru orice alt tip de delimitatori, instruciunea infile trebuie


folosit mpreun cu opiunea dlm sau delimiter. Au aceeai
seminificaie, prima fiind abrevierea celeilalte.
Exemplu: infile '/home/username/produse3.txt' delimiter='/'; sau
infile '/home/username/produse4.txt' dlm='/';.
Fiiere cu date n coloane cu lime fix
30

Cel de-al doilea tip de fiiere externe pe care SAS


poate s le citeasc sunt cele care conin date n
coloane cu lime fix. Pentru acestea exist dou
modaliti de citire:
coloane de intrare (column input)

intrri formatate (formatted input)

Avantajul folosirii datelor n coloane cu lime fix


este acela c datele pot fi citite n orice ordine este
necesar, iar valorile lips pot fi specificate prin tot
attea spaii libere ct are i limea coloanei.
Metoda 1
31

Considerm din nou fiierul produse.txt, care conine


urmtoarele valori:
hartie 2 birotica
creioane10 birotica
apa 6 alimente
ceai 8 alimente
tricou 100haine
Aa cum se poate observa, numele are 8 caractere,
preul 3, iar categoria 8.
Fiiere cu date n coloane cu lime fix
32

Metoda 1: Coloane de intrare folosete declaraia


input specificnd pentru fiecare variabil numele
su, semnul $ pentru variabilele caracter, precum i
poziia de nceput i de sfrit a fiecrei variabile n
linia de date.
data produse;
infile '/home/username/produse4.txt';
input Nume $ 1-8
Pret 9-11
Categorie $ 12-19;
run;
Fiiere cu date n coloane cu lime fix
33

Metoda 2: Intrri formatate poate citi diferite tipuri de


formate, cum ar fi moned (numere avnd semnul dolar
sau euro), numere cu zecimale, date n diferite formate.
Declaraia input are umtoarele opiuni: semnul @
urmat de poziia de nceput a variabilei n linia de
date, numele variabilei, formatul variabilei, dac
acesta este necesar, precum i limea coloanei
asociat variabilei.

input @pozitie nume_varialil format lime.


Exemplu metoda 2
34

data produse;
/*infile '/home/username/produse5.txt'; */
input @1 Nume $8.
@9 Pret dollar4.
@13 Categorie $8.;
format Pret dollar6.0;
datalines;
hartie $2 birotica
creioane$10 birotica
apa $6 alimente
ceai $8 alimente
tricou $100haine
run;
Procesare condiional n programele
SAS
35

Procesarea condiional reprezint capacitatea


programelor SAS de a lua decizii n funcie de
valorile datelor.
Principala construcie pentru procesarea
condiional este declaraia IF, mpreun cu
versiunea ei ELSE IF.
Forma general a acestei instructiuni este:

IF expresie THEN instructiune;


ELSE instructiune;
Operatorii logici de comparaie din SAS
36

Operator de comparatie Sintaxa


SAS
Equal to EQ
Not equal to NE
Less than LT
Grater than GT
Less than or equal to LE
Grater than or equal to GE
Equal to one in a list IN
Exemplu
37

libname exemple '/home/username';


data exemple.produse4bis;
infile '/home/username/produse4bis.txt';
input @1 Nume $7.
@8 Pret dollar4.
@12 Categorie $8.;
if missing(Pret) or Pret lt 5 then
Grup=1;
else if Pret le 10 then Grup=2;
else Grup=3;
run;
Subseturi de date
38

Intr-o sectiune de date, observatiile pot fi regrupate


intr-un subset de date SAS folosind clauzele WHERE,
DELETE sau instruciunea IF. Exemplu de crearea a unui
subset de date pentru categoria de produse
alimente:
data mancare;
set exemple.produse4bis;
where Categorie eq 'alimente';
run;
Daca am dori un subset de date pt grupul 1, conditia ar fi:
where Grup eq 1;
Subseturi de date
39

Clauza DELETE este folosita pentru a controla care observatii sa nu fie incluse in subsetul de
date. Sintaxa este: IF expresie THEN DELETE;
Un subset de date care sa contina toate produsele mai putin alimentele:
data non_mancare;
set exemple.produse;
if Categorie eq 'alimente' then delete;
run;

Acelasi lucru poate fi obtinut folosind clauza WHERE si conditia not equal:
data non_mancare;
set exemple.produse;
where Categorie ne 'alimente';
run;

Acelasi lucru poate fi obtinut folosind instructiunea IF fara clauza THEN:


data non_mancare;
set exemple.produse;
if Categorie ne 'alimente';
run;
libname lib_data '/home/username';

data work.youngadult;

set lib_data.customer_dim;

where Customer_gender eq 'F' and Customer_Age between 18 and 36 and Customer_Group contains "Gold";

keep Customer_Name Customer_Age Customer_Birthdate

Customer_Gender Customer_Group;

label Customer_gender ='Gender' Customer_BirthDate = 'Date of Birth' Customer_Group = 'Member Level';

format customer_BirthDate WORDDATE.

run;

proc contents data=work.youngadult;

run;

proc print data=work.youngadult label;

run;

data work.Sports;

set lib_data.product_dim;

where Supplier_Country IN ('GB' 'ES' 'NL') and Product_Category LIKE ('%Sports');

Drop Product_ID Product_Line Product_Group Supplier_Name Supplier_ID;

run;

proc print data=work.Sports;

run;

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