Introduzione a Stata
Stata/SE v.10.0
Level: Beginners
19/12/2015
DMQTE Pescara
2008
1
Educational
1
- Conoscere STATA
- Leggere i dati
Educational
2
- Organizzare e gestire i dati
19/12/2015
2
EDUCATIONAL 1
(Conoscere STATA e leggere i dati)
19/12/2015
3
Educational 1: Indice
1. Come appare
2. Help
3. Directories e Cartelle
4. Leggere dati in Stata
5. Variabili e data types
6. Esplorare i dati
7. Salvare il dataset
8. Tips & Tricks
9. Esempio
19/12/2015
4
1.Come Appare
Review window:
Mostra gli ultimi comandi
digitati.
Cliccando su tali comandi
essi vengono inseriti nella
Command window
Variable window:
Mostra la lista delle varibili.
Cliccando sulla variabile
apparirà nella Command
window
Command window:
In essa vengono digitati i
comandi
che
sono
immediatamente eseguibili
19/12/2015
Output window:
Mostra risultati e informazioni sulle
operazioni effettuate.
5
Stata è un pacchetto command-driven. Ha
molti comandi built-in che possono rendere
facile complicati lavori di routine. Vi è anche
la possibilità di creare propri comandi per
eseguire routine personalizzate.
È possibile inserire i comandi in due modi:
Interattivo: digitare il comando e eseguirlo
(<Return> o <Invio>)
do-file: digitare un elenco di comandi in un
"do-file" (essenzialmente un programma) e
fare eseguire il file.
19/12/2015
6
2.Help
In-built help:
Stata ha una versione abbreviata dei suoi
manuali built-in. Fare clic su Help->Contents.
Una sezione FAQ molto utile si trova in
http://www.stata.com/support/faqs/
Sia il built-in di aiuto che le FAQs possono
essere simultaneamente ricercate all'interno
di Stata stesso (Help->Search).
19/12/2015
7
3.Directories e Cartelle
Come DOS e Windows, Stata è in grado di
organizzare i files in una directory ad albero con
le diverse cartelle. Ad esempio, si può creare una
cartella "dati" per contenere tutti i dati da
utilizzare, sotto-cartelle per ogni set di dati e così
via.
È possibile utilizzare alcuni comandi simili al
DOS, tra cui:
19/12/2015
8
cd “h:\”
cambia la directory al volume h
mkdir “dati”
crea una nuova directory “h:\dati” all'interno di quella
corrente
dir
elenco contenuto di una directory o di una cartella
N.B.
Stata è case-sensitive per cui non riconosce il comando
CD o cd allo stesso modo. Inoltre, le virgolette sono
necessarie solo se la directory o il nome della cartella
contiene degli spazi.
19/12/2015
9
4.Leggere dati in Stata
Ci sono diversi comandi di lettura dati in Stata:
Inserimento manuale: digitando edit nella
command window appare la finestra dataeditor; quindi si può procedere all’inserimento
manuale dei dati
use
Permette di aprire files del formato Stata (.dta)
ad esempio
use “h:\nomefile.dta”
19/12/2015
10
insheet using
Se i dati sono riportati su un foglio elettronico, salvandoli in
formato .csv o .txt è possibile accedere ai dati con
insheet using “h:\nomefile.csv”
N.B. confronta options (help options): ad es. insheet
using “h:\nomefile.csv”, delimiter(";") clear
infile var1 var2 … using
Se i dati provengono da un'altra fonte, come internet o qualche
insolito pacchetto software, è possibile leggere in Stata un file
di testo ASCII .txt o .asc con il comando
infile var1 var2 … using “h:\nomefile.txt”
19/12/2015
11
Alcune regole da seguire per la lettura dei dati:
• dati grezzi ASCII o .txt dovrebbero contenere
solo i dati e non i nomi delle variabili. Questo è
il motivo per cui si assegnano manualmente i
nomi delle variabili all'interno del comando
infile. Stata riconosce lo spazio come
separatore tra una variabile e l’altra.
• i valori mancanti non possono essere lasciati in
bianco e devono essere rappresentati da
qualcosa ( ad es. un punto).
19/12/2015
12
• i nomi con spazi nel testo devono essere
racchiusi tra virgolette; ad es., dati grezzi del
tipo country / sector / output dovrebbero
apparire come:
Japan Servizi 3824553
“United Kingdom" Agricoltura 36127
Germany Servizi 84657991
• i numeri possono avere il segno “-”, ma si eviti
la virgola, il segno “$” e il segno “%”.
19/12/2015
13
• Le variabili stringhe devono essere definite
attraverso il comando str?? (dove al posto ??
occorre inserire un numero cheindica la
lunghezza delle modalità); ad es., dati grezzi
del tipo country / sector / output dovrebbero
apparire come:
Japan Servizi 3824553
“United Kingdom" Agricoltura 36127
Germany Servizi 84657991
In questo caso il comando sarà:
infile str15 country str15 sector
output using “h:\nomefile.txt”
19/12/2015
14
• Per dati da .csv la prima riga del foglio di calcolo deve
avere i nomi delle variabili, ad esempio, country/sector/
output, e la seconda riga in poi deve avere i dati. Se la
prima riga del file contiene un titolo, come ad esempio
"Dati output 2008 - Fonte: Eurostat", bisogna cancellare
la riga prima di salvare.
• ulteriori caselle di seguito o alla destra dei dati (ad
esempio, note a piè di pagina) vengono letti da Stata;
quindi, assicurarsi che sul foglio ci siano solo la prima
riga dei nomi delle variabili e i dati.
19/12/2015
15
• i nomi delle variabili non possono iniziare con
un numero. Se, invece della variabile sector, il
file è stato allestito con gli anni (ad esempio,
1980, 1985, 1990, 1995) sulla riga superiore,
allora di fronte a ogni numero si dovrà porre un
“_”: così “1980” diventa “_1980”, e così via.
• assicurarsi che non vi siano le virgole nei dati
come separatori decimali
19/12/2015
16
5.Variabili e data types
Variabili e data-points
Dal data editor è possibile visualizzare il data set. Ad esempio:
Ogni colonna del
data-set
rappresenta una
variabile
Ogni riga del data
set costituisce un
data-point
19/12/2015
country
sector
output
employ
Germany
Agriculture
50757
489
Germany
Mining
16472
141
Germany
Manufacturing
1256545
7780
Germany
Services
2065795
22373
Japan
Agriculture
119190
858
Japan
Mining
14049
68
Japan
Manufacturing
2437884
13303
Japan
Services
3824553
35862
United Kingdom
Agriculture
36127
298
United Kingdom
Mining
38077
76
United Kingdom
Manufacturing
667982
4140
United Kingdom
Services
1680452
17938
United States
Agriculture
279109
2182
United States
Mining
166611
595
United States
Manufacturing
3971052
18922
United States
Services
9798825
105106
17
Numeric o string data
Stata organizza i dati in numeric o string.
Il tipo numeric riguarda numeri (ad esempio, la
produzione, l'occupazione)
il tipo string è relativo a testo (ad esempio, nome
del paese). Il tipo string può anche essere
utilizzato per memorizzare numeri, ma Stata non
sarà in grado di eseguire analisi numerica su
questi numeri.
19/12/2015
18
• Il tipo string è forse più semplice poiché qualsiasi
variabile può essere definita come una stringa e può
contenere fino a 80 caratteri.
Il tipo string, però, non permette di effettuare
elaborazioni numeriche per cui spesso si usa effettuare
delle codifiche.
Ad es., la variabile sector potrebbe essere una variabile
stringa di testo (Agricoltura, Industria mineraria,
Manifattura, Servizi), ma le sue osservazioni sono in
realtà memorizzate come un codice numerico (1 per
l'Agricoltura, 2 per Mineraria, 3 per Manifattura 4 per i
Servizi).
19/12/2015
19
Questo modo di procedere è molto in uso;
tuttavia, esso può dare adito a possibili
problemi di arrotondamento.
Ad es., avendo un codice ID di 9 cifre di tipo
float, che è accurato solo fino a 8 cifre, si
possono verificare situazioni in cui i diversi
codici ID siano arrotondati.
Tutto ciò crea delle imprecisioni nella
codifica.
19/12/2015
20
I diversi formati del tipo numeric sono:
- Byte: numeri interi compresi tra -127 e 100 ad
es. una variabile dummy
- Int: numeri interi compresi tra -32767 e 32740
ad es., anni di calendario
- Long: intero compreso tra -2147483647 e
2147483620 ad esempio, I dati demografici
- Float: numero reale con circa 7 cifre di
precisione ad esempio, dati sulla Produzione
- Double: numero reale con circa 16 cifre di
precisione
19/12/2015
21
Compressione dati
L’archiviazione di dati in formato numeric
avviene
attraverso
il
metodo
binario
(sequenze di 0 e 1).
Ciò implica che si tende ad occupare
parecchio spazio sulle memorie fisiche del PC;
19/12/2015
22
Anche per le variabili di tipo string spesso è
possibile porsi il problema della quantità di dati.
Ad es., se si considera la variabile country
“United Kingdom" con 14 lettere (compresi gli
spazi) si può pensare di ridurre spazio indicando
il paese con “UK” (di 2 lettere).
19/12/2015
23
Inoltre, in Stata il tipo numeric predefinito è float.
Tuttavia, per una maggiore accuartezza spesso
si preferisce utilizzare il tipo double.
Però, rendere tutte le variabili numeriche di tipo
double implica anche maggiori quantità di dati da
trattare; questa strategia può rendere i files molto
pesanti e quindi richiedere molto spazio sulle
memorie fisiche, rallentando i tempi di
elaborazione.
19/12/2015
24
Allora, un modo veloce per memorizzare le variabili nel loro
formato più efficiente è quello di comprimere i dati con il
comando compress.
Tramite questo comando Stata passa attraverso ogni
osservazione di una variabile e ottimizza il rapporto spazioformato senza sacrificare l'attuale livello di precisione nei
dati.
Ad es. digitando il comando compress nella command
window, avremo nella output window un risultato del tipo:
. compress
sector was int now byte
country was str20 now str14
19/12/2015
25
È possibile definire in fase di caricamento dati il tipo
relativo alle variabili.
Ad esempio,
infile str14 country byte sector long output
Tramite questo comando formattiamo la variabile
country come stringa di 14 caratteri, la variabile
sector come byte e la variabile output come long
19/12/2015
26
Missing values
I valori mancanti di tipo numeric sono identificati
da un unico punto (.), mentre i valori mancanti
di tipo string sono identificati da due virgolette
("").
19/12/2015
27
6.Esplorare i dati
Possono essere utilizzati i seguenti comandi:
List
Permette di visualizzare una, più di una o tutte le
variabili e i corrispondenti valori (stringhe o
numeri) di output delle variabili.
19/12/2015
28
Ad es. digitando list si ottiene la lista di tutte le
variabili, mentre
list country sector output
restituisce sulla output window:
. list country sector output
country
1.
Germany
2.
Germany
3.
Germany
4.
Germany
5.
Japan
6.
Japan
7.
Japan
8.
Japan
9.
United Kingdom
10.
United Kingdom
11.
United Kingdom
12.
United Kingdom
13.
United States
14.
United States
15.
United States
16.
United States
19/12/2015
sector
Agriculture
Mining
Manufacturing
Services
Agriculture
Mining
Manufacturing 2437884
Services
Agriculture
Mining
Manufacturing
Services
Agriculture
Mining
Manufacturing 3971052
Services
output
50757
16472
1256545
2065795
119190
14049
3824553
36127
38077
667982
1680452
279109
16661
9798825
29
mentre,
list in 1/5
restituisce nella output window
. list in 1/5
country
1.
Germany
2.
Germany
3.
Germany
4.
Germany
5.
Japan
19/12/2015
sector
Agriculture
Mining
Manufacturing
Services
Agriculture
output
50757
16472
1256545
2065795
119190
30
describe (describe var1 var2 …)
Questo comando mostra informazioni sul data set e su una più o tutte le variabili.
. describe
Contains data from h:\production.dta
obs:
16
1998 data from OECD Stan
vars:
4
11 Oct 2002 13:24
size:
544 (100.0% of memory free)
---------------------------------------------------------------------------storage display
value
variable name
type
format
label
variable label
---------------------------------------------------------------------------country
str14 %14s
Country
sector
byte
%13.0g
sectcode
Industrial sector
output
float %9.0g
Gross output (current USD mill)
employ
long
%12.0g
Number of employees, thousands
----------------------------------------------------------------------------
19/12/2015
31
codebook (codebook var1 var2 …)
Questo comando fornisce, per il data set
caricato, altre informazioni sulla variabile,
come alcune statistiche descrittive, missing
values, range etc.
19/12/2015
32
summarize (o anche sum)
Questo comando fornisce: numerosità delle
osservazioni, media, std, min e max.
Se si desiderano queste statistiche per specifiche
variabili
summarize var1 var2 …
Se si desiderano ulteriori dettagli si usa detail
summarize var1 … vark, detail
19/12/2015
33
inspect (inspect var1 var2 …)
Il comando inspect riassume rapidamente una variabile
numerica; il comando differisce da quello fornito da
summarize, perchè riporta il numero di valori negativi,
nulli, positivi, il numero di interi e non interi, il numero di
valori unici e il numero di valori mancanti e produce,
inoltre, un piccolo istogramma. Il suo scopo non è di
analisi, ma è quella di acquisire rapidamente familiarità
con i dati.
19/12/2015
34
tabulate var1
Permette di costruire la tavola di frequenza della
variabile var1.
tabulate var1 var2
Permette di costruire la tavola di frequenza doppia
per le variabili var1 e var2
tabulate var1 var2, chi2
Calcola anche il chi2 di Pearson
19/12/2015
35
hist var1
Permette di rappresentare l’istogramma per la
variabile var1.
hist var1, start(0.5) width(0.5)
Permette di rappresentare l’istogramma per la
variabile var1, con valore iniziale 0.5 e passo delle
ascisse pari a 0.5
19/12/2015
36
scatter var1 var2
Restituisce una rappresentazione bidimensionale per le
variabili var1 e var2.
scatter var1 var2, by(var3)
Per rappresentare una matrice di scatterplots
rispetto alla variabile var3
19/12/2015
37
7.Salvare il dataset
save
Permette il salvataggio del data set. Ad es.
save “h:\nomefile.dta”, replace
dove l’opzione replace sovrascrive ogni
precedente versione del file con lo stesso nome
presente nella directory di riferimento.
19/12/2015
38
8.Tips & Tricks
Do-files (.do)
È molto comodo salvare la sequenza di comandi
inseriti nella command-window nei c.d. Do-files (.do);
tali files possono essere richiamati per eseguire la
sequenza di comandi in essi contenuta. Per aprire un
nuovo Do-file Ctrl+8
Per richiamare un do-file dalla command window
do“h:\nomefile.do“
In Stata la sintassi dei comandi segue uno schema
comune del tipo
nome_comando oggetto_comando, options
Ad es.
save “h:\nomefile.dta”, replace
19/12/2015
39
Esempio. do-files (.do)
/*apriamo e elenchiamo il file .dta*/
clear all
use c:\dati\esempio.dta
list
/*informazioni sul data-set e grafici*/
codebook
hist output, name(g1)
scatter output sector, by(country) name(g2)
19/12/2015
40
Leggere dati da un foglio elettronico
Una volta aperto il foglio elettronico (ad es. .xls)
copiare i dati di interesse e incollare su un nuovo
foglio solo i dati (e non le formule), quindi copiare
tutto il nuovo foglio. Infine, digitare edit sul command
window di Stata e incollare i dati sul data editor che
appare.
clear
Il comando clear permette di cancellare tutti i data set
caricati. Può essere utilizzato come option nei vari
comandi; ad esempio
use “h:\nomefile.dta”, clear
Apre il file nomefile.dta e elimina i dati già caricati in Stata
19/12/2015
41
Quando si digitano i comandi che coinvolgono
le variabili di tipo string, è necessario
racchiudere l'osservazione di riferimento tra
virgolette altrimenti Stata non è in grado di
individuare le operazioni da effettuare. Ad es.
summarize if country==“Germany”
summarize if sector==1
Lookfor var1 …
Permette di individuare le etichette delle variabili
19/12/2015
42
9.Esempio
- Digitare sysuse dir
- Aprire un file .dta (ad esempio census) con il
comando use oppure con sysuse census
- Procedere alle eleborazioni
19/12/2015
43
EDUCATIONAL 2
(Organizzare e gestire i dati)
19/12/2015
44
Educational 2: Indice
1. Organizzare i dati
2. Creare nuove variabili
3. Tenere traccia delle istruzioni
19/12/2015
45
1.Organizzare i dati
Per l’organizzazione dei dati sono utili i seguenti comandi:
rename
recode
replace
keep e drop
so
by-processing
reshape
append e merge
collapse
move
Vediamoli in particolare.
19/12/2015
46
rename
Spesso può essere utile rinominare le variabili;
Ad. Es.
ren isocode country
ren yr year
Bisogna sottolineare che è possibile rinominare
una sola variabile alla volta
19/12/2015
47
recode
È possibile ricodificare i valori raggiunti da una varibile
Ad. Es.
recode year (1950=1940)
Possono essere ricodificate più variabili alla volta.
Ad es. per missing values indicati nel data set con -999 si
può sostituire il punto “.”
recode pop output (-999=.)
Questo comando non è utilizzabile per le variabili stringa
che invece utilizzano il comando replace
19/12/2015
48
replace
Per le variabili stringa è possibile effettuare
una ricodifica usando una sintassi del tipo
generate country2=country
recast str18 country2
replace country2=“Japan” if country==“J”
19/12/2015
49
keep
Il data set può contenere alcuni variabili che non
interessano ai fini del nostro studio. Pertanto, è
possibile estrarre solo le variabili obiettivo.
Ad. es. dal nostro data set volendo studiare la
relazione tra output e settore possiamo
considerare solamente queste due variabilli
keep output sector
In questo modo la variabile country non viene
presa in considerazione.
19/12/2015
50
drop
È il comando complementare al keep.
Ad. es. dal nostro data volendo studiare la
relazione tra output e settore possiamo
considerare solamente queste due variabilli
scartando la variabile country
drop country
19/12/2015
51
Keep e drop
Sia per il keep che per il drop è molto utile il “-”.
Infatti keep country-output considera tutte
le varibili tra le due indicate ossia country sector
output. Allo stesso modo vale per il drop.
Inoltre, sia il keep che per il drop possono
essere utilizzati sulle osservazioni. Ad es.
keep if output>=16000
che equivale a
drop if output<16000
19/12/2015
52
Keep e drop
Oppure utilizzare diversi operatori logici e di relazione. Ad es.
keep if year>=1960 & year<=1995
Nota.
In Stata ci sono i seguenti operatori logici
&
and
|
or
~
not
e di relazione
==
equal to
~=
not equal to
>
greater than
>=
greater than or equal to
<
less than
<=
less than or equal to
19/12/2015
53
Keep e drop
Se si conosce il numero di riga o colonna su cui
applicare i comandi; ad esempio per eliminare le
righe da 1 a 10
drop if _n<=10
o anche
Keep if _n>10
19/12/2015
54
so
Il comando effettua l’ordinamento (sort) dei dati
secondo certi criteri. Ad es.
so country output
Effettua l’ordinamento crescente prima secondo
la variabile country e poi secondo la variabile
output
Per l’ordinamento decrescente
gsort -country output
19/12/2015
55
by
Permette di eseguire iterativamente un comando per
differenti sottinsiemi del data-set. Ad es.
so sector
by sector: sum output
Che equivale alla seguente sequenza di comandi
sum
sum
sum
sum
output
output
output
output
if
if
if
if
sector=1
sector=2
sector=3
sector=4
Pertanto, il by è da utilizzare sempre dopo un
ordinamento.
19/12/2015
56
reshape
Permette di fare il ridimensionamento della
tabella dati. Ad es.
reshape wide output, i(country) j(sector)
Trasforma la nostra tabella 1 in 2
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
19/12/2015
country
D
D
D
D
J
J
J
J
UK
UK
UK
UK
USA
USA
USA
USA
1
sector
Agriculture
Mining
Manufacturing
Services
Agriculture
Mining
Manufacturing
Services
Agriculture
Mining
Manufacturing
Services
Agriculture
Mining
Manufacturing
Services
output
50757
16472
1256545
2065795
119190
14049
2437884
3824553
36127
38077
667982
1680452
279109
16661
3971052
9798825
country
1. D
2. J
3. UK
4. USA
output1
50757
119190
36127
279109
2
output2
16472
14049
38077
16661
output3
1256545
2437884
667982
3971052
output4
2065795
3824553
1680452
9798825
57
append e merge
È possibile combinare differenti datasets in un unico
dataset aggiungendo:
1. altre osservazioni (per riga)
append using “f:\nomefile.dta”
2. Altre variabili (per colonna)
use “c:\dati\esempiomerge1.dta”, clear
so country year
save “c:\dati\esempiomerge1.dta”, replace
use “c:\dati\esempiomerge2.dta”, clear
so country year
merge country year using “c:\dati\esempiomerge1.dta”
19/12/2015
58
collapse
È possibile aggregare come dataset di
statistiche (sum, mean, median etc.) le
osservazioni relative a una o più variabili.
Ad es. quando si vogliono aggregare dati
mensili in annuali.
collapse (sum) month, by(country)
ren month year
Il ren ci rinomina la variabile month
19/12/2015
59
collapse
Esempio 1.
Aggregare i livelli di output per ottenere il livello
complessivo di ogni paese
collapse (sum) output, by(country)
Esempio 2.
Aggregare i livelli di output per ottenere il livello
medio di ogni paese
collapse (mean) output, by(country)
19/12/2015
60
move
Questo comando permette di effettuare un
cambiamento di ordine nella lista delle variabili.
Ad es.
move output country
Sposta in alto la variabile output appena dopo la
variabile country.
19/12/2015
61
FINE
19/12/2015
62