La stele di Rosetta di SAS, R, SPSS e STATA
Transcript
La stele di Rosetta di SAS, R, SPSS e STATA
La stele di Rosetta
di SAS, R, SPSS e STATA
Versione 1.0 - Aprile 2007
Silvia Sartorelli
Dipartimento di Scienze Statistiche, Università degli Studi di Padova
1
Questa opera viene rilasciata sotto la licenza Creative Commons: Attribuzione - Non
commerciale - Condividi allo stesso modo 2.5 Italia. Il fruitore è libero di riprodurre,
distribuire, comunicare al pubblico, esporre in pubblico, rappresentare, eseguire e re
citare quest'opera e di modificare quest'opera.
Alle seguenti condizioni: deve attribuire la paternità dell'opera nei modi indicati dal
l'autore o da chi ha dato l'opera in licenza; non si può usare quest'opera per fini com
merciali; se si altera o trasforma quest'opera, o se la si usa per crearne un'altra, si
può distribuire l'opera risultante solo con una licenza identica a questa.
Ogni volta che si usa o si distribuisce quest'opera, si deve farlo secondo i termini di
questa licenza, che va comunicata con chiarezza. In ogni caso, si può concordare col
titolare dei diritti d'autore utilizzi di quest'opera non consentiti da questa licenza.
Nothing in this license impairs or restricts the author's moral rights.
2
Introduzione
Una delle cose più belle del mio lavoro è che imparo tante cose. Una di quelle più
brutte è che le cose da imparare sono così tante e da imparare così in fretta che poi è
facile dimenticarle.
Ho raccolto in questa dispensa alcune cose che ho imparato a proposito dei principali
pacchetti statistici usati nella Facoltà di Scienze Statistiche; è una specie di riassunto
delle operazioni più frequenti, “tradotte” nei vari linguaggi.
Nelle mie intenzioni dovrebbe essere uno strumento schematico, agile e di veloce con
sultazione per dare al lettore che già conosce (almeno un po', almeno uno tra) i pac
chetti un suggerimento che gli permetta di procedere velocemente nel proprio lavoro.
L'ho strutturato avendo in mente chi, come me, conosce abbastanza bene un pacchet
to ma deve usarne (o vuole impararne) anche altri, nella speranza di dare una “spin
ta” a chi si trova nelle fasi di approccio ad un nuovo strumento, ma desidera “lavora
re” subito (o quasi).
I programmi che ho preso in considerazione sono:
•
SAS 9.1: pacchetto molto potente e complesso basato su un modulo Base e di
versi moduli aggiuntivi (ad esempio STAT, IML, GRAPH, ETS, etc).
Richiede la conoscenza del proprio linguaggio di programmazione perché l'at
tuale gestione a finestre di dialogo secondo me non è ancora sufficientemente
completa e “amichevole”.
•
R 2.3: pacchetto a linea comando, open source, completo e interessante; carica
all'avvio una serie di funzioni base a cui si possono aggiungere funzioni tramite
librerie aggiuntive di interesse; ha notevoli potenzialità grafiche complesse ed
eleganti.
•
STATA 9: nasce a linea comando con il proprio linguaggio ma attualmente può
essere utilizzato ampiamente tramite l'interfaccia a menù e finestre di dialogo.
•
SPSS 14: pacchetto “amichevole” che ormai viene utilizzato quasi unicamente
tramite l'interfaccia a menù e finestre di dialogo e per questo privilegiato in
molti ambienti in cui c'è scarsa preparazione statistico-informatica.
Ringrazio quanti mi hanno già aiutato con suggerimenti, consigli e correzioni e quanti
lo faranno in futuro; in particolare ringrazio Alberto Cammozzo, Stefano Mazzuco e
Guido Masarotto, al quale devo anche l'idea per il bellissimo titolo.
Notazione
La dispensa è formata da schede; ogni scheda presenta un titolo che riporta l'opera
zione che verrà presa in considerazione, quindi una breve descrizione dell'operazione
e infine come svolgerla nei quattro programmi presi in considerazione.
Il codice è scritto in courier new e per riferirmi agli argomenti dei comandi ho cerca
to di inventare dei nomi autoesplicativi.
I percorsi tra le voci dei menù sono evidenziati tramite una sottolineatura ed i passag
gi da una voce all'altra tramite un doppio segno maggiore (>>).
L'ultima scheda funge anche da indice.
3
Scheda 1 -
Avvertenze sull'uso dei programmi
SAS
•
•
•
•
•
•
•
•
•
all'avvio si aprono 5 finestre tra cui l'Editor che è l'area in cui scrivere e/o
caricare i programmi in linguaggio SAS da mandare successivamente in ese
cuzione tramite il tasto F8 oppure l'icona dell'omino che corre oppure dal
menù Esegui>>Sottometti1
non è case-sensitive
ogni riga di comando deve finire con un ; (punto e virgola)
comandi diversi possono essere scritti sulla stessa riga, oppure un comando
può continuare sulla riga successiva ma le parole non devono essere spezza
te
il codice può iniziare in qualsiasi colonna dell'editor
le parole che compongono un comando devono essere isolate da uno spazio
o da un operatore
i nomi di variabili e dataset possono essere formati con un numero di carat
teri da 1 a 32, il primo carattere deve essere una lettera o il sottolineato (_)
ed i caratteri seguenti possono essere lettere, numeri o sottolineati, non vi
possono invece comparire spazi all'interno
ci si riferisce ai comandi che riguardano la manipolazione dei dataset (e che
costituiscono il linguaggio SAS vero e proprio) come comandi di DATA STEP
mentre le procedure vengono genericamente definite PROC STEP
I comandi opzionali sono riportati tra i segni di maggiore e minore (<...>)
R
•
•
•
•
•
•
all'avvio si apre una sola finestra che propone un prompt (>) per l'immissio
ne di linee di comando che si mandano in esecuzione con l'Invio ( ). E' pos
sibile anche caricare programmi già memorizzati in un file
è case-sensitive
per i nomi delle variabili sono permesse lettere, numeri, il punto (.) e il sot
tolineato (_) con la restrizione che il primo carattere dev'essere il punto o
una lettera e, nel caso del punto, il secondo carattere non può essere un nu
mero; inoltre sono escluse alcune parole che sono parole riservate
è basato su un linguaggio orientato agli oggetti che può essere arricchito an
che dall'utente finale
l'area di lavoro per R si chiama workspace e contiene tutti gli oggetti neces
sari (dati, risultati delle elaborazioni, etc.) per lavorare; ogni cosa in R è un
oggetto e ogni oggetto ha delle proprietà (modo, lunghezza, ...) ed appartie
ne ad una classe
in particolare ci riferiremo agli oggetti data.frame che sono matrici di dati in
cui le colonne sono di tipi non necessariamente uguali
1 Traduzione dell'inglese “Submit”
4
Scheda 1 - Avvertenze sull'uso dei programmi
STATA
•
•
•
•
all'avvio si aprono 4 finestre tra cui Command in cui si scrivono le linee di
comando che si mandano in esecuzione con l'Invio ( ). E' possibile caricare
programmi già memorizzati in un file oppure ottenere le stesse funzioni tra
mite menù e finestre di dialogo
è case-sensitive e quasi tutti i comandi sono in minuscolo
i nomi di comandi e variabili devono essere al massimo di 32 caratteri (ca
ratteri, numeri e il sottolineato in cui il primo elemento è preferibilmente un
carattere)
è possibile usare abbreviazioni fintanto che non si creino ambiguità su ciò a
cui ci si riferisce (il comando describe si può abbreviare con d, la finestra
di sintassi di ciascun comando indica l'abbreviazione minima consentita tra
mite una sottolineatura)
SPSS
•
•
•
•
•
•
all'avvio si apre la finestra dei dati che si presenta vuota. Attualmente in
SPSS ci si muove prevalentemente tramite menù e finestre di dialogo ma è
possibile accedere ad una finestra di sintassi (File>>Nuovo>>Sintassi) in cui
scrivere e/o caricare programmi in codice SPSS da mandare in esecuzione
tramite menù: Esegui>>... oppure con l'icona con la freccetta (che corri
sponde a Esegui>>Corrente)
non è case-sensitive
i nomi delle variabili possono essere formati con un numero di caratteri da 1
a 64, devono iniziare con una lettera e i caratteri successivi possono essere
lettere, numeri o simboli, esclusi !,?,',* e lo spazio; inoltre sono escluse al
cune parole che sono parole riservate
ciascun comando deve terminare con un punto oppure deve essere seguito
da una linea vuota
per specificare un singolo comando è possibile utilizzare un numero illimitato
di righe; è possibile aggiungere uno spazio o delle interruzioni di riga in
qualsiasi punto in cui sia ammesso l'utilizzo di un singolo spazio vuoto, come
prima e dopo le barre, le parentesi e gli operatori aritmetici o tra i nomi di
variabili
la maggior parte dei sottocomandi vengono separati da barre (/). La barra
che precede il primo sottocomando di un comando è in genere opzionale
5
Scheda 2 -
Help
Per ottenere aiuto sui comandi
SAS
L'intera documentazione riguardante SAS è adesso accessibile dal programma stes
so.
Scegliendo dal menù ?>>Guida e documentazione SAS viene avviata una apposita
finestra con le schede Sommario (l'intero help per capitoli), Indice (tutti i comandi
e la maggior parte delle problematiche d'interesse in ordine alfabetico con finestra
di ricerca) e Cerca (finestra di ricerca che poi riporterà tutti gli argomenti collegati
alla stringa richiesta).
Data la vastità della documentazione, spesso le operazioni di ricerca riportano cen
tinaia di argomenti ed è necessario particolarizzare la stringa di ricerca collegando
più termini tramite gli operatori logici.
R
help(comando), ed il suo equivalente ?comando, aprono una nuova finestra che
contiene una guida sul comando specificato.
Altri comandi di aiuto interessanti sono:
apropos(“stringa”)
che restituisce una lista di tutti gli oggetti il cui nome contiene la stringa richiesta e
help.search(“stringa”)
che cerca la stringa specificata in tutta la documentazione ossia tra nomi, titoli,
concetti e parole chiave.
Una via alternativa è scegliere dalla barra dei menù Aiuto>>Guida Html che apre
l'help in un browser e comprende un motore di ricerca (Search Engine &
Keywords).
6
Scheda 2 - Help
Per ottenere aiuto sui comandi
STATA
Digitando:
help argomento
si apre la finestra chiamata Viewer con la lista delle voci inerenti l'argomento speci
ficato, che deve essere un comando; le voci sono link a corrispondenti pagine di
help, che a loro volta possono contenere link ad ulteriori pagine. Se non trova una
corrispondenza, il programma propone di cercare su tutta la documentazione con il
comando
search “stringa”
che invece riporta nella finestra Results descrizioni di comandi STATA relativi al ter
mine specificato nella stringa. Il risultato comprende anche articoli dello STATA
Technical Bulletin e programmi ottenibili dagli archivi di STATA.
Via menù, si può ottenere l'intera guida (Help>>Contents) oppure l'analogo di
search (Help>>Search...) o l'analogo di help (Help>>Stata Command...)
SPSS
Scegliendo dal menù ?>>Argomenti si accede ad una finestra che presenta le sche
de Sommario (l'intero help per capitoli), Indice (tutti i comandi e la maggior parte
delle problematiche d'interesse in ordine alfabetico con finestra di ricerca) e Cerca
(finestra di ricerca che poi riporterà tutti gli argomenti collegati alla stringa richie
sta).
Esiste anche una Guida Rapida cliccando con il tasto destro sugli elementi di inte
resse delle varie finestre di lavoro.
Infine, scegliendo altre voci del menù d'aiuto è possibile visualizzare esempi, anali
si guidate, casi pratici, un aiuto specifico sulla sintassi e documentazione sugli al
goritmi implementati.
7
Scheda 3 -
“Diario” della sessione di lavoro
Ogni programma permette di mantenere traccia delle operazioni compiute durante
una sessione di lavoro
SAS
La finestra di Log riporta tutte le linee di codice mandate in esecuzione, eventuali
messaggi di errore oppure la comunicazione del corretto svolgimento delle opera
zioni richieste. La finestra è di sola lettura ed il contenuto va perduto alla chiusura
del programma ma si può salvare in qualunque momento come testo con le con
suete operazioni di “Salva” o “Salva con nome”.
R
La sequenza dei comandi mandati in esecuzione durante una sessione di lavoro è
memorizzata ed accessibile tramite i tasti cursore (Freccia su e Freccia giù). L'inte
ra sequenza di comandi dati, inoltre, è memorizzata in un file di testo con estensio
ne .Rhistory che può anche essere riproposta tramite copia e incolla al prompt dei
comandi.
STATA
La sequenza dei comandi mandati in esecuzione durante una sessione di lavoro è
memorizzata ed accessibile tramite i tasti Pag+ e Pag-.
La finestra Results riporta tutte le linee di codice mandate in esecuzione, eventuali
messaggi di errore oppure i risultati delle funzioni richieste. La finestra è di sola let
tura ed il contenuto va perduto alla chiusura del programma ma si possono memo
rizzare tutti comandi inviati ed il relativo output in un file di testo esterno chiamato
log-file. La sintassi per la creazione di un file di log è:
log using nomefiledilog
Si può interrompere e far riprendere la memorizzazione più tardi, riaprirlo e ag
giungere o rimpiazzare le informazioni.
Le stesse operazioni si possono richiedere via menù: File>>Log>>Begin...
SPSS
Nella finestra Generale evocata dal menù Modifica>>Opzioni è possibile configurare
un giornale di sessione (con estensione .jnl) che memorizza tutte le richieste fatte
durante una sessione di lavoro, tradotte nel linguaggio di SPSS.
E' possibile scegliere se sovrascriverlo ad ogni sessione o aggiungere le nuove in
formazioni che quindi vengono distinte da un titolo che riporta la data in cui sono
state memorizzate.
8
Scheda 4 -
Apri File
Per caricare un file di dati che è già nel formato interno del programma
SAS
L'estensione dei file in formato SAS è .sas7bdat2.
Per accedere ad un file in .sas7bdat è sufficiente usare il comando che crea un col
legamento tra SAS e la directory in cui il file si trova:
LIBNAME nomelib 'x:\percorsocompletodelladirectory';
Da quel momento si può accedere direttamente al file dalla finestra Explorer del
SAS, in cui sarà comparsa un'icona corrispondente a “nomelib”.
Per caricare un file .sas7bdat in un DATA STEP il comando è SET:
DATA (nomelib.)nuovofile;
SET (nomelib.)filesistente; RUN;
Per specificare su quale file .sas7bdat vogliamo applicare le operazioni di una data
procedura bisogna usare l'opzione DATA= in un PROC STEP:
PROC nomeprocedura DATA=(nomelib.)filesistente;
...codice procedura...
RUN;
R
In R non si carica il dataset ma un oggetto (workspace – area di lavoro) che contie
ne anche i dati e ha estensione .Rdata:
load(“x:\\percorsodirectory\\nome.Rdata”)
All'avvio R carica l'area di lavoro (e anche la .Rhistory) della directory corrente, se
esiste. L'ideale è che ciascun progetto abbia una directory dedicata e aprire R di
volta in volta dove interessa, ritrovando così tutto e solo ciò che si è fatto sul rela
tivo progetto.
STATA
L'estensione dei file in formato STATA è .dta.
Per caricare un file tramite codice bisogna digitare nella finestra Command il co
mando:
use "x:\percorsodirectory\nomefile.dta"
Oppure da menù tramite File>>Open...
SPSS
L'estensione dei file in formato SPSS è .sav e si può scegliere di aprire il file dal
menù File>>Apri>>Dati.
Per caricare un file tramite codice bisogna evocare la finestra di sintassi (dalla bar
ra dei menù: File>>Nuovo>>Sintassi) e dare i comandi:
GET FILE='x:\percorsodirectory\nomefile.sav'.
2 Nella versione 6 era .sd2 e precedentemente .ssd
9
Scheda 5 -
Acquisizione File ASCII - formato libero
Per acquisire file ASCII che si presentano in formato libero oppure in formato colonna
ma con un delimitatore ed un simbolo per i dati mancanti.
In tutti i casi è sufficiente specificare la lista dei nomi (validi) delle variabili nella giu
sta sequenza.
SAS
Per acquisire dati in formato libero in SAS:
DATA nomedatset;
INFILE 'x:\percorso\filedaacquisire.txt' ;
INPUT v1 v2 v3 ...; RUN;
R
nomedati<-read.table("x:\\percorso\\filedaacquisire.txt")
Se la prima riga presenta i nomi delle variabili e la prima colonna un'etichetta di
riga non occorrono ulteriori specificazioni altrimenti bisogna utilizzare le opzioni op
portune (vedi scheda 6).
Il comando read.table() non è il comando giusto per acquisire grandi matrici, so
prattutto quelle con molte colonne; read.table() infatti è stato pensato per leg
gere dataset che presentano colonne di classi differenti (e infatti nomedati sarà di
classe data.frame). Negli altri casi è meglio usare scan().
Si noti che l'operatore di assegnazione è formato dai due caratteri “<” e “-”. In
molti contesti, però, è possibile utilizzare il più comune operatore “=”.
STATA
Il comando è:
infile v1 v2 v3 using "x:\percorso\filedaacquisire.txt",
clear
Oppure si può usare il menù File>>Import>>Unformatted ASCII data, che evoca
una finestra di dialogo da compilare.
SPSS
Si può scegliere dal menù File>>Leggi dati testo... che evoca un wizard in cui spe
cificare le caratteristiche del file da acquisire.
Il corrispondente codice è:
GET DATA /TYPE = TXT
/FILE = 'x:\percorsofiledaacquisire.txt'
/VARIABLES = v1 v2 v3 ...
. EXECUTE.
10
Scheda 6 -
Acquisizione File ASCII - formato colonna
Per acquisire file ASCII che si presentano in formato colonna.
Subito dopo il nome della variabile va specificato il numero di colonna o il range di co
lonne corrispondenti nel dataset ASCII.
SAS
DATA
nomedataset;
INFILE 'x:\percorso\filedaacquisire.txt' ;
INPUT var1 1-2 var2 5 var3 7-11...; RUN;
R
Il comando è read.fwf() (dove fwf sta per fixed-width-format)
nomedati<-read.fwf("x:\\percorso\\filedaacquisire.txt",
widths, sep=””)
Con width=c(dim1, dim2, ...) si definiscono le dimensioni delle variabili nell'or
dine in cui si presentano e con sep qual è il separatore tra loro.
STATA
Il comando è:
infix var1 1-3 var2 4 using
"x:\percorso\filedaacquisire.txt"
Oppure da menù File>>Import>>ASCII data in fixed format, che evoca una fine
stra di dialogo da compilare.
SPSS
Dal menù File>>Leggi dati testo... evoca un wizard in cui specificare le caratteristi
che del file da acquisire. Per indicare il range delle colonne, al quarto passo (dei
sei) del wizard si inserisce una freccetta (cliccando con il mouse) tra le colonne di
numeri3.
Il corrispondente codice è:
GET DATA /TYPE = TXT
/FILE = 'x:\percorso\filedaacquisire.txt'
/ARRANGEMENT = FIXED
/VARIABLES = var1 0-4
var2 5-6
var3 7-9
.
EXECUTE.
3 Quando le variabili sono di una sola colonna è molto difficile ottenerle correttamente con lo strumento grafico del wi
zard, meglio (o addiruttura necessario) passare per la sintassi.
11
Scheda 7 -
Opzioni per l'acquisizione di file ASCII
SAS
Se la prima osser
vazione non è sul
la prima riga
FIRSTOBS= numero
di riga (opzione di
INFILE)
Variabili carattere4
$ dopo il nome della
variabile.
La dimensione di de
fault è 8, altrimenti
bisogna usare il mo
dificatore di formato
:#.5
Le date6
Si usa il modificatore
di formato nell'istru
zione INPUT dopo il
nome della variabile
:formatodata.
Se c'è una riga
con i nomi delle
variabili
R
skip=numero
da saltare
STATA
righe
SPSS
/FIRSTCASE= nume
ro di riga
str#
prima
del
nome della variabile
A# dopo il nome del
la variabile
La variabile si acqui
sisce come fattore e
poi si trasforma in
data con la funzione
as.Date()
La data viene me
morizzata
come
stringa e poi trasfor
mata con il comando
generate e la fun
zione date()
Il formato va specifi
cato dopo il nome
della variabile
Va saltata indicando
dov'è la prima os
servazione con FIR
STOBS=
header=T
La riga NON deve
esserci con infile e
infix, DEVE esserci
con insheet
/READNAMES =
on/off
solo con file .xls e il
default è on
Delimitatore
carattere
DELIMITER='char'
(opzione di INFILE)
sep=”char”
Delimitatore
tabulazione
DELIMITER='09'x
(opzione di INFILE)
sep='\t'
(con
read.delim())
4 # indica il numero che definisce il formato della variabile
5 sia i due punti che il punto fanno parte della sintassi
6 Per i dettagli sui formati si rimanda ai rispettivi manuali
12
/DELIMITERS =
"char"
..., tab
(con insheet)
/DELIMITERS
"\t"
=
Scheda 8 -
Acquisizione File di altro formato
Per acquisire file di formati diversi come ad esempio .xls, .dbf, etc.
SAS
Il wizard evocato da File>>Importa dati... permette di importare automaticamente
dati che siano in formato di varie versioni di Excel, Access, Lotus e dBase.
Specularmente, il wizard evocato da File>>Esporta dati... permette di esportare
automaticamente dati da SAS in formati di varie versioni di Excel, Access, Lotus e
dBase.
R
Il pacchetto aggiuntivo (library) foreign fornisce delle utili funzioni per importare
dati da EpiInfo, Minitab, S-PLUS, SAS, SPSS, STATA e Systat. Va caricata la libreria
e poi utilizzata la funzione necessaria, ad esempio:
library(foreign)
read.spss()
Con write.foreign() è possibile anche esportare in altri formati, attualmente in
SPSS, STATA e SAS.
Per approfondimenti si veda R Data Import/Export nella Guida Html oppure dal
menù Aiuto>>Manuali (in PDF)>> R Data Import/Export .
STATA
C'è la possibilità di leggere i SAS XPORT Transport format files con fdause.
Per altri casi STATA presuppone che si passi per Excel oppure si usi un programma
specifico per la trasformazione dei dati da un formato all'altro.
SPSS
Tramite il comando File>>Apri>>Dati... è possibile aprire automaticamente dati di
vari formati tra cui file Excel, Lotus, dBase, SAS e STATA.
Il comando File>>Salva con nome... invece, permette anche di esportare i dati da
SPSS in altri formati tra cui Excel, Lotus, dBase, SAS e STATA scegliendo opportu
namente l'estensione nel box “Salva come”.
13
Scheda 9 -
I dati mancanti
SAS
SAS considera i dati mancanti come il valore più piccolo memorizzabile e come tale
viene considerato nei confronti logici.
Operazioni con dati mancanti restituiscono dati mancanti.
Di default, nelle procedure le osservazioni con dati mancanti vengono eliminate e le
operazioni svolte solo sui dati validi.
R
R rappresenta i valori mancanti con NA, ossia Not Available.
Operazioni con dati mancanti restituiscono dati mancanti.
Le varie funzioni prevedono un'opzione (na.action) tramite la quale si indica come
vanno considerati i dati mancanti; il default va verificato caso per caso ed è possi
bile modificarlo.
STATA
STATA considera i dati mancanti come il valore più grande memorizzabile e come
tale viene considerato nei confronti logici.
Operazioni con dati mancanti restituiscono dati mancanti.
La maggior parte dei comandi agisce ignorando le osservazioni con uno o più dati
mancanti.
SPSS
Operazioni con dati mancanti restituiscono dati mancanti.
Di default, nelle procedure le osservazioni con dati mancanti vengono eliminate e le
operazioni svolte solo sui dati validi.
14
Scheda 10 -
Rinominare Variabili
Per cambiare il nome di una variabile in un dataset che è stato acquisito
SAS
Il comando è:
RENAME vecchionome=nuovonome;
e va usato in un DATA STEP. Si può ripetere l'istruzione quante volte si desidera
oppure scrivere un elenco separato da spazi prima del “;”.
R
Tra i molti modi per cambiare i nomi in R, forse vale la pena sottolineare quello che
richiama la diversa organizzazione e struttura dei dati rispetto agli altri programmi.
In questo esempio prima si salvano i nomi delle variabili in un vettore a cui si acce
de tramite gli indici e poi si riassegna il nuovo vettore di nomi al dataframe a cui si
riferiscono:
nomivar<-names(dataframe)
nomivar[j]<-”nuovonome”
names(dataframe)<-nomivar
Naturalmente si possono cambiare anche tutti i nomi definendo il contenuto di no
mivar.
STATA
Se si desidera rinominare una variabile esistente il comando è rename:
rename vecchionome nuovonome
e si può rinominare una sola variabile alla volta.
SPSS
Nel foglio di “Visualizzazione variabili” è sufficiente sostituire il vecchio nome con
quello nuovo nella colonna che riporta il nome delle variabili.
Il codice corrispondente è:
RENAME VARIABLES (vecchionome=nuovonome) .
Si può scrivere un elenco di coppie separato da spazi e ciascuna racchiusa tra pa
rentesi.
15
Scheda 11 -
Selezione Variabili
Per creare un dataset costituito da un sottoinsieme delle variabili originarie
SAS
Si può scegliere se usare KEEP e/o DROP come comandi, ad esempio:
DATA nuovo; SET vecchio;
DROP varchenonvoglio1 varchenonvoglio2; RUN;
oppure come opzioni (in questo caso posso anche creare più dataset contempora
neamente):
DATA nuovo1 (KEEP=varchevoglio1 varchevoglio2)
nuovo2 (KEEP=varchevoglio1 varchevoglio3);
SET vecchio; RUN;
R
Considerando di avere i dati in un oggetto di classe data.frame:
subset(oggettodataframe,select=c(varchevoglio1,
varchevoglio2,...))
Si può procedere anche utilizzando gli indici di colonna:
nuovodataframe<-dataframe[,-n]
Le parentesi quadre racchiudono gli indici di riga e colonna; nella scrittura riportata
“n” indica il numero della colonna da cancellare e il segno meno (-) prima del nu
mero indica che venga cancellata anziché selezionata.
STATA
I comandi sono keep e/o drop di seguito ai quali specificare le variabili rispettiva
mente da tenere o da eliminare:
keep varchevoglio1 varchevoglio2
oppure
drop varchenonvoglio1 varchenonvoglio2
Oppure da menù Data>>Variable utilities>>Keep or drop variables.
SPSS
Lavorando sulla matrice di dati nella finestra principale le variabili si possono elimi
nare dando il comando di “cancella” dal menù dopo averle selezionate. In fase di
acquisizione è sottointesa l'opzione di tenere tutte le variabili che si presentano ma
si può decidere di selezionare quelle di interesse:
GET FILE='file.sav'
/DROP=varlist
16
Scheda 12 -
Selezione Osservazioni
Per creare un dataset costituito da un sottoinsieme delle osservazioni originarie
SAS
All'interno di un DATA STEP si scrive la condizione che individua le osservazioni di
interesse e si dà il comando per tenerle o per cancellarle:
IF condizione <THEN OUTPUT>; /*per tenerle*/
IF condizione THEN DELETE;
/*per cancellarle*/
R
Considerando di avere i dati in un oggetto di classe data.frame:
subset(oggettodataframe, condizione)
verranno tenute le osservazioni per le quali è vera la condizione specificata.
Si può procedere anche utilizzando gli indici di riga:
nuovodataframe<-dataframe[condizione,]
Le parentesi quadre racchiudono gli indici di riga e colonna; nella scrittura riportata
condizione indica la condizione che deve essere verificata perché l'osservazione
venga memorizzata in nuovodataframe.
STATA
Si usano i comandi keep e drop, ponendo una condizione; verranno tenute (o eli
minate) le osservazioni per le quali è vera la condizione specificata:
keep if condizione
drop if condizione
Oppure da menù Data>>Variable utilities>>Keep or drop observations.
SPSS
Evocando dal menù Dati>>Seleziona casi... si apre una finestra in cui specificare la
condizione desiderata. A questo punto si può scegliere tra le varie opzioni, ossia
che vengano eliminate le osservazioni non selezionate o che quelle selezionate
vengano copiate in un nuovo file o che venga creata una variabile filtro (filter_$)
che distingue i casi a seconda che la condizione sia verificata o meno. A questo
punto sarà segnalato che il filtro è attivo (sulla barra di stato, in fondo alla finestra
dei dati) e qualsiasi operazione successiva avrà effetto sulle osservazioni per le
quali la variabile filtro è uguale a 1.
Per disattivare il filtro occorre tornare nella finestra di “Seleziona casi...” e scegliere
“Tutti i casi”.
17
Scheda 13 -
Condizioni
Per specificare condizioni che devono essere verificate prima di compiere una determi
nata operazione
SAS
Esistono due possibilità: il comando IF ed il comando SELECT (all'interno di un
DATA STEP):
IF condizione THEN operazione1;<ELSE operazione2>;
oppure:
SELECT;
WHEN (condizione1) operazione1;
WHEN (condizione2) operazione2;
...
OTHERWISE altraoperazione;
END;
Se invece si vuole porre la condizione all'interno di un PROC STEP si usa il coman
do:
WHERE condizione;
R
Il comando which() restituisce gli indici degli elementi che soddisfano una deter
minata condizione; possiamo salvarli in un vettore da utilizzare in comandi succes
sivi:
which(condizione)->z
dataframe$nomevar[z]
Qualsiasi condizione inoltre può essere specificata tra parentesi quadre come indi
catore di riga e/o colonna. I risultati dell'espressione che indica la condizione sa
ranno appunto gli indicatori di riga e/o colonna per l'oggetto considerato.
Un altro comando interessante è ifelse() in cui si specificano una condizione ed il
valore da sostituire agli elementi dell'oggetto che la soddisfano e uno per quelli che
non la soddisfano.
ifelse(condizione,nuovovaloresesì,nuovovaloreseno)
18
Scheda 13 – Condizioni
Per specificare condizioni che devono essere verificate prima di compiere una determi
nata operazione
STATA
Ogni comando di STATA prevede l'opzione per specificare una condizione:
comando if condizione
in questo modo si restringe l'esecuzione di comando a quelle osservazioni per le
quali il valore dell'espressione specificata è vera.
In tutte le finestre è offerta la possibilità di porre delle condizioni (sottofinestra
“by/if/in”).
SPSS
Evocando dal menù Dati>>Seleziona casi... si apre una finestra in cui specificare la
condizione desiderata. Viene creata una variabile filtro (filter_$) che distingue i
casi a seconda che la condizione sia verificata o meno. A questo punto sarà segna
lato che il filtro è attivo (sulla barra di stato, in fondo alla finestra dei dati) e qual
siasi operazione successiva avrà effetto sulle osservazioni per le quali la variabile
filtro è uguale a 1.
Per disattivare il filtro occorre tornare nella finestra di “Seleziona casi...” e scegliere
“Tutti i casi”.
19
Scheda 14 -
Ordinamento
Per ordinare un dataset secondo una (o più) variabili.
SAS
La procedura è la PROC SORT:
PROC SORT DATA=originario OUT=ordinato;
BY <DESCENDING> variabile1 <variabile2> ...; RUN;
Si può ordinare il dataset secondo più variabili nidificate.
Per default l'ordinamento sarà crescente o in ordine alfabetico; l'opzione DESCEN
DING prima del nome della variabile indica se l'ordinamento debba essere fatto al
contrario.
R
Per ordinare vettori o fattori il comando è sort(). Il default è in ordine crescente,
per invertire l'ordine c'è l'opzione descreasing, ad esempio:
sort(nomevettore, decreasing=TRUE)
Se invece si desidera ordinare un data.frame secondo una delle variabili presenti il
comando è order():
datiordinati<-dataframe[order(dataframe$variabile),]
STATA
Il comando sort ordina le osservazioni del dataset attivo solo in ordine crescente,
secondo la variabile specificata:
sort variabile
Si può ordinare il dataset secondo più variabili nidificate.
Per scegliere se ordinare in modo crescente o decrescente:
gsort -variabile
Il segno meno davanti al nome della variabile indica che si desidera l'ordine descre
scente.
Oppure dal menù Data>>Sort>>Ascending sort (per l'ordine crescente) e
Data>>Sort>>Ascending e descending sort (per poter scegliere tra ordine crescen
te e decrescente).
SPSS
Dal menù si può scegliere Dati>> Ordina casi...
Il codice corrispondente è:
SORT CASES BY
variabile (A) .
(A) indica che l'ordinamento sarà crescente (ascending) ma si può scegliere che sia
decrescente (D - descending)
20
Scheda 15 -
Unione Dataset (aggiungere nuove osservazioni)
Per unire in un unico dataset informazioni che vengono da dataset diversi: in questo
caso per aggiungere ad un primo dataset nuove osservazioni su cui sono state rilevate
le stesse variabili
SAS
Supponiamo che le stesse variabili siano state rilevate su osservazioni memorizzate
in diversi dataset di nome dati1, dati2, etc.
DATA nuovo;
SET dati1 dati2 ...;
RUN;
Sia dati1 che dati2 devono essere già in formato .sas7bdat
R
Si possono collegare informazioni memorizzate in oggetti diversi tramite il coman
do:
rbind(dati1, dati2)
Se sono data.frame occorre che le variabili abbiano lo stesso nome.
STATA
Si supponga di avere caricato in memoria dati1 e di voler aggiungere le informazio
ni memorizzate in dati2:
append using dati2
dati2 deve essere già in formato .dta
Oppure dal menù Data>>Combine Datasets>>Append datasets.
SPSS
Dal menù Dati>>Unisci file>>Aggiungi casi... che evoca una finestra in cui specifi
care il dataset (caricato o esterno) da aggiungere ed ulteriori dettagli riguardo alle
variabili.
Il codice corrispondente è:
ADD FILES /FILE=*
/FILE='x:\percorso\filedaaggiungere.sav'.
L'asterisco (*) indica il file corrente.
Un'alternativa “pratica” consiste nell'aggiungere dati da un dataset all'altro utiliz
zando semplicemente il copia-incolla delle osservazioni di interesse dopo aver aper
to i dataset in due finestre. Bisogna però selezionare nel file di destinazione un'area
congrua (cioè il numero di righe necessarie).
21
Scheda 16 -
Unione Dataset (aggiungere nuove variabili)
Per unire in un unico dataset informazioni che vengono da dataset diversi: in questo
caso per aggiungere nuove variabili rilevate sulle stesse osservazioni del primo data
set.
Le nuove variabili devono avere nomi diversi da quelle già esistenti a meno che non
siano effettivamente la stessa variabile nel qual caso la seconda (la duplicazione) ver
rà scartata dal programma.
SAS
Supponiamo d'aver rilevato nuove variabili (dati2) sulle stesse osservazioni conte
nute in dati1 e di voler unire tali informazioni:
DATA nuovo;
MERGE dati1 dati2;
BY variabilechiave;
RUN;
la variabile chiave deve essere univoca, presente in entrambi i dataset con lo stes
so nome e formato e i dataset devono essere ordinati secondo tale variabile.
R
Ci sono due modi per ottenere un risultato simile: si possono semplicemente af
fiancare e collegare colonne con cbind()...
cbind(oggetto1,oggetto2)
oppure utilizzare merge() che permette di specificare una variabile chiave
merge(dati1, dati2, by.x=”variabilechiavedati1”,
by.y=”variabilechiavedati2”)
A differenza degli altri programmi, non occorre che i dati siano già ordinati secondo
la variabile chiave.
22
Scheda 16 - Unione Dataset (aggiungere nuove variabili)
Per unire in un unico dataset informazioni che vengono da dataset diversi: in questo
caso per aggiungere nuove variabili rilevate sulle stesse osservazioni del primo data
set.
Le nuove variabili devono avere nomi diversi da quelle già esistenti a meno che non
siano effettivamente la stessa variabile nel qual caso la seconda (la duplicazione) ver
rà scartata dal programma.
STATA
Supponiamo di aver caricato in memoria un primo dataset al quale vogliamo ag
giungere le informazioni contenute in un secondo dataset, già in formato .dta. La
sintassi è:
merge variabilechiave using secondofile
Il secondo file verrà unito al primo secondo la variabile chiave che deve essere uni
voca, presente in entrambi i dataset con lo stesso nome e formato e i dataset de
vono essere ordinati secondo tale variabile.
Oppure dal menù Data>>Combine datasets>>Merge two datasets.
SPSS
Dal menù Dati>>Unisci file>>Aggiungi variabili... che evoca una finestra in cui
specificare il dataset (caricato o esterno) da aggiungere e poi la variabile chiave ed
ulteriori dettagli riguardo alle variabili.
Il codice corrispondente è:
MATCH FILES /FILE=*
/FILE='FileDati2'
/BY variabilechiave.
L'asterisco (*) indica il file corrente.
Anche in questo caso si possono aggiungere informazioni da un dataset all'altro uti
lizzando semplicemente il copia-incolla delle variabili di interesse dopo aver aperto i
dataset in due finestre. Bisogna però selezionare nel file di destinazione un'area
congrua (cioè il numero di colonne necessarie) e non vi è certezza che siano colle
gate informazioni che appartengono effettivamente alla stessa osservazione.
23
Scheda 17 -
Creazione di una nuova variabile (ricodifica)
Per ricodificare una variabile esistente
SAS
Per ricodificare le variabili si possono usare i costrutti di selezione in combinazione
con le assegnazioni:
IF condizione1 THEN assegnazione1;
IF condizione...THEN assegnazione...; ELSE altrassegnazione;
oppure
SELECT;
WHEN (condizione1) assegnazione1;
...
OTHERWISE altrassegnazione; END;
Le condizioni possono anche essere molto complesse e possono coinvolgere tutte le
variabili esistenti e gli operatori logici e/o di confronto.
Si noti che ogni istruzione IF costituisce un comando a sè, mentre la sequenza di
WHEN appartiene ad un unico comando SELECT.
R
Si può trasformare un vettore da numerico a fattore e viceversa con le funzioni:
as.numeric(oggetto)
as.factor(oggetto)
as.integer(oggetto)
Il comando cut(), invece, assegna a ciascuna osservazione la classe di apparte
nenza rispetto alla suddivisione in intervalli di una variabile quantitativa:
cut(variabile, breaks)
breaks permette di definire i limiti di ciascun intervallo oppure il numero di inter
valli in cui si intende dividere la variabile.
24
Scheda 17 - Creazione di una nuova variabile (ricodifica)
Per ricodificare una variabile esistente
STATA
In STATA esistono diverse possibilità: encode ricodifica una variabile carattere in
una numerica (assegna un numero a ciascun gruppo identificato dalla variabile ca
rattere)
encode varchar, generate (nuovavarnum)
Oppure dal menù Data>>Create or change variables>>Other variable transforma
tion comands>>Encode value label from string variable.
decode invece crea una variabile di tipo carattere basata sulla variabile numerica e
sulle eventuali etichette attribuite ai suoi valori:
decode varnum, generate (nuovavarchar)
Oppure dal menù Data>>Create or change variables>>Other variable transforma
tion comands>>Decode string from labeles numeric variable.
Con recode infine, si possono stabilire le regole per ricodificare una variabile esi
stente; se si desidera che la ricodifica sia memorizzata in una nuova variabile oc
corre usare l'opzione generate(nuovavar)
recode nomevar regola1 [regola2]..., generate(nuovavar)
Oppure dal menù Data>>Create or change variables>>Other variable transforma
tion comands>>Recode categorical variable.
SPSS
Dal menù Trasforma>>Ricodifica>>Nelle stesse variabili... oppure In variabili diffe
renti...
Il codice corrispondente è;
RECODE var
(regola1) (regola2) ...
INTO
nomenuovavar .
EXECUTE .
Per sovrascrivere la variabile basta omettere INTO nomenuovavar.
25
Scheda 18 -
Creazione di una nuova variabile (trasformazione)
Per creare una nuova variabile che sia una trasformata di variabili esistenti
SAS
Per creare una nuova variabile è sufficiente scegliere un nome valido e assegnarvi
un valore all'interno di un DATA STEP. La prima assegnazione determina le carat
teristiche (natura e attributi) della variabile.
nomevariabile1 = valorenumerico ;
nomevariabile2 = 'stringa' ;
nomevariabile3 = formula matematica;
nomevariabile4 = altra variabile esistente;
In generale si può scrivere una qualsiasi espressione che sia combinazione di varia
bili esistenti, operatori e funzioni.
R
In qualsiasi momento è possibile creare un oggetto che sia elaborazione di oggetti
esistenti:
nuovoelemento<-espressione(elementi esistenti)
Se in particolare si desidera creare una nuova variabile in un data.frame (ad esem
pio di nome dati) si può usare la seguente scrittura:
dati$nuovavar<-espressione(elementi esistenti)
l'espressione può essere combinazione di oggetti esistenti, operatori e funzioni (si
faccia attenzione alle dimensioni degli oggetti).
STATA
Il comando generate permette di creare una nuova variabile che sia il risultato di
una funzione e/o una trasformazione algebrica di altre variabili; la sintassi è:
generate nuovavar=espressione
l'espressione può essere combinazione di variabili esistenti, operatori e funzioni.
Oppure dal menù Data>>Create or change variables>>Create new variable.
SPSS
Dal menù si sceglie Trasforma>>Calcola... e viene evocata una finestra che per
mette di scrivere espressioni anche molto complesse ed eventualmente porre delle
condizioni per l'effettivo calcolo.
La sintassi corrispondente è;
COMPUTE nuovavar = espressione .
EXECUTE .
Anche in questo caso l'espressione può essere combinazione di variabili esistenti,
operatori e funzioni.
26
Scheda 19 -
Informazioni sul dataset
Per ottenere informazioni su un dataset di interesse (numero di osservazioni e di va
riabili, nomi e attribuiti delle variabili, data di creazione e di modifica, etc)
SAS
PROC CONTENTS DATA=nomedataset; RUN;
R
Il comando str() restituisce natura e dimensioni dell'oggetto quindi, se è un data.
frame, il numero di osservazioni e di variabili mentre il comando attributes() re
stituisce una lista di tutte le caratteristiche non intrinseche dell'oggetto:
str(oggetto)
attributes(oggetto)
Infine class() restituisce la classe dell'oggetto ed eventualmente di tutti gli
oggetti che compongono l'oggetto.
STATA
Le informazioni sul dataset corrente si ottengono con il comando:
describe
mentre quelle su un file non caricato ma memorizzato in un punto accessibile sono
ottenibili specificandone il nome ed il percorso
describe using "x:\percorso\file.dta"
Oppure dal menù Data>>Describe data>>Describe variabile in memory.
SPSS
Selezionando dal menù File>>Visualizza informazioni file dati si può scegliere se
chiedere informazioni sul file attivo o un file esterno.
Il codice è:
SYSFILE INFO
'x:\percorso\file.sav'.
27
Scheda 20 -
Stampa del dataset
Per ottenere la stampa a video del contenuto di un dataset o di una sua parte
SAS
La procedura di interesse è:
PROC PRINT DATA=nomedataset;
<VAR lista di variabili>;
RUN;
Se si desidera vedere solo una parte dei dati allora bisogna specificare la lista delle
variabili di interesse dopo il comando opzionale VAR.
R
Per vedere a video il contenuto di un oggetto è sufficiente scrivere il nome dell'og
getto e dare l'Invio
STATA
Il comando è:
list
Se si desidera vedere solo una parte dei dati allora bisogna specificare la lista delle
variabili di interesse
list lista di variabili
Oppure dal menù Data>>Describe data>>List data.
SPSS
Per come è strutturato il programma i dati sono sempre visibili sullo schermo in
una delle finestre principali, comunque esiste il comando:
PRINT / lista variabili.
EXECUTE.
Questo stampa a video le variabili specificate nella lista.
Se interessa l'intero dataset allora si può scrivere all al posto della lista di variabi
li.
28
Scheda 21 -
Frequenze Semplici
Per ottenere le tabelle di frequenze semplici
SAS
La procedura di interesse è:
PROC FREQ DATA=file;
<TABLES lista variabili;> RUN;
Per default la procedura indica le modalità delle variabili specificate e per ciascuna
le frequenze semplici, le percentuale semplici, le frequenze cumulate e le percen
tuali cumulate.
Senza il comando opzionale TABLES vengono proposte le frequenze di tutte le va
riabili presenti nel dataset.
R
Il comando per ottenere le distribuzioni di frequenza è table():
table(nomevariabile)
Se si desiderano le frequenze percentuali e/o le cumulate occorre usare contestual
mente anche le funzioni length() e cumsum():
table(nomevariabile)/length(nomevariabile)
cumsum(table(nomevariabile))
cumsum(table(nomevariabile)/length(nomevariabile))
STATA
Se si desidera ottenere una serie di tabelle di frequenza semplici:
tab1 varlist
Per default vengono presentate le frequenze semplici e le percentuali semplici e cu
mulate.
Oppure dal menù Statistics>>Summaries, tables & tests>>Tables>>One way ta
bles.
SPSS
Dal menù Analizza>>Statistiche descrittive>>Frequenze...
Il codice corrispondente è:
FREQUENCIES
VARIABLES=lista variabili
/ORDER=
ANALYSIS .
Per default vengono presentate le frequenze semplici, le percentuali semplici, quel
le calcolate sui valori validi e quelle cumulate.
29
Scheda 22 -
Tabelle di contingenza
Per ottenere tabelle di frequenze incrociate
SAS
La procedura di interesse è la PROC FREQ e le variabili da incrociare vanno collegate
da un asterisco
PROC FREQ DATA=file;
TABLES var1*var2; RUN;
Per default le tabelle presentano frequenze semplici, percentuali sull'intera tabella,
percentuali di riga e colonna.
R
Il comando per ottenere le distribuzioni di frequenza è table() in cui specificare la
lista delle variabili coinvolte, separate da virgole:
table(var1,var2,...)
Un altro comando interessante è xtabs() per il cui approfondimento si rimanda al
manuale.
STATA
Specificando due variabili dopo tabulate si otterrà una tabella a doppia entrata:
tabulate var1 var2
Per default la tabella presenta solo le frequenze semplici, per avere le percentuali e
anche quelle di riga e colonna occorre usare le opzioni:
tabulate var1 var2, row column
Oppure dal menù Statistics>>Summaries, tables & tests>>Tables>>Two-way ta
bles with measures of association.
SPSS
Dal menù Analizza>>Statistiche descrittive>>Tavole di contingenza...
Il codice corrispondente è:
CROSSTABS
/TABLES=var1 BY var2 .
Per default la tabella presenta solo le frequenze semplici, per avere le percentuali e
anche quelle di riga e colonna occorre usare l'opzione:
/CELLS= COUNT ROW COLUMN TOTAL
Nella procedura a finestre occorre selezionare il tasto “Celle”.
30
Scheda 23 -
Indicatori di associazione
Per ottenere indicatori di associazione
SAS
La procedura di interesse è la PROC FREQ nell'ambito della quale va usato l'opportu
na opzione che è CHISQ:
PROC FREQ DATA=file;
TABLES var1*var2 /CHISQ; RUN;
E' possibile ottenere anche altri indicatori (ad esempio gli odds ratio); specificando
ALL dopo la barra, vengono calcolati tutti quelli possibili.
R
Il comando table() genera un oggetto di tipo tab al quale si può applicare la fun
zione chisq.test() o summary() per il calcolo del chi-quadro:
chisq.test(table(var1,var2))
summary(table(var,var2))
Il primo differisce dal secondo in quanto di default applica la correzione di continui
tà di Yates.
STATA
Specificando due variabili dopo tabulate si otterrà una tabella a doppia entrata e
per ottenere gli indicatori di associazione bisogna usare l'appropriata opzione; ad
esempio per il chi-quadro:
tabulate var1 var2, chi2
exact per il test esatto di Fisher
gamma per il gamma di Goodman e Kruskal's
taub per il tau-b di Kendall
V per la V di Cramer
Oppure dal menù Statistics>>Summaries, tables & tests>>Tables>>Two-way ta
bles with measures of association.
SPSS
Dal menù Analizza>>Statistiche descrittive>>Tavole di contingenza... si evoca la
finestra in cui specificare le tabelle da incrociare e gli indicatori desiderati tramite le
sottofinestre “Statistiche...” e “Test esatti...”
Il codice corrispondente è:
CROSSTABS
/TABLES=var1
BY var2
/STATISTIC=CHISQ CC PHI GAMMA BTAU.
In questo esempio abbiamo richiesto il calcolo del chi-quadro, del coefficiente di
contingenza, del coefficiente phi e del V di Cramér (assieme con l'opzione PHI), il
gamma e il tau-b.
31
Scheda 24 -
Indicatori univariati
Per ottenere gli indicatori univariati per le variabili quantitative
SAS
La procedura di interesse è PROC UNIVARIATE; per default la procedura calcola tutti
gli indicatori per tutte le variabili che considera numeriche. Per selezionare solo al
cune variabili di interesse occorre specificare il comando opzionale VAR:
PROC UNIVARIATE DATA=dataset;
<VAR lista variabili;> RUN;
R
Con il comando summary() si ottengono media, mediana, quantili, massimo e mi
nimo di un vettore oppure delle variabili numeriche di un data.frame:
summary(oggetto)
Se l'oggetto è di tipo fattore allora la funzione ne fornisce i livelli e le relative fre
quenze.
Se si desiderano varianze e covarianze:
var(oggetto)
cov(oggetto)
STATA
Con il comando summarize si ottengono i principali indicatori univariati delle varia
bili elencate. Se si omette di indicare una lista verranno prese in considerazione
tutte le variabili numeriche del dataset attivo. L'opzione detail fornisce informa
zioni sulla distribuzione (varianza, asimmetria, curtosi, percentili e valori estremi):
summarize lista variabili, detail
Oppure dal menù Data>>Describe data>>Summary statistics.
SPSS
Dal menù Analizza>>Statistiche descrittive>>Descrittive... si evoca la finestra in
cui scegliere le variabili su cui si vogliono calcolare gli indicatori. Per default vengo
no calcolati massimo, minimo, media e deviazione standard, per averne altri occor
re evocare “Opzioni...” e specificare quali si desiderano.
Il codice corrispondente è (ad esempio):
DESCRIPTIVES
VARIABLES=lista variabili
/STATISTICS=MEAN STDDEV VARIANCE MIN MAX .
32
Scheda 25 -
Test di normalità
Per ottenere uno o più test di normalità sulle variabili quantitative
SAS
La procedura di interesse è la PROC UNIVARIATE nell'ambito della quale va usato
l'opportuna opzione che è NORMAL:
PROC UNIVARIATE DATA=dataset NORMAL;
<VAR lista variabili;> RUN;
La procedura fornisce i test di Shapiro-Wilk,
Mises e Anderson-Darling.
Kolmogorov-Smirnov,
Cramér-von
R
Uno dei modi per verificare la normalità di una distribuzione è usare il test di Sha
piro Wilk tramite la funzione shapiro.test(). Altre funzioni interessanti sono con
tenute in librerie aggiuntive come ad esempio shapiro.wilk.test() nella libreria
cwhstat e lillie.test() della libreria nortest; quest'ultima calcola il test di Kol
mogorov-Smirnov.
STATA
Il test di normalità di Shapiro-Wilk si ottiene tramite il comando swilk:
swilk lista var
Oppure dal menù Statistics>>Summaries, tables & tests>>Distributional plots &
tests>>Shapiro-Wilk normality test. Nello stesso menù sono proposti anche altri
test e numerosi strumenti grafici.
SPSS
Dal menù Analizza>>Statistiche descrittive>>Esplora si evoca la finestra in cui
scegliere le variabili su cui si vuole calcolare il test di normalità quindi nella sottofi
nestra evocata dal pulsante “Grafici” si deve vistare l'opzione “Grafici di normalità
con test”. Verranno calcolati i test di Shapiro-Wilk e quello di Kolmogorov-Smirnov
con correzione di significatività di Lilliefors.
La sintassi corrispondente è:
EXAMINE
VARIABLES= lista variabili
/PLOT NPPLOT .
33
Scheda 26 -
Correlazione
Per ottenere la matrice dei coefficienti di correlazione
SAS
La procedura di interesse è la PROC CORR che calcola matrici di correlazione con
tutte le variabili numeriche che trova nel dataset oppure tra quelle eventualmente
specificate dopo il comando opzionale VAR.
PROC CORR DATA=dataset;
<VAR lista variabili;> RUN;
Per default i coefficienti calcolati sono quelli di Pearson ma è possibile dare altre
specifiche tramite varie opzioni.
R
Il comando è:
cor(nomedataframe)
cor(var1,var2)
Se si dà come oggetto un data.frame la funzione restituisce la matrice di correla
zione tra tutte le variabili nel data.frame, altrimenti è possibile chiedere la correla
zione tra due variabili. Il metodo di default è quello di Pearson ma è possibile chie
dere quello di Kendall o di Spearman con l'opzione method=”nome”.
34
Scheda 26 - Correlazione
Per ottenere la matrice dei coefficienti di correlazione
STATA
Il comando correlate calcola i coefficienti di correlazione per tutte le variabili nu
meriche del dataset attivo oppure per la lista di variabili eventualmente specificate
ma esclude le osservazioni per le quali c'è anche un solo dato mancante (esclusio
ne listwise):
correlate lista di variabili
Oppure dal menù Statistics>>Summaries, Tables & tests>>Summary stati
stics>>Correlations and coviarances.
Il comando pwcorr calcola i coefficienti di correlazione con tutti i valori validi cop
pia per coppia (esclusione pairwise) e su richiesta riporta anche la significatività:
pwcorr lista variabili, sig
Oppure dal menù Statistics>>Summaries, Tables & tests>>Summary stati
stics>>Pairwise correlations.
SPSS
Si evoca dal menù Analizza>>Correlazione>>Bivariata... una finestra in cui si pos
sono scegliere le variabili di interesse, i coefficienti di correlazione (Pearson, tau-b
di Kendall e Spearman) e il tipo di test di significatività; con le “Opzioni...” si può
scegliere anche di avere qualche statistica descrittiva e quale tipo di esclusione ef
fettuare.
Il codice corrispondente è (ad esempio):
CORRELATIONS
/VARIABLES=lista variabili
/PRINT=TWOTAIL NOSIG
/MISSING=PAIRWISE .
Per default i coefficienti calcolati sono quelli di Pearson.
35
Scheda 27 -
I grafici (presentazione)
Breve presentazione delle funzionalità grafiche
SAS
In SAS è possibile ottenere dei grafici tramite opportune istruzioni opzionali delle
specifiche procedure (se sono previste) oppure si possono utilizzare procedure
apposite che appartengono al modulo SAS\GRAPH e che producono grafici di alto li
vello.
Ciascuna procedura produrrà il grafico (od i grafici) richiesti evocando una propria
finestra grafica all'interno della quale i grafici verranno presentati nell'ordine in cui
sono stati richiesti, uno sotto all'altro, ma è possibile accedere direttamente al gra
fico desiderato tramite l'albero dei risultati della relativa finestra.
Anche chiudendo la finestra grafica, questa ripresenterà tutti i grafici precedente
mente prodotti non appena sarà nuovamente evocata, mentre alla chiusura del
programma tutti i grafici andranno perduti a meno che non siano stati esplicita
mente salvati.
R
Le opportunità grafiche sono una componente importante ed estremamente versa
tile di R. E' possibile utilizzare funzioni per un'ampia varietà di grafici ed inoltre co
struirne di nuovi.
Le funzioni grafiche possono essere utilizzate in modalità interattiva oppure in mo
dalità batch. La modalità interattiva è semplice perché all'avvio R attiva un sottoin
sieme grafico che apre un'apposita finestra grafica.
R, inoltre, offre una lista di parametri per personalizzare i propri grafici.
I comandi grafici sono suddivisi in tre gruppi principali:
•
le funzioni di alto livello per creare i nuovi grafici, possibilmente con assi, eti
chette, titoli, etc.
•
le funzioni di basso livello per aggiungere informazioni a grafici esistenti
come punti ulteriori, linee ed etichette
•
le funzioni interattive che permettono di aggiungere od estrarre informazioni
da grafici esistenti, utilizzando un periferica quale il mouse
I comandi di alto livello sono tali da generare un nuovo grafico dei dati passati
come argomento alla funzione e in cui sono automaticamente generati assi, titoli
ed etichette; le funzioni di alto livello quindi iniziano sempre un nuovo grafico, eli
minando se necessario il grafico precedente.
36
Scheda 27 – I grafici (presentazione)
Breve presentazione delle funzionalità grafiche
STATA
STATA consente di creare numerosi tipi di grafici; offre una grande flessibilità non
solo per l'impaginazione dei grafici ma soprattutto per il loro contenuto. Integra nei
grafici le curve di aggiustamento e di lissage, gli intervalli di confidenza e tutti gli
altri elementi grafici associati ai dati. Si possono modificare i titoli, i colori o i sim
boli in tutta semplicità grazie alle finestre di dialogo. Infine, è possibile esportare i
risultati in formati diversi compresi PostScript e PNG.
I grafici sono memorizzati nella memoria centrale o sul disco fisso. Quando si dise
gna un grafico questo verrà conservato in memoria centrale con il nome “Graph” e
verrà sostituito dal comando graph successivo.
STATA permette però di avere più finestre grafiche contemporaneamente; l'opzione
name() crea un grafico dotato di un proprio nome e presentato in una propria fine
stra.
Tutti i comandi sono accessibili via menù e finestre di dialogo: Graphics>>Manage
Graphs >>...
Se non è salvato esplicitamente qualsiasi grafico sarà cancellato alla chiusura della
sessione di lavoro ed è cancellato anche nel caso si usino i comandi clear o di
scard.
SPSS
In SPSS è possibile ottenere un'ampia varietà di grafici tramite le finestre di dialo
go del menù Grafici.
Come in SAS, è possibile ottenere alcuni grafici tramite opportune istruzioni opzio
nali (se previste) di procedure di analisi oppure si possono utilizzare comandi appo
siti.
I grafici richiesti saranno riportati nella finestra di Output Viewer SPSS e verranno
presentati, alternati agli altri risultati di tipo testuale, tutti nell'ordine in cui sono
stati richiesti; è possibile accedere direttamente al grafico desiderato tramite l'albe
ro dei risultati della relativa finestra.
E' possibile inoltre accedere al singolo grafico cliccandoci sopra ed evocando così
l'Editor dei grafici tramite il quale si può modificarne l'aspetto.
Alla chiusura del programma tutti i grafici andranno perduti a meno che non siano
stati esplicitamente salvati.
37
Scheda 28 -
I grafici (quali?)
Come ottenere i grafici veri e propri
SAS
Le principali e più comuni procedure grafiche sono:
PROC GCHART che produce diagrammi a barre e diagrammi a torta (ma non solo);
PROC GPLOT per produrre i diagrammi di dispersione;
PROC BOXPLOT che non appartiene a SAS\GRAPH ma a SAS\STAT produce grafici a
scatole e baffi che vengono comunque presentati nella finestra grafica (attenzione:
la procedura non è attualmente in grado di fornire boxplot “singoli” ma necessita di
una variabile di raggruppamento; per ottenere, quindi, il boxplot di una sola varia
bile, è necessario creare una finta variabile che contenga un valore costante per
tutti i valori della variabile di interesse7).
Naturalmente ciascuna procedura prevede poi ulteriori caratterizzazioni con propri
comandi specifici.
R
La funzione grafica più comunemente usata è plot(), che è una funzione generica,
il tipo di grafico dipenderà dal tipo o dalla classe dei dati forniti:
plot(xvettorenumerico) produrrà una grafico dei valori memorizzati nel vettore
contro il relativo indice;
plot(xvettorenumerico,yvettorenumerico) produrrà un grafico di dispersione
tra y e x;
plot(fattore) produrrà un grafico a barre del fattore;
plot(fattore, yvettorenumerico) produrrà dei diagrammi a scatola di y per
ogni livello del fattore;
hist(xvettore) produrrà un istogramma del vettore numerico x; con questa fun
zione è opportuno dare anche le istruzioni opzionali nclass= (numero di classi) op
pure breaks= (i precisi intervalli);
pie() per i diagrammi a torta;
Vi sono inoltre altre due funzioni molto utili quali:
pairs(X) che produce una matrice in cui vengono confrontate a due a due tutte le
variabili che costituiscono le colonne di X con una scala costante;
coplot(a~b|c) che produce diagrammi di dispersione tra due variabili dati i valori
di una terza (qui tra a e b, dati i livelli di c, se è un fattore o dati determinati inter
valli, se c è numerica)
7 Si veda la Technical FAQ #4513 del sito del supporto tecnico di SAS
38
Scheda 28 – I grafici (quali?)
Come ottenere i grafici veri e propri
STATA
Ci sono diversi tipi (“famiglie”) di grafici, ciascuno dei quali prevede poi ulteriori ca
ratterizzazioni con propri comandi specifici:
graph twoway per la rappresentazione di coppie di variabili quantitative
graph bar per la creazione di istogrammi
graph matrix per la creazione di grafici di dispersione
graph box per la creazione di boxplot (diagrammi a scatole e baffi)
graph pie per la creazione di grafici a torta
Tutti i comandi appena citati sono accessibili via menù e finestre di dialogo: Gra
phics>>...
SPSS
Tutti i grafici sono accessibili via menù e finestre di dialogo da Grafici.
Se si desidera utilizzare il codice allora il comando principale è GRAPH al quale va
aggiunta l'opzione desiderata; i più importanti sono:
GRAPH
/BAR per i diagrammi a barre
/PIE per i diagrammi a torta
/HISTOGRAM per gli istogrammi
/SCATTERPLOT per i diagrammi di dispersione
Ciascuno di questi prevede poi ulteriori caratterizzazioni con proprie opzioni specifi
che.
39
Scheda 29 -
I grafici (esportazione)
Per esportare i grafici in vista di includerli in rapporti, relazioni, etc.
SAS
E' possibile esportare un grafico da SAS ad un'altra applicazione tramite il “copia ed
incolla” (via clipboard).
Oppure si può scegliere di esportare l'immagine, dopo averla precedentemente se
lezionata, tramite menù: File>>Export as Image... che propone una serie di forma
ti tra cui Metafile, Bmp, Tif, Jpeg, Gif e PS.
R
In generale è possibile esportare un grafico da R ad un'altra applicazione tramite il
“copia ed incolla” (via clipboard).
R può salvare i grafici in file di formato Postscript o PDF: questi due formati sono
quelli più richiesti in ambito professionale perché vengono riprodotti correttamente
indipendentemente dalla piattaforma e sono formati di grafica vettoriale quindi in
dipendenti dalla risoluzione con cui sono stati generati.
Per creare un file PDF è sufficiente scrivere il comando pdf() e da quel momento in
poi tutti i comandi grafici vengono indirizzati al file PDF; al termine è necessario
chiudere la periferica grafica:
pdf(“nomedelfile.pdf”)
plot(x,y)
dev.off()
Analogamente con postscript().
E' possibile salvare anche tramite menù, dopo aver selezionato la finestra grafica di
interesse: File>>Salva con nome... e quindi scegliere il formato desiderato tra Me
tafile, Postscript, PDF, Png, Bmp e Jpeg.
40
Scheda 29 – I grafici (esportazione)
Per esportare i grafici in vista di includerli in rapporti, relazioni, etc.
STATA
Il modo più semplice per esportare un grafico da STATA ad un'altra applicazione è
via clipboard. Dopo la creazione del grafico si deve selezionare la finestra grafica,
quindi si evoca il menù con il tasto destro del mouse e si seleziona la voce “Copy”.
STATA farà una copia del file come Enhanced Metafile (EMF); questo assicura che
l'applicazione che riceverà il grafico l'avrà con la risoluzione più alta possibile. Se
l'applicazione destinataria non è in grado di interpretare tale formato allora occorre
cambiare alcune impostazioni: Prefs>>Graph Preferences si scelga l'aletta clip
board e si selezioni Windows Metafile (WMF).
Dopo aver copiato il grafico nella clipboard si può passare all'applicazione in cui si
vuole importarlo e dove lo si può “Incollare”.
STATA può salvare un grafico anche come Encapsulated PostScript (EPS). Per sal
varlo come tale occorre selezionare la voce File>>Save Graph... e scegliere il for
mato .eps dalla lista proposta.
SPSS
E' possibile esportare un grafico da SPSS ad un'altra applicazione tramite il “copia
ed incolla” (via clipboard).
Oppure si può scegliere di esportare l'immagine tramite menù: File>>Esporta...
Nella finestra evocata da tale menù occorre scegliere se esportare tutto, solo l'out
put testuale o solo i grafici. Scegliendo “solo i grafici” allora si potrà specificare se
tutti i grafici o tutti i grafici visibili e quindi il formato tra Enhanced o Windows Me
tafile, PCT, Png, Bmp, Tif, Jpeg e EPS. Ciascun formato offre una particolare serie
di opzioni e naturalmente bisogna anche scegliere un luogo ed un nome di destina
zione del file.
In alternativa è possibile salvare un singolo grafico alla volta; in questo caso occor
re selezionare il grafico desiderato, scegliere di esportare genericamente l'output e
poi selezionare l'opportuna voce tra:
•
tutti gli oggetti della finestra
•
tutti gli oggetti visibili
•
solo gli oggetti selezionati
ossia l'ultima.
41
Scheda 30 Scheda
Quasi un indice - Schema (molto) riassuntivo, per nulla esaustivo
SAS
R
STATA
SPSS
1 - Avvertenze
2 - Help
3 – Log delle
sessioni
log using
4 – Apri file
SET / DATA=
load()
use
GET FILE
5 – Acquisizione
(formato libero)
INFILE,INPUT
read.table()
infile
GET DATA
6 – Acquisizione
(formato colon
na)
INFILE,INPUT
read.fwf()
infix
GET DATA
rename
RENAME
7 – Opzioni per
l'acquisizione
8 – Acquisizione
(altri formati)
9 – Dati man
canti
10 - Rinominare
variabili
RENAME
11 - Selezione
variabili
KEEP, DROP
subset()
keep, drop
12 - Selezione
osservazioni
IF
subset()
keep if,
drop if
SELECT IF
13 – Condizioni
IF, SELECT
which()
if
FILTER BY
da COMPUTE
14 – Ordina
mento
SET
rbind()
append
ADD FILES
15 - Unione da
taset (per riga)
MERGE
cbind(),
merge()
merge
MATCH FILES
sort(),
order()
sort, gsort
SORT CASES
generate
COMPUTE
16 - Unione da PROC SORT
taset (per colon
na)
17 – Ricodificare
42
prec.
Scheda
SAS
18 – Trasforma
zioni
R
STATA
SPSS
as.*(),
cut()
encode, decode, RECODE
recode
str(),
attributes()
describe
SYSFILE INFO
list
PRINT
19 - Informazio
ni sul dataset
PROC
CONTENTS
20 - Stampa del
dataset
PROC PRINT
21 - Frequenze
semplici
PROC FREQ
table()
tab1
FREQUENCIES
22 - Tabelle di
contingenza
PROC FREQ
table()
tabulate
CROSSTABS
23 - Indicatori di PROC FREQ
associazione
chisq.test(),
summary()
tabulate
CROSSTABS
24 - Indicatori
univariati
summary(),
var(), cov()
summarize
DESCRIPTIVES
25 – Test di nor PROC
UNIVARIATE
malità
shapiro.test()
swilk
EXAMINE
26 - Correlazio
ne
cor()
correlate,
pwcorr
CORRELATIONS
PROC
UNIVARIATE
PROC CORR
27 – I grafici
(presentazione)
28 – I grafici
(veri e propri)
29 – I grafici
(esportazione)
43
Mini Glossario
Case sensitive
Indica la capacità del programma di distinguere tra le lettere
maiuscole e quelle minuscole.
Clipboard
Indica l'area temporanea di memoria dove i dati vengono imma
gazzinati tramite la funzione “Copia” ed è detta appunti in italia
no.
Default
E' un termine che si riferisce allo stato o alla risposta di un siste
ma qualunque, in assenza di interventi espliciti.
Open source
Letteralmente “sorgente aperta”, indica che il programma è
rilasciato con un tipo di licenza che include la disponibilità e mo
dificabilità del codice sorgente che quindi è suscettibile di amplia
menti e modifiche da parte di chi desidera partecipare al suo svi
luppo.
Prompt
E' l'interfaccia che permette all'utente di interagire con il pro
gramma tramite linee di comando (di cui si deve conoscere la
sintassi).
Wizard
Letteralmente “mago”, indica una procedura informatica che
permette all'utente di eseguire determinate operazioni (solita
mente complesse) tramite una serie di passi successivi che ven
gono presentate in finestre di dialogo.
Riferimenti
Agostinelli, C., Sartorelli, S. (2002), Introduzione al linguaggio di SAS System, Qua
derno 1, Quaderni ASID, Facoltà di Scienze Statistiche, Università di Padova.
Iacus, S.M., Masarotto G. (2003), Laboratorio di statistica con R, McGraw-Hill.
Muenchen, R.A. (2006), R for SAS and SPSS Users.
Pastore, M. (2007), Introduzione all'uso di SPSS 14.0 per Windows.
Sartorelli, S. (2006), Introduzione a STATA.
STATA Press (2005), User's Guide, Release 9, StatCorp, College Station, Texas, USA.
Venables, W.N., Smith, D.M. and the R Development Core Team (2006), An Intro
duction to R.
Wikipedia: http://it.wikipedia.org/wiki/Portale:Informatica
44