Anteprima
Vedrai una selezione di 10 pagine su 210
Statistica economica Pag. 1 Statistica economica Pag. 2
Anteprima di 10 pagg. su 210.
Scarica il documento per vederlo tutto.
Statistica economica Pag. 6
Anteprima di 10 pagg. su 210.
Scarica il documento per vederlo tutto.
Statistica economica Pag. 11
Anteprima di 10 pagg. su 210.
Scarica il documento per vederlo tutto.
Statistica economica Pag. 16
Anteprima di 10 pagg. su 210.
Scarica il documento per vederlo tutto.
Statistica economica Pag. 21
Anteprima di 10 pagg. su 210.
Scarica il documento per vederlo tutto.
Statistica economica Pag. 26
Anteprima di 10 pagg. su 210.
Scarica il documento per vederlo tutto.
Statistica economica Pag. 31
Anteprima di 10 pagg. su 210.
Scarica il documento per vederlo tutto.
Statistica economica Pag. 36
Anteprima di 10 pagg. su 210.
Scarica il documento per vederlo tutto.
Statistica economica Pag. 41
1 su 210
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

title "MEDIA DI X PER CLASSE";

proc means data = normalebis mean std;

class classe;

var x;

run; 132

Vai all’indice Dispensa a cura di Gabriele Pelli

Università Cattolica del Sacro Cuore

dove: a) Abbiamo specificato le opzioni mean e std per

“personalizzare” l’output secondo le nostre necessità;

statement

b) Abbiamo aggiunto lo class per dire a SAS

di calcolare media e deviazione standard a seconda

classe

del valore assunto dalla variabile “ ”.

output

9.2.15. Il comando

Quando facciamo questo tipo di analisi, può essere utile scaricare i

risultati delle procedure in una tabella (attraverso il comando

output). La sintassi sarà data da:

title "MEDIA DI X PER CLASSE";

proc means data = normalebis mean;

class classe;

var x;

output out = mediaperclasse

mean(x) = media;

run; output

Il comando output è fatto così: bisogna specificare il comando

out

con l’opzione = [nome della tabella in cui scaricare i dati], poi

misura

sotto si deve inserire la da utilizzare (nel nostro esempio

mean) con tra parentesi la variabile su cui calcolarla (nel nostro caso

x) = [nome della variabile da dare – in questo caso – alla media].

In questo caso l’output tabellare sarà

dato da:

Tale tabella è così composta:

= 0)

- la prima riga (_TYPE_ riguarda l’intero campione, dove

sarà riportata la media complessiva;

= 1)

- la seconda e la terza riga (_TYPE_ riguardano invece le

due classi.

_TYPE_

La variabile distingue i vari livelli di aggregazione, dove il

valore zero è associato alla massima aggregazione, e cos’ via.

133

Vai all’indice Dispensa a cura di Gabriele Pelli

Università Cattolica del Sacro Cuore

Mentre l’output “stampabile” (HTML) sarà dato da:

(ossia un’unica tabella contenente le

informazioni su entrambe le classi)

statement

La stessa operazione può essere eseguita tramite lo by. La

differenza è che con lo statement class costruiamo tutte le medie

possibili (di tutti i livelli di aggregazione), mentre con by SAS

costruisce solo le medie relative al livello di aggregazione più “fine”

(quello relativo alle classi).

La formattazione sarà in questo caso data da:

title "MEDIA DI X PER CLASSE";

proc means data = normalebis mean;

by classe;

var x;

output out = mediaperclassebis

mean(x) = media;

run;

In questo caso, l’output sarà dato da:

Notiamo che non c’è più la riga relativa al livello “aggregato”

_TYPE_

dell’intero campione e che la variabile adesso associa al

0).

livello delle classi (l’unico) il livello di aggregazione minore (=

Per quanto riguarda l’output HTML,

invece, in questo caso avremo due distinte

tabelle, una per ogni classe, ossia:

134

Vai all’indice Dispensa a cura di Gabriele Pelli

Università Cattolica del Sacro Cuore

sort

9.2.16. La procedura per ordinare i dati

Supponiamo ora di voler mettere “in ordine” i valori della variabile

x contenuti nella tabella “normalebis”.

Per fare ciò si utilizza la procedura di ordinamento data da proc

sort, la cui sintassi è data da:

proc sort data = normalebis;

by x;

run;

Dove, come al solito, al comando proc segue il nome della procedura

(sort), seguita a sua volta dal nome della tabella contenente i dati da

ordinare (nel nostro caso “normalebis”).

Sotto va poi aggiunta come opzione (by) l’indicazione della variabile

in base alla quale ordinare i dati (nel nostro caso x).

NB: La procedura sort riscrive la tabella in modo ordinato. È

quindi molto importante che la tabella da riordinare non sia

aperta in visualizzazione, altrimenti SAS non può eseguire

l’operazione. 135

Vai all’indice Dispensa a cura di Gabriele Pelli

Università Cattolica del Sacro Cuore

9.2.17. Alcune operazioni di base sui dati

base1

Costruiamo adesso un’altra tabella chiamata “ ” per vedere

alcune operazioni fondamentali da poter eseguire sui dati. Questa

volta, però, inseriamo nella tabella ben cinque variabili anziché una

sola (ossia x, y, z, u, w).

Per farlo usiamo di nuovo un proc step con la seguente sintassi:

data base1;

progressivo = _N_;

input x y z u w;

datalines;

1.306178 6.077897 2.440473 6.724015 5.426946

3.044741 6.804383 3.692840 3.726937 2.946138

3.452986 8.837831 6.515427 3.153617 7.476390

0.764138 4.830966 5.933424 7.222378 4.377574

3.864150 3.952410 6.749218 2.597643 3.320156

4.191905 6.350277 6.191484 1.882216 3.357744

5.269706 4.237352 2.256300 6.422650 4.142015

4.269014 6.515223 2.768523 6.276812 .

;

run;

Notiamo quindi che adesso le cinque colonne non rappresentano più

un’unica variabile su più colonne (che avevamo specificato usando

@@

l’opzione dopo l’opzione input [nome variabile]), bensì cinque

distinte variabili.

Notiamo inoltre che c’è un valore

mancante in corrispondenza

dell’ultima osservazione relativa

all’ultima variabile (che SAS

sostituisce con un puntino).

log

Nel vediamo che è stata quindi

creata una tabella (base1) con 20

osservazioni e sei variabili (sei

perché oltre alle 5 già menzionate

c’è anche il progressivo “_N_”). 136

Vai all’indice Dispensa a cura di Gabriele Pelli

Università Cattolica del Sacro Cuore

Come prima operazione sui dati, andiamo a costruire una nuova

base2

tabella (che chiamiamo ) a partire dai dati contenuti nella

base1

tabella appena creata, operando alcune trasformazioni.

La sintassi che usiamo è la seguente:

data base2;

set base1;

somma1 = x + y + z + u + w;

somma2 = sum(x,y,z,u,w);

prodotto = x*y;

potenza = z**2;

logaritmo = log(x);

esponenziale = exp(y);

media = mean(x,y,z,u,w);

run;

Nella prima riga specifichiamo il nome della nuova tabella;

Nella seconda riga diciamo a SAS dove prendere i dati;

Nella terza e quarta riga costruiamo due nuove variabili chiamate

“somma1” e “somma2”, date dalla somma delle 5 variabili.

Notiamo che per sommare delle variabili possiamo farlo in due modi:

- scrivendo la somma per esteso usando il simbolo “+”;

- usando la funzione sum(∙) nel cui argomento vanno inserite le

variabili da sommare separate da una virgola.

Nella quinta riga troviamo una nuova variabile chiamata “prodotto”,

data dal prodotto (che si esegue con l’asterisco “∗”) di x e y;

Nella sesta riga c’è la variabile chiamata “potenza”, data dal

quadrato della variabile z (NB: per scrivere una potenza si usano

due asterischi “∗∗” e non il solito “^”).

Nella settima riga costruiamo una variabile chiamata “logaritmo”

usando l’apposita funzione (la cui sintassi è data da log(∙) usando

come argomento il nome della variabile di interesse);

Nell’ottava riga creiamo la variabile “esponenziale” usando

l’apposita funzione exp(∙); 137

Vai all’indice Dispensa a cura di Gabriele Pelli

Università Cattolica del Sacro Cuore

Nella nona riga, infine, creiamo una variabile chiamata “media”,

usando la già nota funzione mean(∙).

Chiudiamo il tutto con l’usuale comando run.

Il risultato sarà la seguente tabella:

Notiamo che in corrispondenza dell’ultima colonna di somma1 c’è un

valore mancante. Ciò è dovuto al fatto che abbiamo sommato le

variabili usando il “+”, mentre ciò non si sarebbe verificato (e non si

è di fatto verificato guardando alla variabile somma2) se avessimo

usato la funzione sum(∙).

9.2.18. Come accodare due o più tabelle

Adesso vediamo come accodare due o più tabelle. Per farlo è

sufficiente creare una nuova tabella con l’usuale comando data, e

quindi aggiungere, dopo l’opzione set, i nomi delle tabelle che si

intende accodare. base1 base2

La sintassi sarà (nel nostro esempio con e ) quindi data

da:

data base3;

set base1 base2;

run; 138

Vai all’indice Dispensa a cura di Gabriele Pelli

Università Cattolica del Sacro Cuore

base3

La risultante tabella ( ) sarà data da:

Notiamo che, poiché SAS riporta tutte le variabili di tutte le tabelle,

qualora alcune non compaiano in qualche tabella queste risulteranno

come dato mancante. contents

9.2.19. La procedura

Infine, vediamo la procedura contents, che serve a riportare le

informazioni sul contenuto di una tabella (sostanzialmente il

tracciato record più qualche altra informazione ausiliaria).

La sintassi in questo caso è data (ad esempio per quanto riguarda la

base2

tabella ) da:

title "CONTENUTO DI BASE2";

proc contents data = base2 varnum;

run;

Ossia proc + contents (nome procedura) + data (per dire quali dati

= base2)

usare, in questo caso + (eventualmente) l’opzione varnum

che dice a SAS di riportare le variabili nello stesso ordine in cui si

default

trovano nella tabella (altrimenti SAS di le ordina in ordine

alfabetico). 139

Vai all’indice Dispensa a cura di Gabriele Pelli

Università Cattolica del Sacro Cuore

Il relativo output sarà dato da: 140

Vai all’indice Dispensa a cura di Gabriele Pelli

Università Cattolica del Sacro Cuore

9.3. ESEMPIO 1.2.

Come sempre, per prima cosa eseguiamo il comando:

ods graphics off

Se si vuole iniziare un nuovo programma cancellando tutto il codice,

basta premere l’apposito pulsante. Per cancellare invece le tabelle e

le informazioni contenute nella cartella “work”, si può procedere con

la cancellazione manuale o in alternativa usare l’apposito comando

“canc”.

Procediamo dunque con il caricare i dati con l’usuale data step, la

cui formattazione è data da:

data base;

tempo = _N_;

input periodo x;

datalines;

1980 87.744

1981 91.511

1982 89.097

1983 89.371

1984 90.455

1985 90.591

1986 93.410

1987 92.582

1988 94.716

1989 96.230

1990 95.374

1991 96.386

1992 98.444

1993 99.162

1994 98.875

1995 99.734

1996 100.382

1997 102.806

1998 102.688

1999 103.280

2000 104.357 141

Vai all’indice Dispensa a cura di Gabriele Pelli

Università Cattolica del Sacro Cuore

2001 105.5

Dettagli
Publisher
A.A. 2014-2015
210 pagine
6 download
SSD Scienze economiche e statistiche SECS-S/03 Statistica economica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher fenix91s di informazioni apprese con la frequenza delle lezioni di Statistica economica e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università Cattolica del "Sacro Cuore" o del prof Dacomo Alessandro.