Sunteți pe pagina 1din 9

Seminar 2 SAS

1. Analize statistice
Se consideră o agenţie de turism care organizează tururi pentru vizitarea cetăţilor medievale
romaneşti. Rezervări pentru acest tip de ofertă pot fi făcute în filialele sale din Bucureşti şi Sibiu.
Avem la dispoziţie, pentru fiecare luna a anului precedent, date privind cheltuielile cu publicitatea
efectuate de fiecare filială pentru promovarea ofertei (exprimate în moneda Euro), precum şi
numărul de rezervări pentru care s-a depus un avans.

Figura 1. Extras din setul de date

Problema 1: Pentru fiecare filială, să se determine principalii indicatori statistici care caracterizează
cheltuielile cu publicitatea şi numărul de rezervări, prin calcularea: mediei, valorilor minime şi
maxime, amplitudinii şi sumei.

Paşi de urmat:
1. Se crează un proiect nou.
2. Se adaugă la proiect tabela Turism. sas7bdat din directorul cu datele de seminar.
3. Se deschide prelucrarea Describe  SummaryStatistics…
4. Se vor selecta ca variabile de analiză variabilele PubEuro şi Rezervări, iar ca variabillă de
clasificare oraşul.
5. În tab-ul Statistics  Basics bifăm indicatorii statistici pe care dorim să-i calculăm. În lista
Maximum decimal setăm numărul de zecimale la două.
6. Salvaţi rezultatul ca un raport în format HTML.
Problema 2: Să se calculeze, printr-un indicator numeric, dacă cheltuielile de publicitate au avut
influenţă asupra numărului de rezervări.

Paşi de urmat:
1. Având tabela Turism deschisă, selectăm Analize  Multivariate  Correlations…
2. Se vor aloca următoarele roluri: Analysis variables – PubEuro şi Correlate with – Rezervări.
3. Analizaţi rezultatele obţinute.
4. Salvaţi rezultatul ca un raport în format HTML.
Problema 3: Să se evidenţieze grafic forma legăturii dintre cheltuielile de publicitate şi numărul de
rezervări.

Paşi de urmat:
1. Având tabela Turism deschisă, selectăm Graph  Line Plot…  şi selectăm opţiunea Scatter
Plot with Regression Line
2. Se vor aloca următoarele roluri: Horizontal – PubEuro şi Vertical – Rezervări.
3. Analizaţi rezultatele obţinute şi stabiliţi forma legăturii dintre variabile.
4. Salvaţi rezultatul ca un raport în format HTML.
Problema 4: Să se determine ecuaţia legăturii dintre cele două variabile analizate în problemele
precedente.

Paşi de urmat:
1. Având tabela Turism deschisă, selectăm Analyze  Regression  Linear Regression…
2. Alocaţi corect rolurile prelucării.
3. Analizaţi rezultatele obţinute şi identificaţi coeficienţii ecuaţiei de regresie listaţi în coloana
Parameter Estimate.
Problema 5: Datele conțin numărul de curse dintre doua localităţi şi sunt împărţite după
momentul zilei in care cursa trebuia sa plece si arata daca a existat o întârziere mai mare de
15 minute. Obiectivul este sa se determine daca este o legătura între momentul zilei şi
punctualitate.
Paşi de urmat:
1. Să se importe fişierul Trenuri.xls
2. Din fluxul de procese, selectăm TasksDescribeTable Analysis
3. Se procedează ca în capturile de ecran:
Rezultatul conține o tabelă de frecvenţe şi este urmată de teste de asociere, incluzând date
pentru testul Fisher. Conform acestui test, în acest exemplul, probabilitatea de a obţine o
valoare chi-pătrat cel puţin egală cu cea din tabel (24,1388) este mai mică de 0,0001.
Exerciţiu: Importaţi fişierul Tratamente.xlsx şi identificaţi legătura dintre aplicarea unor
tratamente şi modificarea activităţii inimii. Fişierul conţine numărul de persoane care au fost
sau nu supuse unor tratamente şi care au sau nu pulsul modificat. Obiectivul este să se
determine daca există o legătura între aplicarea tratamentelor şi activitatea inimii.
Modificaţi datele importate astfel încât numărul de persoane fără tratamente cu pulsul
crescut scade de la 30 la 29, iar numărul de persoane fără tratamente cu pulsul normal
creşte de la 25 la 26. Reluaţi analiza şi interpretaţi rezultatele.

2. Prognoze cu modelul ARIMA


(Autoregresive Integrated Moving Average)
Problemă: Se doreşte realizarea unei prognoze cu ajutorul modelului ARIMA. Datele de
intrare sunt formate din înregistrările din 10 în 10 minute, începând de la 01.01.2014 până la
31.03.2014 (ora 19:50) a puterii produse de un panou solar pentru asigurarea apei calde
menajere. Datele au fost prelucrate, puterea generată fiind raportată la puterea maximă
generată.
În exemplul următor vom realiza prognoza pe termen scurt pentru următoarele 23, respectiv
12 de intervale de timp (cca. 4, respectiv2 ore).
Importăm în SAS datele de intrare (peste 50,000 de înregistrări) stocate în fişierul
time_series_prognoza.xlsx.
În continuare, sunt descrise câteva forme ale modelului ARIMA(p,d,q):
- model autoregresiv ARIMA(p,0,0) , de ordin p
- model cu medie mobilă ARIMA(0,0,q), de ordin q
- model mixt ARIMA (p,0,q), cunoscut şi ca ARMA
- model autoregresiv integrat si medie mobile ARIMA(p,d,q), unde d este ordinul de
diferenţiere.
Pentru a aplica modelul ARIMA (1,0,0) vom selecta Tasks  Time Series Arima Modeling
and Forecasting.
Pentru setarea analizei urmăm paşii:
În tabul Data selectăm Norm pentru Time series variable şi Write time pentru Time ID
variable.
În tabul Estimation  Enable estimation steps bifăm Perform estimation steps. În tabul
Model definition, adăugăm 1 în caseta Factors for AR model. În tabul Forecasting  Enable
forecasting steps, bifăm Perform forecasting steps. În tabul Options, la Time interval
between option selectăm Number of units, la Time units per interval introducem 600, iar la
Number of intervals to forecast introducem 23. În tabul Plots and Results, bifăm Forecasts
şi Save forecasts.
Run
În tabul Result obţinem un raport pe care îl analizăm. În tabul Output Data exportăm
rezultatele într-un fişier Excel pentru a calcula eroarea medie absolută în procente - MAPE
(Mean Absolute Percentage Error). Se vor prelua din fişierul time_series_complet.xls datele
efectiv înregistrate din 31.12.2014 (de la 20:00 la 23:50) şi se vor compara cu datele din
aceeaşi perioadă, prognozate cu modelul ARIMA.
n
Y actual −Y forecast
MAPE= ∑
1
|(
n i=1 Y actual )|×100

Acest indicator statistic arată acurateţea modelului. MAPE (eroarea medie absolută în
procente) calculat pentru 4 ore din 31.12.2014 este 13,32%, iar MAPE pentru 2 ore este
9,58%.
Pentru a aplica modelul ARIMA (1,1,1), pornind de la fişierul importat
time_series_prognoza.xlsx, vom selecta Tasks  Time Series Arima Modeling and
Forecasting.
Pentru setarea analizei urmăm paşii:
Vom selecta din tabul IdentificationDifferencing şi bifăm Difference the responce series,
Differencing lags = 1 (dacă nu este introdus).
În tabul Estimation  Enable estimation steps bifăm Perform estimation steps. În tabul
Model definition, adăugăm 1 în caseta Factors for AR model şi 1 în caseta Factors for MA
model. În tabul Forecasting  Enable forecasting steps, bifăm Perform forecasting steps. În
tabul Options, la Time interval between option selectăm Number of units, la Time units per
interval introducem 600, iar la Number of intervals to forecast introducem 23. În tabul Plots
and Results, bifăm Forecasts şi Save forecasts.
Run
În tabul Results obţinem un raport pe care îl analizăm. În tabul Output Data exportăm
rezultatele într-un fişier Excel pentru a calcula eroarea medie absolută în procente - MAPE
(Mean Absolute Percentage Error). Se vor compara datele efectiv înregistrate din fişierul
time_series_complet.xls cu datele prognozate. MAPE calculat pentru 4 ore din 31.12.2014
este 4,76%, iar MAPE pentru 2 ore este 4,51%.
Exerciţiu: Să se realizeze ARIMA (1,0,1) şi ARIMA (0,1,1) pentru setul de date de mai sus, să
se calculeze MAPE pentru 4, respectiv 2 ore şi să se compare cu rezultatele obţinute cu
ARIMA (1,0,0) şi ARIMA (1,1,1).

3. Personalizarea rezultatelor
Problema 1: Compania ABC doreşte să obțină o listă cu produsele oferite și profitul adus de
acestea. Lista trebuie să aibă următoarele caracteristici:

 Produsele din aceeași categorie trebuie să fie grupate împreună


 Numele categoriei trebuie să apară doar o dată, la începutul unui grup
 Titlul raportului trebuie să fie Profit by category
 Raportul obținut să fie salvat și în format PDF
 Stilul raportului SAS să fie Ocean
Paşi de urmat:
1. Se creeaza o interogare care realizeaza o jonctiune intre tabelele products, profit şi tabela
rezultată în urma importului foii de calcul Suppliers. Se adaugă la interogare câmpurile din
Figura 1.

2. Apăsaţi butonul Computed Columns, New.


3. Selectaţi opţiunea care vă permite să calculaţi o coloană sumarizată
4. Selectați coloana Profit
5. Stabiliți pentru noua coloană denumirea Profit total, formatul de afişare DOLLARw.d cu
lăţimea 8 şi 2 zecimale.
6. Ca rezultat al interogării, creaţi o tabelă SAS, numită Categorii_profit
7. Pornind de la tabela nou creată, se deschide prelucrarea Describe  List Data…
8. Pentru fiecare funizor se vor afişa variabilele: Country, Company Name, Product Name,
Profit.
9. Asignaţi variabile la rolurile prelucrării în funcţie de cerinţele din enunţul problemei: în List
varibles adăugăm Country, Company Name, Product Name, Profit, iar la Group analysis by
adăugăm CategoryName
10. În tabul Properties, selectați opțiunea Edit
11. Alegeți tabul Results, opțiunea Customize result formats, styles and behavior.
12. Pentru opțiunea SAS report, alegeți stilul Ocean din lista de opțiuni
13. Bifați și opțiunea PDF
14. Rulați raportul
Opțional. Editați stilul Ocean, pentru personalizare conform preferințelor

1. Tools>Style Manager
2. Creați o copie a stilului - Add a copy, cu numele Ocean2
3. Editați stilul nou creat, modificând dimensiunea si culoarea fontului folosit în header
4. Tabul Images – adaugati o imagine de fundal.
Pentru aplicarea noului stil, asupra raportului anterior

1. Selectati raportul (în Process Flow) click dreapta Properties Style: Ocean 2
2. Process flow  List Data Modify List Data  Run
Problema 2. Creați un grafic cu bare verticale care să reprezinte profitul total pentru fiecare
categorie de produs.

1. Selectaţi tabela creată la Problema 1, pentru ca aceasta să devină sursa de date activă în proiect.
2. Selectaţi Graph Bar Chart.
3. În tab-ul Bar Chart selectaţi tipul Vertical Colored Bar.
4. În tab-ul Data asignaţi variabile la rolurile prelucrării, astfel: CategoryName va reprezenta o
coloană a graficului (Column to chart), iar valorile sale vor defini coloanele graficului. Profit va fi
asignată rolului Sum of, iar valorile sale vor determina lungimea coloanelor graficului. Pentru a
afişa valoarea variabilei Profit fără zecimale, faceţi click dreapta pe aceasta, selectaţi Properties,
apăsaţi Change şi modificaţi formatul de afişare DOLLARw.d, astfel încât să aibă lăţimea 8 şi 0
zecimale.
5. În tab-ul Titles debifaţi opţiunea Use default text şi redenumiţi graficul Profit by Category.
6. În tab-ul Appearance, selectaţi Advanced şi bifaţi opţiunea Specify one statistical value to show
for bars, iar din lista de valori care se activează alegeţi Sum.
7. Apăsaţi Run.

4. Rapoarte compuse
Problema: Realizați un raport care să cuprinda datele obținute la Problema 1, împreună cu raportul
de la Problema 2. Intitulați acest nou document Raport final. Acesta să aibă titlul Profit pe categorii,
să conțina datele în partea stângă, graficul în dreapta, iar în zona de subsol mesajul „Date
confidențiale”

1. File-> New-> Report


2. Selectati raportul creat la problema 1 și aduce-ți-l prin Drag and Drop pe
randul 2, coloana 1 din fereastra Report layout
3. Selectați graficul creat la problema 2 și aduce-ți-l prin Drag and Drop pe
randul 2, coloana 2 din fereastra Report layout
4. Selectați opțiunea Insert text – pentru a introduce titlul raportului.
Pozitionati și redimensionați titlul astfel încât să ocupe primele 2 celule de pe primul rând în
fereastra Report layout
5. Ok
6. Selectați opțiunea Header&Footer -> tabul footer-> introduceí mesajul
corespunzător.
7. Selectați opțiunea Properties –Label – introduceti numele documentului.

5. Agregarea datelor
Problema 1: Folosiţi prelucrarea Summary Statistics pentru a crea o tabelă agregată care conţine
profitul total generat de produsele vândute, care provin de la funizori din afara USA.

Paşi de urmat:
1. Se creează o interogare care să realizeze o joncţiune denumira Profit între tabelele products,
ordersFinal şi tabela rezultată în urma importului foii de calcul Suppliers a fişierului
SupplyInfo.xls.
2. Calculaţi, folosind editorul avansat de expresii, o nouă coloană numită Profit, după formula
(SellPriceUnitCost)Quantity.
3. Filtraţi datele pentru a include numai produsele care provin de la funizori din afara USA.
4. Deschideţi asistentul de configurare pentru prelucrarea Summary Statistics, Tasks  Describe 
Summary Statistics Wizard…
5. La Pasul 1, verificaţi că tabela Profit este cea activă. Selectaţi Next.
6. La Pasul 2, trageţi variabila Profit în rolul Summary statistics of (Analysis variable), iar Country şi
CompanyName în rolul For each value of (Classification variable). Selectaţi Next.
7. La Pasul 3, selectaţi Edit… pentru a alege statisticile care vor fi incluse în analiză. Se vor selecta
numai Mean şi Sum. Schimbaţi numărul de zecimale la 2, din lista din partea de jos a ferestrei.
8. Pentru a salva rezultatele agregate ca o tabelă SAS, selectaţi Save statistics to data set şi
redenumiţi tabela rezultată TotalProfit.
9. Selectaţi Finish pentru a genera raportul şi tabela SAS.
Problema 2: Folosiţi prelucrarea Summary Tables pentru a crea un raport agregat care reflectă
vânzările şi profitul pe categorii de produse. Personalizaţi diferite aspecte ale raportului, cum ar fi
capul de tabel, titlul sau formatul de afişare a valorilor.

Paşi de urmat:
1. Deschideţi tabela SAS ProductSales din directorul cu date de lucru.
2. Selectaţi Describe Summary Tables.
3. Selectaţi ca variabile de analiză (Analysis variables) OrderProfit şi RetailOrders. Indicatorii
statistici vor fi calculaţi pentru aceste două variabile.
4. Selectaţi ca variabile de clasificare (Classification variables) CategoryName, ProductName şi
CompanyNameLong. Aceste valori vor fi folosite pentru a diviza datele în categorii.
5. Selectaţi tab-ul Summary Tables.
6. În lista variabilelor disponibile selectaţi CategoryName şi apoi plasaţi variabila în zona
Preview ca un rând al tabelei.
7. Selectaţi RetailOrders şi trageţi variabila peste linia din dreapta a coloanei N până când
aceasta devine o linie albastră îngroşată. În acest moment eliberaţi butonul mouse-ului.
Observaţi că funcţia Sum este folosită automat ca indicator statistic pentru variabilă.
8. Similar, selectaţi OrderProfit şi apoi faceţi click pe linia din dreapta a coloanei RetailOrders
din ferestra Preview. Pentru coloana OrderProfit va trebui să calculăm media, suma şi
procent. În caseta Available statistics, selectaţi Mean şi apoi faceţi click pe linia din dreapta
a coloanei Sum de sub OrderProfit. Selectaţi în caseta Available statistics, ColPctSum şi şi
apoi faceţi click pe linia din dreapta a coloanei Mean.
9. Faceţi click dreapta în fereastra Preview şi selectaţi Box Area Properties.
10. În tab-ul General afişaţi ca etichetă textul Specialty Foods Sales.
11. În tab-ul Font , selecataţi ca stil Bold, culoarea alb pentru afişarea textului (Foreground) şi
orice culoare închisă pentru fundal (Background).
1. Apăsaţi OK.
2. Faceţi click dreapta în fereastra Preview şi selectaţi Table Properties.
3. În tab-ul General, bifaţi opţiunea Remove all class headings from the row dimension.
4. Apăsaţi OK.
5. Modificaţi numele capului de tabel pentru diferite variabile, astfel:
6. În fereastra Preview, faceţi click dreapta pe N şi selectaţi Heading Properties. Apoi, în tab-ul
General introduceţi eticheta # Orders pentru RetailOrders. Apăsaţi OK. În mod similar,
stabiliţi etichete şi pentru alte variabile: RetailOrders: Quantity Sold, pentru OrderProfit:
Profit, pentru ColPctSum: % of Total.
7. Schimbaţi formatul de afişare pentru valorile datelor, astfel: în fereastra Preview, selectaţi
Sum de sub RetailOrders, apoi click dreapta, Data Value Properties. În tab-ul Format,
Categories selectaţi Numeric şi formatul BESTw.d. Apăsaţi OK.
8. Sub OrderProfit, selectaţi Sum, apăsaţi tasta CTRL şi apoi selectaţi Mean, apoi click dreapta,
Data Value Properties. În tab-ul Format, Categories selectaţi Currency şi formatul
DOLLARw.d.. Apăsaţi OK.
9. Adăugaţi un titlu raportului, astfel: selectaţi tab-ul Titles, debifaţi opţiunea Use default text
şi specificaţi titlul: Sales and Profit by Category.
10. Apăsaţi Run.
6. Personalizarea rezultatelor unei prelucrări
Problema 8: Să se modifice prelucrarea Summary Tables pentru a afişa în culori diferite profitul
generat de fiecare produs, astfel:

 Produsele care au generat un profit mai mic de $200 nu mai trebuie comandate - Roşu
 Produsele care au generat un profit între $200 şi $600 au nevoie de introducerea unor
promoţii pentru a creşte vânzările - Galben
 Produsele care au generat un profit peste $600 se vând bine -Verde
Atenţie! Modificaţi prelucrarea Summary Tables prin selecratarea din lista variabilelor disponibile a
variabilei ProductName şi apoi plasaţi variabila în zona Preview, după CategoryName, ca un rând al
tabelei. În acest fel se mai adaugă un nivel de detaliu la raportul generat.

Se crează un format definit de utilizator care realizează corespondenţa între trei interval de valori şi
valorile hexazecimale pentru culorile roşu, galben şi verde.

Paşi de urmat:
1. Selectăm Tasks Data Create Format.
2. Denumiţi formatul flag.
3. Selectaţi tipul de format Numeric.
4. Selectaţi tab-ul Define formats.
5. Pentru cele trei intervale de valori specificate în problemă creaţi trei etichete, avand ca nume
valorile hexazecimale #FF0000, #FFFF66 şi #66FF66 (Figura 10).
Figura 10
6. Selectaţi Run pentru a crea formatul.
Plecând de la prelucrarea Summary Tables se aplică formatul definit de utilizator pe valorile coloanei
Sum a variabilei Profit. Deoarece această setare nu se poate realiza direct din SAS Enterprise Guide,
va fi nevoie de editarea codului prelucării pentru a aplica formatul.

Paşi de urmat:
1. În fereastra Project Explorer faceţi click dreapta pe prelucrarea Summary Tables şi selectaţi Add
As Code Template din meniul care apare.
2. Un nou obiect de tip cod numit Code for Summary Tables va fi adăugat la proiect şi codul
acestuia se va deschide în editorul de cod.
3. Parcurgeţi codul generat până identificaţi următoarea linie de cod:

Sum*F=DOLLAR10.
4. Coloanei Sum care acum are formatul DOLLAR10. i se va aplica formatul definit de utlizator.
Adăugaţi pe acceaşi linie următorul cod SAS:

*{style={background=flag.}}

5. Apăsaţi Run pentru a rula codul pentru noua prelucrare.

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