stata tutorial- elisa iezzi

Upload: tayronagatta

Post on 20-Feb-2018

254 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/24/2019 Stata Tutorial- Elisa Iezzi

    1/39

    STATA TUTORIAL Elisa Iezzi

    Analisi di mercato II

    1

    STATA TUTORIAL

    Primi passi con STATA-Gestione dati, grafici e semplici modelli-

    Dott.ssa ELISA IEZZI

    [email protected]

  • 7/24/2019 Stata Tutorial- Elisa Iezzi

    2/39

    STATA TUTORIAL Elisa Iezzi

    Analisi di mercato II

    2

    Sommario

    ISTRUZIONI GENERALI ..............................................................................................................4

    INTRODUZIONE.................................................................................................................................................. 4Dove trovare STATA e i dati da utilizzare ..................................................................................................4Uscire da STATA..............................................................................................................................................4

    Le finestre di STATA e la barra degli strumenti..............................................................................................4Stata Help .......................................................................................................................................................6Data Editor......................................................................................................................................................6Do File Editor...................................................................................................................................................7Log....................................................................................................................................................................8 Graph ..............................................................................................................................................................8

    I files utilizzati in Stata.........................................................................................................................................8Stata dataset estensione : .dta ..............................................................................................................8Log file estensione : .log............................................................................................................................9Stata do-file estensione: .do ....................................................................................................................9Stata gaphs Estensione: .gph.................................................................................................................11

    Dataset............................................................................................................................................................ 11Allocare memoria a STATA........................................................................................................................11

    Variabili ..............................................................................................................................................................11Generare e cambiare le variabili ............................................................................................................13

    Cambiare la struttura dei dati.......................................................................................................................14Inserire i dati ......................................................................................................................................................15

    Inserire i dati dallEDITOR (tramite tastiera) ............................................................................................15Usare dati gi esistenti in formato ASCII (o text)........................................................................................15

    Infile (estensione con .txt oppure .asc)...................................................................................................15Insheet (estensione con .csv) ...................................................................................................................16Dictionary......................................................................................................................................................17 Infix .................................................................................................................................................................17

    Sintassi generale............................................................................................................................................ 17Describe.............................................................................................................................................................18 Display................................................................................................................................................................18 List........................................................................................................................................................................18 Format ................................................................................................................................................................19

    Generare dummy............................................................................................................................................19Drop and keep.................................................................................................................................................19Operatori di STATA ...........................................................................................................................................19Funzioni...............................................................................................................................................................20

    By group ........................................................................................................................................................20Sort e gsort ....................................................................................................................................................21

    STATISTICHE DESCRITTIVE ............................................................................................................................... 21Count .................................................................................................................................................................21Summarize .........................................................................................................................................................21Means.................................................................................................................................................................22 Centile................................................................................................................................................................22

    Cumul.................................................................................................................................................................22 Correlate ...........................................................................................................................................................22TABLES.................................................................................................................................................................23

    Table ..............................................................................................................................................................23

  • 7/24/2019 Stata Tutorial- Elisa Iezzi

    3/39

    STATA TUTORIAL Elisa Iezzi

    Analisi di mercato II

    3

    Tabulate ........................................................................................................................................................23Tabsum ..........................................................................................................................................................24

    FOREACH .......................................................................................................................................................24

    MANIPOLAZIONE DEI DATI............................................................................................................................. 24Combinare differenti dataset insieme.........................................................................................................25

    Append .........................................................................................................................................................25Merge ............................................................................................................................................................25Collapse ........................................................................................................................................................26Contract........................................................................................................................................................27 Expand ..........................................................................................................................................................27Fillin .................................................................................................................................................................27

    APPLICAZIONE: DESCRIZIONE DATI E SEMPLICE INFERENZA ................................27

    DESCRIZIONE DATI..........................................................................................................................................27

    ANALISI USANDO STATA ................................................................................................................................281 obiettivo: Confronto tra due gruppi........................................................................................................292 obiettivo: Correlazioni ................................................................................................................................333 obiettivo: Esercizi .........................................................................................................................................35

    APPLICAZIONE: IL MODELLO LOGIT ..................................................................................35

    DESCRIZIONE DATI..........................................................................................................................................36

    Analisi logistica .............................................................................................................................................. 38

  • 7/24/2019 Stata Tutorial- Elisa Iezzi

    4/39

    STATA TUTORIAL Elisa Iezzi

    Analisi di mercato II

    4

    ISTRUZIONI GENERALI

    INTRODUZIONE

    Dove trovare STATA e i dati da utilizzareAllinterno dei programmi si pu avviare direttamente licona STATA.

    I dati sono stati inseriti nella directory: R:\Freo\Analisi di mercato2\..

    Uscire da STATA

    Per uscire da STATA, si pu scrivere exit nella finestra STATA COMMAND. Altrimenti si pucliccare su Exit dal menu FILE oppure digitare i tasti Alt+F4.

    Le finestre di STATA e la barra degli strumentiLe finestre di STATA sono 4:

  • 7/24/2019 Stata Tutorial- Elisa Iezzi

    5/39

    STATA TUTORIAL Elisa Iezzi

    Analisi di mercato II

    5

    1. STATA COMMAND, dove i comandi vengono digitati e mandati in esecuzione

    semplicemente premendo invio dopo averli scritti; In alto a destra, contiene la sequenza dei comandi eseguiti nella Stata Command.

    Cliccando su una riga nella finestra review, il comando eseguito in precedenza

    ricompare nella finestra Stata Command.

    2. STATA RESULTS, dove appaiono i risultati.

    E la finestra centrale, caratterizzata dallo sfondo nero, dove vengono visualizzati, icomandi eseguiti, i messaggi di errore e in generale tutte le operazioni eseguite dal

    programma. E' una finestra di output il cui funzionamento pu essere ricondotto a

    quello di un registro che, se fatto scorrere, mostra allutente ci che fino a quel

    punto stato fatto.

    3. REVIEW dove sono scritti tutti i comandi digitati fino a quel momento;

    In alto a destra, contiene la sequenza dei comandi eseguiti nella Stata Command.

    Cliccando su una riga nella finestra review, il comando eseguito in precedenzaricompare nella finestra Stata Command. Funzione particolarmente utile per la

    correzione di errori o per procedure che richiedono ripetizioni frequenti di comandi

    articolati.

    4. VARIABLES dove c una lista di variabili contenute nel dataset che si sta utilizzando.

    Sotto la Review, mostra lelenco delle variabili contenute nel data set indicandone ilnome, letichetta ed eventuali informazioni sulle modificazioni rilevanti intervenute

    nelle variabili. Anche qui possibile far comparire la variabile nella Stata Command

    cliccando sulla variabile interessata.

    Le istruzioni principali della barra degli strumenti sono:

    1. open, per aprire un dataset di STATA

    2. save, per salvare su disco il dataset che si sta utilizzando

    3.

    print, per stampare un grafico o i risultati ottenuti

    4. open log, per iniziare un nuovo log, aggiungerlo ad uno gi esistente o fermare quello

    corrente

    5. import/ export, per importare / esportare in formati diversi da quello di stata che *.DTA

    6. Data Editor apre il data editor, dove si possono inserire manualmente i dati

    7.

    Data Browser mostra i dati8. Do-File Editor apre il Do-file editor dove si scrivono i comandi per poterli poi eseguire tutti

    insieme

    9. Break (ferma cio che sta facendo STATA; per es. hai chiesto a stata di mostrare una lista di

    tutte le osservazioni, ma ti accorgi che sono milioni e vuoi interrompere il lavoro di

    STATA!

  • 7/24/2019 Stata Tutorial- Elisa Iezzi

    6/39

    STATA TUTORIAL Elisa Iezzi

    Analisi di mercato II

    6

    Stata Help

    E la finestra della guida alluso del programma (in inglese). Si apre cliccando Help nel men o

    premendoalt+h e scegliendo lopzione desiderata. Il suo contenuto ha struttura ipertestuale.

    Data Editor

    Visualizza la matrice dei dati in memoria. Nelle colonne della matrice sono contenute variabili e

    nelle righe le singole osservazioni. Si apre con lapposito pulsante sulla barra degli strumenti o

    digitando edit nella finestra Stata Command. Facendo doppio clic su un valore o una variabile ne

    vengono visualizzate nome, etichetta e formato. Il alto c una barra degli strumenti con la quale si

    possono eseguire alcune operazioni come mettere in ordine crescente i dati rispetto ad una variabile

    (sort) o cancellare dati o variabili. Una volta aperto leditor, per accedere alle altre finestre

    necessario chiuderlo.

  • 7/24/2019 Stata Tutorial- Elisa Iezzi

    7/39

    STATA TUTORIAL Elisa Iezzi

    Analisi di mercato II

    7

    Do File Editor

    Consiste in un sottoprogramma con il quale si pu programmare Stata mediante la scrittura di una

    serie di comandi su un comune word editor (o sul word editor di stata con funzione apposita per lascrittura dei do-files).. Per eseguire un do file gi elaborato, si clicca sul do-file editor al menu

    windows o sul pulsante dedicato nella barra degli strumenti Per le caratteristiche specifiche e la

    scrittura del do-file si rimanda alla apposita sezione.

  • 7/24/2019 Stata Tutorial- Elisa Iezzi

    8/39

    STATA TUTORIAL Elisa Iezzi

    Analisi di mercato II

    8

    Log

    La finestra Stata log file permette di visualizzare il log file, ossia il file che viene creato per la

    registrazione di tutti i comandi e le operazioni eseguite dal programma nella corrente sessione di

    utilizzo. Tale file pu essere poi salvato o stampato per larchiviazione dei risultati ottenuti. La

    finestra stata log si apre dal menu windows (se un log file gi in uso, altrimenti va prima creato) outilizzando i comandi sulla barra degli strumenti.

    Graph

    E la finestra nella quale vengono visualizzati i grafici.

    I files utilizzati in StataStata pu utilizzare tre tipologie di file. I files sono contraddistinti da una diversa estensione (le

    lettere dopo il punto) e da icone differenti.

    Stata dataset estensione : .dta

    Esempio icona:

    Sono i files che contengono i dati da utilizzare. Possono provenire da fonte esterna o essere creati

    immettendo i valori nelleditor dati e poi salvandoli. Quando un dataset viene modificato, cosaricorrente nellutilizzo di Stata, occorre salvare le modifiche se si intende renderle definitive con

    lavvertenza che una volta eseguita questa operazione la struttura precedente verr persa. Un

  • 7/24/2019 Stata Tutorial- Elisa Iezzi

    9/39

    STATA TUTORIAL Elisa Iezzi

    Analisi di mercato II

    9

    consiglio utile pu quindi consistere nel non sovrascrivere il dataset originale, salvando, per

    esempio, il nuovo dataset con un nome differente.

    Log file estensione : .log

    Esempio icona:

    esercitazione.log

    I log files vengono creati dallutente per visualizzare i risultati dellanalisi. La loro stampa, sia

    direttamente da Stata (menu file > print log) che tramite altri word processor (mediante, ad esempio,

    le classiche funzioni copia-incolla) rappresenta spesso lultima operazione compiuta al termine di

    una sessione di utilizzo di stata.

    mostra log

    open/close/suspend log do-file editor

    Come creare un log file

    Il log file pu cominciare a registrare i risultati in qualsiasi momento del lavoro. Per iniziare si deve

    cliccare sullicona che raffigura una pergamena affiancata ad un semaforo sulla barra degli

    strumenti. Appare una finestra nella quale dobbiamo indicare il nome del file e dove collocarlo.

    Fatto questo, il nostro log file registra tutte le operazioni effettuate, come accade nella finestra Stata

    Results. In qualsiasi momento possibile interrompere la registrazione cliccando nuovamente sul

    semaforo e scegliendo lopzione suspend log file per poi riprendere scegliendo resume log file.In questo modo possibile inserire solo ci che interessa venga visualizzato.

    E possibile anche utilizzare un file di log gi esistente. In questo caso si deve scegliere o lopzione

    Append to existing file che permette di continuare a registrare gli output in successione a quelli

    precedentemente salvati oppure lopzione Overwrite existing file che consente di sovrascrivere le

    nuove informazioni sulle precedenti che vanno irrimediabilmente perse.

    La sintassi :log using filename, [append replace]Successivamente si pu chiudere il log file scrivendo:log close

    o semplicemente uscendo da STATA. Se per successivamente si torna in STATA e si cerca diriaprire il log, STATA si rifiuter. A questo punto ci sono tre alternative:

    1. si inizia un nuovo log con un nome differente

    2.lo si incolla (append) alla fine del log corrente (scrivendo log usingfilename,append)

    3.si dimentica il vecchio log e lo si sostituisci con uno nuovo (si scrive log usingfilename, replace)

    Stata do-file estensione: .do

    Esempio icona:

  • 7/24/2019 Stata Tutorial- Elisa Iezzi

    10/39

    STATA TUTORIAL Elisa Iezzi

    Analisi di mercato II

    10

    Creando un do file possibile programmare Stata, ossia creare un listato di istruzioni da fare

    eseguire al software. Rappresenta sicuramente il modo pi ordinato, metodico e professionale per

    lavorare con Stata ed una procedura il cui apprendimento indispensabile se si desidera procedere

    in analisi di una qualche complessit.

    In pratica si tratta semplicemente di scrivere in sequenza i comandi da impartire: dallapertura del

    dataset, passando per lanalisi vera e propria e concludendo con il salvataggio di dataset e log file.Se un do file stato realizzato correttamente pu essere possibile farlo eseguire dal programma con

    un semplice doppio clic sopra licona del file: Stata si aprir automaticamente e tutte le procedure

    verranno effettuate senza inceppare in errori.

    Come creare un do-file

    Facendo clic sullicona che raffigura foglio e matita sulla barra degli strumenti o nel menu

    Windows>do-file editor si apre la finestra delleditor per do-file. Si pu aprire un file gi esistente o

    crearne uno nuovo. Al termine del lavoro si esegue il programma (icona do current file) e se ne

    verifica il corretto funzionamento.

    Una volta creato, un do-file pu essere eseguito semplicemente con un doppio clic o scegliendo su

    Stata al menu file>do e indicando il file da eseguire.

    Oltre ai comandi si possono includere commenti iniziando la riga con *

    Essendo un semplice file di testo, il do-file pu essere creato anche con un normale word processor

    ma tale operazione pu comportare problemi di compatibilit la cui risolvibilit sempre possibile

    ma spesso poco immediata.

    Semplice esempio di do-file:

    set mem 4muse " C:\temp\dati\dati.dta"log using "C C:\temp\dati\prova_log.log" , replacesum*eliminazione variabili non utili per lanalisi*drop id eta*regressione con reddito come var dipendente spiegata da istruzione e residenza*regress reddito istruz residsave "C:\temp\dati\prova.dta", replace

    Rimane da salvare anche il do-file con un nome. Un trucco che spesso si utilizza quello di

    chiamare il log file e il do file nello stesso modo cos da associare i comandi alloutput (senza dover

    ricordare molti nomi).Allora da dentro il do-editor si salva il file con la stessa procedura usata per salvare unqualsiasi file di testo. Da FILE si clicca su SAVE FILE AS e si salva dandogli come nome

    dofile.do. E necessario ricordare la directory in cui viene salvato, generalmente convenientemettere il do file nella stessa directory del log file.

    A questo punto si chiude il DO-FILE EDITOR, torniamo in STATA, clicchiamo su File dallabarra degli strumenti, e poi su DO, selezioniamo il file dofile.do in c:\temp\dati eguardiamo i risultati.

    Si pu anche vedere il nuovo dataset creato con le nuove variabili cliccando sul DATA BROWSER

    (terzo pulsante dalla destra).

    Adesso si puo uscire da Stata, scrivendo nella finestra STATA COMMAND:

    clearexit

  • 7/24/2019 Stata Tutorial- Elisa Iezzi

    11/39

    STATA TUTORIAL Elisa Iezzi

    Analisi di mercato II

    11

    Stata gaphs Estensione: .gph

    Esempio icona:

    Con Stata possibile realizzare grafici e poi salvarli su file. Per ulteriori precisazioni si rimanda alla

    parte specifica dedicata alla realizzazione dei grafici.

    Dataset

    Come detto in precedenza l'estensione utilizzata per salvare i dati .dta.Per aprire ed utilizzare il file ad esempio dataset.dta i comandi sono:

    use C:/temp/dati/dataset

    Il modo pi semplice allocare la directory in cui sono salvati tutti i dati, in modo da non dover

    ripetere il path.

    cd C:/temp/datiuse datasetsave dataset

    !!! IMPORTANTEsalvare sempre i file. Se si vuole salvare il file che gi presente:

    save dataset, replace

    Allocare memoria a STATA

    Generalmente STATA da 10.10 Mb di memoria. Per espanderla, basta scrivere nella finestra

    COMMAND set memory 50m, m sta per MegaByte. Qualora non sia sufficiente per i dati, sar lo stesso STATA a dire no room to add more observations. Ed allora

    baster aggiungere pi memoria compatibilmente con il PC usato.

    Variabili

    In Stata, le variabili sono associate con le colonne di una matrice di dati, e le osservazioni con le

    righe

    Le variabili possono essere alfanumeriche (stringhe) o numeriche (numeri reali). Le variabili sono

    chiamate con il loro nome, che pu contenere anche numeri, ma non spazi.

    Si pu cambiare il nome delle variabili usando il comando

    rename x y significa cambiare il nome della variabile da x a y.

    Alle variabili possono essere assegnate etichette . Una volta che abbiamo creato delle nuove

    variabili vogliamo poter tener traccia di esse e ricordare cosa significano. Possiamo fare cio

  • 7/24/2019 Stata Tutorial- Elisa Iezzi

    12/39

    STATA TUTORIAL Elisa Iezzi

    Analisi di mercato II

    12

    creando labels e value labels. Queste labels non sono necessarie, ma rendono loutput pi leggibile.

    Le variable labels corrispondono ai nomi delle variabili, le value labels corrispondono ai differenti

    valori che una variabile puo avere.

    La sintassi :

    label variable varname the name of this variable ises:labelvariable x costi in euroIn STATA i nomi delle variabili appaiono nel riquadro in basso a sinistra (VARIABLES Window).

    Ogni qualvolta la variabile x appare sullo schermo apparir anche la sua label.

    A questo punto pu essere utile anche assegnare delle label. Guardiamo alla variabile sex. Essanon ha labels ed assume solo sue valori 1 e 2. Ma cosa significano? Per evitare di memorizzarlo o di

    consultare sempre un codebook, possiamo usare i seguenti comandi:label define grp 1 male 2 femalelabel values sex grp

    Ricorda che bisogna prima bisogna definire (define) la label, poi associare quella label conuna variabile. Ogni label pu essere associata a pi di una variabile, cos che se ci sono molte

    domande a risposta si/no/non so, basta definire una value label e usarla per tutte le

    domande. Tuttavia si pu associare una sola value label con una stessa variabile.

    e formati :

    format x %7.2g questo il generico formato per identificare un numero con 2 decimali

    Automaticamente STATA assegna un certo spazio alle variabili. Scrivendo compress si ordina a

    STATA di utilizzare lo spazio in maniera efficiente (molto utile prima di salvare un dataset su cui si lavorato creando molte variabili)

    DATI MANCANTI

    I dati mancanti sono identificati da . (un punto). Si possono codificare i valori mancanti come codici

    (es 9999) o viceversa utilizzando il comando mvdecodemvencode x, mv(9999) codifica i valori mancanti con il codice 9999mvdecode x, mv(9999) decodifica il codice 9999 con i valori mancanti

    VARIABILE TEMPO

    I dati sono definiti da un numero di giorni dal 1/1/1960 e possono essere definite attraverso il

    formato della data che %d. Se ad esempio la variabile time in formato %7.0glist time

    +---------+| time ||---------|

    1. | 14976 |2. | -2200 |3. | 544 |4. | 8454 |5. | 4566 |

    In questo modo non di facile lettura, se invece gli impostiamo il formato allora:

    format time %dlist time

  • 7/24/2019 Stata Tutorial- Elisa Iezzi

    13/39

    STATA TUTORIAL Elisa Iezzi

    Analisi di mercato II

    13

    +-----------+| time ||-----------|

    1. | 01jan2001 |2. | 23dec1953 |

    3. | 28jun1961 |4. | 23feb1983 |5. | 02jul1972 |

    Per altri formati si pu cosultare help dfmt

    Generare e cambiare le variabili

    Si possono generare nuove variabili utilizzando il comando generateoppure egen.GENERATE

    Generate crea una nuova variabile. La sua sintassi :

    [by varlist:] gen newvar=exp [if exp] [in range]Se vengono generati dei valori missing, il numero di valori missing vengono riportati in newvar eanche nella Finestra degli STATA RESULTS.

    Il comando generatefa una semplice equazione:

    generate x = 1 crea una nuova variabile x e assegna alla colonna tutti valori 1

    generate percentuale=100*(vecchio-nuovo)/vecchio if vecchio>0 generala variabile percentualeper quei valori in cui vecchio>0negli altri casi riempe con missing.In quel caso si potrebbe gestire la variabile con l'istruzione replace. Replace cambia ilcontenuto di una variabile esistente. La sua sintassi :[by varlist:] replace oldvar=exp [if exp] [in range]replace percentuale = 0 if old

  • 7/24/2019 Stata Tutorial- Elisa Iezzi

    14/39

    STATA TUTORIAL Elisa Iezzi

    Analisi di mercato II

    14

    diff(varlist) che crea una dummy uguale ad 1 dove le variabili in varlist sono nonuguali e zero altrimenti

    iqr (exp) [,by(varlist)] crea una costante (allinterno di varlist) che contiene ilrange interquartile di exp. La stessa sintassi vale per max(exp), mean(exp),median(exp), min(exp), sd(exp) e sum(exp) che creano (allinterno di

    varlist) rispettivamente il valore massimo, medio, la mediana, il minimo, la deviazionestandard e la somma di exp.

    Pctile(exp) [, p(#) by (varlist)] che crea una costante entro varlistcontenente il #-esimo percentile di exp, con # che puo andare da 1 a 99. Se p() non

    specificato, 50 viene assunto per default

    Per eliminare la variabile:drop x

    Per ricodificare la variabile in categorie:

    recode categ 1/3 = 1 4=2 se il valore compreso tra 1 e 3 allora assegna categoria=2 se

    =4 allora assegna categoria=2

    Cambiare la struttura dei dati

    In molte occasioni il nostro dataset si presenta come un panel di dati. Se si hanno misure per le

    occasioni j per i soggetti i, questi possono essere visti come dataset multivariati in cui ogni

    occasione j rappresentato da una variabile xj e il soggetto identificato da subj.Leinformazioni sono chiamate wide e long.

    Si possono convertire dal widedella matrice con le variabili xj subj

    2. 4444 5555 22221. 2222 3333 1111

    xxxx1111 xxxx2222 ssssuuuubbbbjjjj

    list

    alla longdella matrice con le variabili x occ subjusando la sintassi

    reshape long x, i(subj) j(occ)

    x1 x 2 -> x

    xij variables:

    j variable (2 values) -> occ

    Number of variables 3 -> 3

    Number of obs. 2 -> 4

    Data wide -> long

    (n ot e: j = 1 2)

    I dati ora sono :

  • 7/24/2019 Stata Tutorial- Elisa Iezzi

    15/39

    STATA TUTORIAL Elisa Iezzi

    Analisi di mercato II

    15

    4. 2222 2222 55553. 2222 1111 44442. 1111 2222 33331. 1111 1111 2222

    ssssuuuubbbbjjjj oooocccccccc xxxx

    . list

    A questo punto si possono raggruppare dati per ogni gruppo con misure statistiche standard.

    Calcola la media, la deviazione standard e conta la numerosit del gruppo che non sia mancante.collapse (mean) mean=x (sd) sdx=x (count) num=x, by(subj)list

    2. 2222 4444....5555 ....777700007777111100007777 22221. 1111 2222....5555 ....777700007777111100007777 2222

    ssssuuuubbbbjjjj mmmmeeeeaaaannnn ssssddddxxxx nnnnuuuummmm

    Inserire i dati

    I dati possono essere inseriti usando il data editor, oppure da un file ASCII (word, notepad, ecc.)

    Inserire i dati dallEDITOR (tramite tastiera)

    Iniziamo con il cliccare su DATA EDITOR sulla barra degli strumenti di STATA. Non altro che

    un foglio di excel (molto simile) dove per riga ci sono le osservazioni e per colonna ci sono le

    variabili. I dati inseriti possono essere modificati semplicemente scegliendo la cella. Il DATA

    Editor chiama le variabili inizialmente con var1, var2 etc, ma possono essere cambiate cliccando

    due volte sullintestazione della colonna (per es. su var1) in modo tale che appaia lo STATAVARIABLE INFORMATION dove poter inserire il nome desiderato.

    1.Clicca sullicona DATA EDITOR2.Da sinistra a destra inserire i seguenti numeri (aiutati conlinvio e le freccette sulla tastiera per spostarti):1 2 34 5 67 8 93.Doppio click su var1 e sostituisci var1 con a; fai lo stesso convar2 e metti al suo posto b, lo stesso con var3 e chiamala c4.Chiudi il data editor (x in alto a destra) in modo da tornare

    allafinestra Stata Command5.Scrivi save C:/temp/dati/one.dta, replace*ricordati che hai messo i dati in questa directory chiamata mydata

    Usare dati gi esistenti in formato ASCII (o text)

    Infile (estensione con .txt oppure .asc)

    Il comando infile uno dei pi usati per dati che siano in formato libero o comma-separated

    La sintassi base la seguente:

    infile varlist using filename [, clear]

  • 7/24/2019 Stata Tutorial- Elisa Iezzi

    16/39

    STATA TUTORIAL Elisa Iezzi

    Analisi di mercato II

    16

    dove varlist una lista di nomi di variabili (varname1 varname2), filename il nome delfile che si vuole trasformare (incluso il percorso per trovarlo), e clear unopzione che puliscedati eventualmente in memoria che non sono stati salvati. Se non viene messa unestensione si

    assume che essa sia .raw.

    Infile molto utile nei dati scaricati: il file non ha nomi di variabili sulla prima linea

    le variabili che hanno spazi al loro interno, come per esempio nome e cognome di unapersona, devono essere racchiusi tra virgolette

    i numeri possono avere virgole e segni negativi, ma non dollari o segni di percentuale

    Infile assume che le variabili abbiano spazi tra di loro e che non ci siano spazi bianchi quandosi aspetta dei dati (perci i valori di missing devono essere rappresentati in qualche modo).

    Molto spesso per la cosa pi conveniente da fare e portare un file in Excel, salvarlo con

    lestensione .csv e poi usare insheet.

    Inoltre puoi usare il comando infile per leggere dati che contengono molte variabili o recordmultipli per osservazione, oppure in generale quando vuoi leggere dati salvati in un formato

    particolare.

    Insheet (estensione con .csv)

    Questo comando legge dati che sono organizzati nel modo seguente:

    i) le osservazioni sono per riga;

    ii) le variabili nelle colonne;

    iii) i valori delle variabili sono separati da una tabulazione o da virgole ma non da spazi. In

    questo caso, necessario rinominare il file

    ASCII in modo che abbia lestensione .raw e poi usare il comando insheet.In molti casi il modo pi conveniente in cui leggere i dati aprire il file in Excel e salvarlo con

    lestensione .cvs e poi usare il comando insheet.La sintassi di base :

    insheet using filename [, clear]Se si salvano i dati in excel, con il formato csv ad esempio dati.cvs In STATA e nella finestra COMMAND scriviamo:

    insheet using c://dati.csv,clearsave c://dati.dta,replaceA questo punto abbiamo i dati pronti in formato DTA, che non altro che il formato dei dati

    in STATA.

    Il comando insheet molto utile per leggere dati da un foglio di lavoro (come quello di Excel). Anche in questo caso ci sono alcuni requisiti da soddisfare:

    La prima linea dovrebbe avere i nomi delle variabili e dalla seconda linea dovrebberoiniziare i dati

    I dati numerici mancanti dovrebbero essere codificati come celle vuote, e non con spazi,punti, o altri dati numerici. Spesso vengono usati i valori 9, 99, 999. Questo lecito purch

    questi non siano valori validi per quella variabile.

    Le virgole sono problematiche perch Stata pensa che siano dei delimitatori e non li legge in

    modo corretto. Perci necessario rimuovere le virgole dai valori numerici prima di salvareil file.

  • 7/24/2019 Stata Tutorial- Elisa Iezzi

    17/39

    STATA TUTORIAL Elisa Iezzi

    Analisi di mercato II

    17

    Il file deve essere salvato in formato comma separated values in Excel. Non basta dareunestensione .cvs. Si deve selezionare sotto File poi Save as e poi scegliere comma

    separated values. Quando si chiude il foglio di lavoro ed Excel ti chiede di salvare i

    cambiamenti bisogna rispondere No, perch Excel sta chiedendo di fare i cambiamenti per

    rendere il foglio di lavoro nuovamente un foglio regolare di Excel

    Dictionary

    Se invece i dati sono in formato fisso, necessario usare un dictionary (dct). Un dictionary non

    altro che un file ASCII (testo) che descrive il contenuto di un file di dati e permette di leggere i file

    in formato fisso o formato libero. I dati possono essere nello stesso file del dictionary o in un altro

    file. La sintassi di base :

    infile filename [, using (filename2) clear]dove filename il nome del file dictionary e filename2 il nome del file che contiene idati. Se lopzione using () non specificata, si assume che i dati seguano il dictionary in

    filename, o se il dictionary specifica il nome di un altro file, questo file si assume contenga i dati.La sintassi di base di un dictionary file la seguente:------ top of the dictionary file-------------------[infile] dictionary [using filename] {[type] varname}(dai vengono inseriti qui)------------------ fine del dictionary file----------Qui di seguito riporto un esempio possibile di file dictionary. Si scrivono le righe successive

    in un qualsiasi programma di testo (word).

    ___________________________________________________________________________dictionary using e:\fss98~10.fil {_column(1) ril %2f "rilevazione"_column(3) anno %4f "anno"_column(7) ProgFam %6f "progressivo family"_column(13) nordcomp %2f "Num ordine componente"_column(15) ncomp %2f "numero comp family"_column(17) age %3f "eta"_column(20) relpar %2f "relazione parent"_column(23) sex %1f "sesso"}il file dictionary pu essere scritto in un qualsiasi text editor ma deve essere salvato con lestensione

    .dct.

    In particolare, il dizionario inizia con le parole dictionary using, che definisce il file comeun dizionario di STATA. Il nome del file che contiene i dati appare dopo la parola using

    Infix

    Se i dati sono in formato fisso per colonna, il comando infix pu essere usato. La sintassi di base:infix using filename[, using (filename2) clear]dove filename il nome di un file dictionary e filename2 il nome del file contenente i dati

    Sintassi generale

  • 7/24/2019 Stata Tutorial- Elisa Iezzi

    18/39

    STATA TUTORIAL Elisa Iezzi

    Analisi di mercato II

    18

    I comandi di Stata rientrano in due ampie categorie:

    1. comandi che riportano informazioni sui dati, per esempio describe, list, summarize, tab

    2. comandi che cambiano i dati: keep, drop, generate

    Molti comandi hanno una sintassi comune che possiamo scrivere come:

    [by varlist:] command varlist if exp in range

    Di seguito riportiamo il significato di ogni parola del comando.

    [ ] indica le componenti che non sono essenziali per il comando (optional qualifiers)

    by varlist: il prefisso by fa in modo che il commando sia ripetuto per ogni set unicodi valori della variabile (o variabili). I dati devono pero essere sorted, cio ordinatisecondo la varlist.

    command: il comando che vogliamo che Stata esegua (summarize, list, save, etc.) varlist: le variabili su cui vogliamo che il comando sia eseguito; spesso opzionale in

    molti comandi.

    if exp: leggi questo come if expression e significa se lespressione indicate vera.

    Lopzione if specifica le osservazioni su cui noi vogliamo eseguire il comando. Se non specificato, allora il comando viene eseguito su tutte le osservazioni.

    in range: specifica una restrizione in termini di osservazioni su cui si vuole eseguire ilcomando (cio un intervallo).

    Describe

    Describe mostra un sommario del contenuto dei dati in memoria o presenti nel dataset. La sua sintassi :

    describe [varlist | using filename] , [short detail]dove short taglia le informazioni su ciascuna variabile e detail include informazionisullampiezza di una singola osservazione, e la massima dimensione del dataset.

    Esempio:desdes,shortdes, detail

    Display

    Display mostra stringhe e valori di espressioni scalari. Se si lavora direttamente nella finestraCOMMAND pu essere usato come calcolatrice. La sua sintassi :

    display [subcommand [subcommand]]dove subcommand una stringa fra virgoletteEsempidisplay questa una stringadisplay 5+ln(70)

    List

    List mostra il valore delle variabili. La sintassi :

    [by varlist:] list [varlist] [if exp] [in range][, [no]display nolabel

    noobs]

  • 7/24/2019 Stata Tutorial- Elisa Iezzi

    19/39

    STATA TUTORIAL Elisa Iezzi

    Analisi di mercato II

    19

    dove [no]display forza il format in formato display o di tabella (nodisplay), nolabelmostra i codici numerici piuttosto che le labels, e noobs sopprime lapparizione del numero diosservazioniEsempi:list in 1/5list eta studiolist if eta>18list studio if eta

  • 7/24/2019 Stata Tutorial- Elisa Iezzi

    20/39

    STATA TUTORIAL Elisa Iezzi

    Analisi di mercato II

    20

    Lordine di valutazione segue le regole standard, lespressione sulla sinistra quella valutata prima,

    lultima sulla destra quella valutata per ultima. Le parentesi possono essere usate per forzare un

    ordine differente di valutazione

    Funzioni

    Le funzioni sono usate nellespressione exp nella sintassi vista. Al posto di exp molte funzionipossono essere utilizzate. Largomento di una funzione pu essere una qualsiasi espressione,

    anche un'altra funzione.

    Per esempio una versione semplificata della sintassi per generate :generate newvar=expe percio si potrebbe scrivere per esempio: generate loginc=ln(income), dove ln() unafunzione.

    Alcuni esempi di funzioni sono:

    funzioni matematiche: exp(x), log(x) o ln(x), sqrt(x), abs(x) e le principali funzionitrigonometriche

    funzioni statistiche: chiprob(df,x) (coda superiore della distribuzione cumulativa chiquadrocon df gradi di libert), fprob(df1, df2, f) (coda superiore della distribuzione cumulativa F

    con df1 e df2 gradi di libert, invnorm(p) (funzione quantile della normale standardizzata),

    normd(z) (densit normale standardizzata), normprob(z) (funzione di distribuzione normale

    standardizzata), tprob(f,t) (distribuzione t a due code con df gradi di libert

    generatore di numeri pseudo-random: uniform(), che genera numeri pseudo-randomuniformemente distribuiti sullintervallo [0,1) (non c argomento dentro () ). I numeri

    pseudo-random secondo una distribuzione normale standardizzata possono essere anche

    generati usando il comando invnorm(uniform())

    funzioni speciali, per esempio float(x) (che riporta il valore di x nella tipologia float),int(x)(che riporta il valore intero di x), max(x1, x2, x3, xn) e min(x1, x2, x3, xn) (che

    riporta rispettivamente il valore massimo e minimo degli argomenti tra parentesi ignorando ivalori missing, sign(x) (che riporta 1 se x0 e . se x=.), e sum(x) (che

    riporta la somma di x, trattando i valori missing come zeri)

    Ci sono anche funzioni che trattano le date e funzioni di serie temporali, cos come funzioni matrici

    che danno luogo a scalari come det(B) e trace(B) (rispettivamente il determinante e latraccia della matrice B).

    Esempi:generate eta2=eta*etagen altoy=(y>20000 & y!=.)replace altoy=. if y20000 & y!=.gen sommay=yl+yta+ymgen ylag=y[_n-1]gen r=uniform()gen normals=invnorm(uniform))sort sexby sex: gen avgy=sum(y)/sum(y!=.)by sex: replace avgy=avgy[_N]

    By group

    Talvolta necessario eseguire un comando o unanalisi su gruppi differenti di osservazioni. Il

    comando by variable permette di ottenere lo stesso risultato che si sarebbe ottenuto usando ilcomando if su ogni sottogruppo. Prima di usare il comando by bisogna fare un sort(spiegato successivamente) cio un ordinamento dei dati:

  • 7/24/2019 Stata Tutorial- Elisa Iezzi

    21/39

    STATA TUTORIAL Elisa Iezzi

    Analisi di mercato II

    21

    Esempi.sort sexby sex: sum etaby sex: gen lag2=eta[_n-1]

    Inoltre c un modo per far eseguire a STATA il comando senza far vedere tutto loutput. Per

    eliminare loutput dallo schermo ma non dal log file usare il comando quietly:quietly by sex: gen lag2=eta[_n-1]

    Sort e gsort

    Come gi visto il comando sort sistema i dati in ordine crescente rispetto ai valori delle variabiliin varlist. Non c limite al numero di variabili in varlist. I valori missing vengono interpretaticome i valori pi grandi e perci sono messi in fondo. Come visto nel comando precedente

    necessario usare il sort quando si vuole usare il comando by.La sintassi :sort varlist [in range]

    Esempisort agesort y

    gsort invece aggiusta le osservazioni in ordine crescente o decrescente delle variabili invarlist. Le osservazioni sono messe in ordine crescente di varname se + o niente specificatodi fronte al nome e in ordine discendente se specificato

    La sintassi :gsort [+|-] varname [+|-] carname [] [, generate (newvar) mfirst]dove generate (newvar) crea delle variabili newvar contenenti 1, 2, 3 per ognuno deigruppi indicati dalle varnames ordinate. mfirst indica che i valori missing devono essere messi

    per primi nellordine discendente piuttosto che per ultimiEsempigsort ygsort +ygsort y etagsort y, gen(revy)

    STATISTICHE DESCRITTIVE

    Count

    Count conta le osservazioni anche dopo aver specificato delle restrizioni. La sintassi :[by varlist:] count[if exp] [in range]Se nessuna condizione specificata, allora count conta il numero di osservazioni nel datasetEsempicountcount if y>20000by eta: count if y

  • 7/24/2019 Stata Tutorial- Elisa Iezzi

    22/39

    STATA TUTORIAL Elisa Iezzi

    Analisi di mercato II

    22

    dove detail produce statistiche addizionali come kurtosis, skweness, i 4 valori pi grandi e pipiccoli, vari percentili, meanonly elimina il display dei risultati e il calcolo della varianza (permesso solo quando detail non specificato), format richiede che le summary statisitcssiano mostrate usando il display format associato con le variabili piuttosto che il formato default g.

    Esempi

    summarizesum etasum y, detail

    Means

    Means riporta le medie aritmetiche, geometriche, armoniche, con i rispettivi intervalli diconfidenza, per le variabili specificate. La sua sintassi :means [varlist] if exp [in range] [, add(#) only level]dove add(#) aggiunge il valore # ad ogni variabile in varlist prima di calcolare la madia eintervallo di confidenza (utile quando si analizzano variabili con valori non positivi), onlymodifica lazione dellopzione add() (se specificato lopzione add() aggiunge # solo alle variabili

    con almeno un valore non positivo) e level(#) specifica il livello di confidenza percentuale per gliintervalli di confidenza.

    Il comando ci (invece di means)pu essere usato se si vogliono semplicemente mediearitmetiche e corrispondenti intervalli di confidenza, e standard errors.

    Centile

    centile riporta i centili delle variabili specificate e i lori intervalli di confidenza. Per default, gliintervalli di confidenza sono ottenuti usando un metodi binomiale che non fa assunzioni circa la

    distribuzione della variabile in questione. La sintassi :centile [varlist] [if exp] [in range] [, centile(numlist) cci

    normal meansd level(#)]dove centile (numlist) specifica i centili che devono essere riportati (se non specificatosi riporta la mediana), cci (conservative confidence interval) previene che centile interpoliquando calcola i limiti di confidenza ottenuti senza assunzioni sulla distribuzione, normalspecifica che gli intervalli di confidenza siano ottenuti assumendo che gli stessi centili stimati siano

    normalmente distribuiti, meansd calcola gli intervalli di confidenza assumendo che i centili stessistimati sono distribuiti normalmente.

    Il comando pctile newvar=exp crea una nuova variabile che contiene i percentili di exp.

    Cumul

    cumul crea una nuova variabile che contiene la funzione di distribuzione cumulativa di unavariabile. La sintassi :cumul varname [weight][if exp] [in range], gen(newvar) [freqby(varlist)]dove gen(newvar) specifica il nome di una nuova variabili che deve essere creata e non opzionale , freq richiede che la cumulativa sia in unit di frequenza, altrimenti normalizzata inmodo tale che newvar sia 1 per il valore pi grande di varname, e by(varlist) specificache la cumulativa deve essere calcolata separatamente nei gruppi indicati da by.

    Correlate

    correlate riporta la matrice di varianza o correlazione delle variabili specificate. Alcune

    osservazioni possono essere escluse dal calcolo a causa di missing values. La sintassi :[by varlist:] correlate [varlist] [weight] [if exp] [in range] [,means noformat covariance wrap]

  • 7/24/2019 Stata Tutorial- Elisa Iezzi

    23/39

    STATA TUTORIAL Elisa Iezzi

    Analisi di mercato II

    23

    dove means riporta statistiche tipo medie, devianze, valori minimi e massimi, noformat riportale summary statistics richieste dallopzion means nel formato g indipendentemente dal formato

    associato alle variabili, covariance riporta la matrice di covarianza piuttosto che quella dicorrelazione, and wrap richiede che nessuna azione sia presa su matrici ampie per renderleleggibili. E molto improbabile che si abbia bisogno di specificare tutte queste opzioni.

    TABLES

    Table

    table fornisce tabelle di summary statistics. La sua sintassi :

    table rowvar [colvar [supercolvar]] [weight] [if exp] [inrange] [,contents(clist) by(superrow_varlist) cw row col scolformat(%fmt) center left concise missing replace name(string)cellwidth(#) csepwidth(#) scsepwidth(#) stubwidth(#)]dove contents(clist) specifica il contenuto delle celle della tabella (fino a 5 statistiche

    possono essere specificate, se content() non specificato si assume che siacontent(freq)), clist ha lo stesso significato che in collapse (vedere), rowspecifica che una riga deve essere aggiunta alla tabella riflettendo il totale per riga, col specificache una colonna deve essere aggiunta alla tabella riflettendo il totale per colonna, format(%fmt)specifica il formato per presentare i numeri nella tabella, center specifica che i risultati devonoessere mostrati al centro della tabella (il default a destra), left specifica che i risultati devonoessere mostrati a sinistra nella tabella (il default a destra),

    missing specifica le statistiche missing devono essere mostrate nella tabella come periods.Vedere lhelp on line o il manuale Table[R] per le altre opzioni.

    Tabulate

    Tabulate fornisce tabelle di frequenza a una o due entrate insieme ad altre misure diassociazione come il Pearson chi-squared, il likelihood ratio chi-squared, Fishers exact tets

    etc.

    La sintassi per la tabella ad una entrata :[by varlist:] tabulate varname [weight] [if exp] [in range][,generate (varname) matcell(matname) matrow(matname) missingnofreq nolabel plot subpop(varname)]

    La sintassi per la tabella a doppia entrata :[by varlist:] tabulate varname1 varname2 [weight] [if exp] [in

    range] [,all cell chi2 column exact gamma lrchi2matcell(matname) matrow(matname) matcol(matname) missing nofreqnolabel row taub V wrap]dove all equivalente a specificare le statistiche test: chi2 lrchi2 V gamma taub, cell mostrale frequenze relative di ogni cella della tabella a doppia entrata, chi2 calcola il chi-2 di Pearson

    per lipotesi che righe e colonne della tabella siano indipendenti, column mostra in ogni celladella tabella a doppia entrata le frequenze relative di quella cella allinterno della colonna, exactmostra la significativit calcolata dal test di Fisher, gamma mostra la gamma di Goodman eKruskal con il suo errore standard asintotico, generate(varname) crea un insieme di variabiliindicatore che riflettono i valori osservati della variabile tabulata (vedi esempio), lrchi2 mostrala statistica likelihood ratio chi_2, matcell(matname) salva le frequenze nella matricematname, matcol(matname) salva i valori della colonna nel vettore matname, lo stesso permatrow, missing richiede che i valori missing siano trattati come gli altri valori nel calcolodelle statistiche, nofreq sopprime la presentazione delle frequenze, nolabel fa mostrare i

  • 7/24/2019 Stata Tutorial- Elisa Iezzi

    24/39

    STATA TUTORIAL Elisa Iezzi

    Analisi di mercato II

    24

    codici numerici piuttosto che le labels, plot produce un istogramma a barre delle frequenzerelative di una tabella ad una entrata, row mostra in ogni cella di una tabella a doppia entrata lefrequenze relative di quella cella nella sua riga, subpop(varname) esclude osservazioni per cuivarname=0 nel tabulare le frequenze, taub mostra il Kendall tau-b con il suo errore standardasintotico, e V mostra la V di Cramer.

    esempiotabulate sextab sex studiota studio, ge(studiox)Questo ultimo comando ci permette di creare una variabile per ogni categoria di cui la variabile

    studio si compone. In altre parole dalla variabile studio che ha 7 categorie si passa a 7 variabili

    dummy (0/1), una per ogni categoria di studio. Queste nuove variabile saranno chiamate: studiox1,

    studiox2,studiox7

    Tabsum

    tabulate, summarize() produce tabelle di summary statistics ad una e a due entrate.Sebbene table sarebbe meglio, tabulate, summarize() pi veloce.La sua sintassi :[by varlist:] tabulate varname1 [varname2] [weight] [if exp][in range], summarize (varname3) [ [no]means [no]standard[no]freq [no]obs wrap nolabel missing]dove summarize (varname3) identifica il nome della variabile per cui si vuole riportare lesummary statistics, [no]means include solo o sopprime solo le medie dalla tabella (in generale latabella con summarize include le medie, deviazioni standard, frequenze, e se i dati sono pesati, il

    numero di osservazioni), [no]standard include solo o sopprime solo le deviazioni standard,[no]freq include solo o sopprime solo le frequenze dalla tabella dalla tabella, [no]obsinclude solo o sopprime solo il numero di osservazioni dalla tabella, e missing richiede che ivalori missing di varname1 e varname2 siano trattati come categorie piuttosto che come

    osservazioni da essere omesse nellanalisi.

    FOREACH

    Un comando molto utile quando si vuole ripetere la stessa procedura su molte variabili il

    comando FOREACH.

    Consideriamo direttamente un esempio. Questo esempio richiede una piccola conoscenza della

    programmazione ma si puo tenere a mente per quando avrete pi familiarit con STATA.local redditi "y yl yta ym"

    foreach x of local redditi {sum `x'}In questo esempio abbiamo definito una macro locale chiamata redditi che si compone delle 4

    variabili di reddito. Poi abbiamo detto a STATA di fare un summarize per ogni variabile (x)presente in redditi. Le parentesi graffe sono necessarie per dire a STATA dove inizia e dove finisce

    questo loop. Allo stesso modo indispensabile inserire la x tra virgolette (nota che le virgolette non

    sono esattamente uguali a quelle che si trovano sulla tastiera italiana ma la prima delle due deve

    essere ricercata tra i SIMBOLI (clicca su INSERISCI in Word e poi su simboli).

    MANIPOLAZIONE DEI DATI

    I comandi principali che servono per combinare i dati:

    append e merge.Per modificare il formato dei dati studieremo altri comandi: reshape, collapse,

  • 7/24/2019 Stata Tutorial- Elisa Iezzi

    25/39

    STATA TUTORIAL Elisa Iezzi

    Analisi di mercato II

    25

    contract, expand e fillin.

    Combinare differenti dataset insieme

    Append

    Combina i dataset verticalmente, aggiungendo osservazioni. Viene usato per combinare un datasetin memoria, chiamato master data, a uno (o pi) dataset memorizzato su disco in formato-STATA,

    chiamato using data.

    La sintassi di base :

    append using filename [, nolable]dove nolable evita di copiare le definizioni dei valori delle label dal dataset su disco. Sefilename specificato senza un estensione, si assume che dia un file di Stata, cio .dta.

    Esempio creiamo piccoli dataset digitando i seguenti comandi, one.dta:

    10 11 1213 14 1516 17 18

    double chick on var1 and substitute with a; do the same with var2 andvar3 and substitute with b and c4. close the Data Editor and come back to the STATA COMMAND Window5. save c:/temp/dati/two.dta, replace6. use c:/temp/dati/one.dta7. append using c:/temp/dati/two.dta8. click on DATA BROWSER (the third button from the right)9. inspect the resultappend creato per risolvere il problema di aggiungere pi dati ad un dataset gi esistente. Tale

    comando combina datasets differenti aggiungendo verticalmente osservazioni. Il nostro esempioriguardava 2 datasets con le stesse variabili (a,b,c), ma non necessario avere tutte le variabili in

    comune.

    Per esempio potremmo avere una situazione in cui il dataset two.dta contiene a e b in comunecon il dataset one.dta, ma contiene anche d che invece one.dta non ha. append funzionaugualmente e le osservazioni del dataset creato avranno un valore missing in corrispondenza della

    variabile d.

    Il dataset in memoria viene chiamato master mentre il dataset attaccato chiamato using

    data.Questa distinzione molto importante nel prossimo comando

    Merge

    Questo comando combina i datasets orizzontalmente, aggiungendo variabili. La sua forma pi

    semplice il one-to-one matching. Il comando merge combina osservazioni dal datasetcorrentemente in memoria (chiamato master dataset) con il dataset immagazzinato come filename

    (chiamato using dataset). La sintassi di base :

    merge [varlist] using filename [, nolabel update replace nokeep_merge(varname)]dove nokeep ordina a merge di ignorare osservazioni nello using dataset che non hannocorrispondenti osservazioni nel master (per default invece queste osservazioni sarebbero aggiunte ai

    risultati del merge e segnalati con merge==2); merge(varname) specifica il nome della

    variabile che indicher la sorgente della risultante osservazione (cio se proviene dal master, dallousing data o comune ad entrambi i datasets). Il default merge(_merge). Vediamo comefunziona con un esempio (i due datasets three.dta e four.dta, sono stati gi creati e inseriti

  • 7/24/2019 Stata Tutorial- Elisa Iezzi

    26/39

    STATA TUTORIAL Elisa Iezzi

    Analisi di mercato II

    26

    nella directory mydata, perci potete andare direttamente al punto 13)1) pull down the DATA EDITOR button at the top of the screen (thefourth button from the right)2) from the left to the right write the following numbers:1 1 0 1 12 1 2 1 3

    3 1 4 1 55 1 6 1 73) double click on var1 and substitute with id; do the same withvar2 and var3 and substitute with a and b respectively4) close the DATA EDITOR and come back to the STATA COMMAND window5) sort id6) save three.dta, replace7) repeat point 18) from the left to the right write the following numbers:1 182 194 209) double click on var1 and substitute with id; do the same withvar2 substitute with d

    10) close the Data Editor and come back to the STATA COMMANDwindow11) sort id12) save c:/temp/dati /four.dta, replace13) use c:/temp/dati /three.dta, clear14) merge id using c:/corso_lavoro/mydata/four.dta15) list16) tab _merge17) keep if _merge==318) drop _merge

    Ci deve essere una o pi variabile in comunead entrambi i dataset da usare per il merge questa

    chiamata IDENTIFIER(S). Lidentifier(s) deve identificare ogni osservazione in modo univoco.

    Qui riportiamo cosa significano i codici in_merge:

    _merge==1. Osservazione solo dal master, no merge, no update _merge==2. Osservazione solo dal file using, no merge, no update

    _merge==3. Osservazione merged, ma senza update.

    _merge==4. Osservazione merged e updated, cio almeno un valore missing nel master stato updated a un valore non missing preso dallo using data.

    _merge==5. Osservazione merged ma non updated, cio lupdate rifiutato. Il risultato uguale al _merge==3, ma cerano degli updates nello using data inconsistenti con ci che

    gi si aveva e perci lupdate rifiutato.

    N.B Quale dei _merge debba essere eliminato va deciso caso per caso.

    Collapse

    collapse sostituisce i dati in memoria con un nuovo dataset consistente di medie, mediane etxc,delle variabili specificate. La sua sintassi :collapse clist [weight] [if exp ] [in range] [, by(varlist) cwfast]dove clist puo essere[(stat)] varlist [(stat)]oppure

    [(stat)] target_var=varname [target_var=varname] [(stat)]o ogni combinazione di varlist o target_var, e stat uno dei seguenti: mean (medie),sd (standar deviation), sum (somme), rawsum (somme ignorando i pesi eventualmente

  • 7/24/2019 Stata Tutorial- Elisa Iezzi

    27/39

    STATA TUTORIAL Elisa Iezzi

    Analisi di mercato II

    27

    specificati), count (numero di osservazioni non missing), max (massimo), min (minimo),median (mediana),p# (#-simo percentile), iqr (range interquantile). Se stat non specificato si assume mean.Lopzione by(varlist) specifica i gruppi su cui le medie, etc vogliono essere calcolate, cwspecifica casi da eliminare (se non specificato tutte le osservazioni vengono considerate), e fast

    indica che si puo tornare ad dataset originale premendo Break mentre il collapse vieneeseguito.

    Contract

    contract crea un dataset di frequenze. Esso sostituisce un dataset in memoria con uno nuovoconsistente in tutte le combinazioni di varlist che esistono nei dati insieme ad una nuovavariabile che contiene le frequenze di ogni combinazione. La sintassi :

    contract varlist [weight] [if exp ] [in range] [, freq(varname)zero nomiss]dove

    freq(varname)specifica il nome della variabile di frequenze (se non specificato, STATA

    crea automaticamente la variabile _freq, ma tale nome non deve essere gi presente), zerospecifica le combinazioni con frequenza zero desiderate, e nomiss specifica che le osservazionicon valori missing in ognuna delle variabili in varlist devono essere eliminate (se nonspecificato, tutte le osservazioni possibili vengono usate).

    Expand

    expand sostituisce ogni osservazione nel dataset corrente con n copie di ogni osservazione, doven uguale alla parte intera dellespressione richiesta (se lespressione meno di uno o missingallora viene interpretata come uno e losservazione non viene duplicata). La sintassi :expand [=]exp [if exp] [in range]esempioexpand 2

    Fillin

    fillin rettangolarizza un dataset aggiungendo osservazioni con dati mancanti cos che esistanotutte le interazioni delle variabili in varlist. fillin aggiunge anche la variabile _fillin aidati ed uguale ad 1 se unosservazione stata creata e zero altrimenti. La sintassi :fillin varlistPer esempio, se abbiamo sex=1 e perc=1, sex=1 e perc=0 ma abbiamo solo sex=2 e perc=0, questo

    comando aggiunger un record per sex=2 e perc=1.

    APPLICAZIONE: DESCRIZIONE DATI E SEMPLICE

    INFERENZA

    DESCRIZIONE DATI

    I dati utilizzati in questa applicazione riguardano 118 pazienti con problemi psichiatrici su 9

    variabili (Hand et al 1994) c:\temp\dati\fem.dat:

    1. id : identificativo univoco del paziente2. age: et in anni

  • 7/24/2019 Stata Tutorial- Elisa Iezzi

    28/39

  • 7/24/2019 Stata Tutorial- Elisa Iezzi

    29/39

    STATA TUTORIAL Elisa Iezzi

    Analisi di mercato II

    29

    5555 .... 1111 3333 99998888 2222 11114444 1111 tabulation: Freq. Value

    unique values: 3333 missing .: 5555/111111118888 range: [ 1111,3333] units: 1111

    type: numeric ( bbbbyyyytttteeee)

    sssslllleeeeeeeepppp SSSSLLLLEEEEEEEEPPPP

    In alternativa si possono trovare errori utilizzando:assert sleep==1|sleep==2|sleep==.

    1 contradiction in 118 observationsassertion is false

    Dato che non possiamo sapere quale sia il reale valore, al dato errato mettiamo valore mancante

    replace sleep=. if sleep==3

    Siccome le due variabili si/no hanno codificazioni diverse, assegnamo a sleep la stessa codificadella variabile life e sexrecode sleep 1=2 2=1

    E per una lettura migliore (e per non fare confusione!) creiamo le etichette:label define sn 1 no 2 silabel values sex snlabel values life snlabel values sleep sn

    La stessa cosa pu essere fatta attraverso il ciclo foreach

    label define sn 1 no 2 siforeach x in sex life sleep {label values x sn}

    Assegnate le variabili ed analizzati inizialmente i dati possiamo cominciare con le prime analisi:

    1 obiettivo: Confronto tra due gruppi

    Il primo obiettivo che ci si pone quello di confrontare i gruppi di chi ha pensato di togliersi la vita

    rispetto agli altri, attraverso un semplice confronto di statistiche sommarie delle variabili continue:

    Se iniziamo da IQ :table life, contents(mean iq sd iq)

    si 99992222....0000999988884444 5555....0000222222223333

    no 99991111....2222777700008888 3333....777755557777222200004444

    LIFE mean(iq) sd(iq)

    Un approccio maggiormente formale quello di confrontare i due gruppi sulla variabile weight

    laumento di peso negli ultimi sei mesi, attraverso il test t del confronto tra campioni indipendenti.

  • 7/24/2019 Stata Tutorial- Elisa Iezzi

    30/39

    STATA TUTORIAL Elisa Iezzi

    Analisi di mercato II

    30

    Innanzitutto abbiamo bisogno di testare se le assunzioni del test t sono valide. Un modo semplice

    quello grafico, confrontando i box-plot della variabile weight per ogni gruppo (ricordare dietichettare i grafici in modo da avere una lettura semplice e pulita!)

    label variable weight Cambiamento di peso negli ultimi 6 mesi

    graph box weight, by(life) box(1, bfcolor(none))/**/ box(2, bfcolor(none)) yline(0) medtype(line)

    -5

    0

    5

    10

    no si

    WEIGHT

    Graphs by LIFE

    Lopzione yline(0) ha permesso di mettere la linea orizzontale in posizione 0. Listruzione /**/ servono per mettere i commenti, infatti STATA ignora ci che scritto al suo interno.

    La variabile weight non sembra avere valori mediani diversi nei due gruppi e le assunzioni deltest t sembrano essere ragionevoli perch le distribuzioni sono asimmetriche con ampiezza simile-

    Si possono anche, testare le assunzioni di normalit,QQPLOT, dei residui. Se lassunzione di

    normalit soddisfatta, i quantili dei residui dovrebbero essere linearmente relazionati alla linea che

    identifica la distribuzione normale. I residui possono essere calcolati e disegnati usando:egen res=mean(weight), by(life)replace res=weight-res

    label variable res residui del test-t per la var. weightqnorm res, title(Normal Q-Q plot)

    I punti del Q-Q plot sono molto simili alla linea, ci sufficiente per per giustificare lassunzione

    di normalit

  • 7/24/2019 Stata Tutorial- Elisa Iezzi

    31/39

    STATA TUTORIAL Elisa Iezzi

    Analisi di mercato II

    31

    -10

    -5

    0

    5

    10

    residuideltest-tperlavar.weight

    -10 -5 0 5 10Inverse Normal

    Normal Q-Q plot

    Anche la differenza tra le varianze pu essere testate utilizzando:sdtest weight,by(life)

    Pr(F < f) = 0000....2222999911119999 2*Pr(F < f) = 0000....5555888833337777 Pr(F > f) = 0000....7777000088881111

    Ha: ratio < 1 Ha: ratio != 1 Ha: ratio > 1

    Ho: ratio = 1 degrees of freedom = 44444444,,,, 66660000 ratio = sd(nnnnoooo) / sd(ssssiiii) f = 0000....8888555522227777combined 111100006666 1111....55559999444433334444 ....2222666644449999444477778888 2222....777722227777888800005555 1111....000066668888999999997777 2222....111111119999666688882222

    si 66661111 1111....777733331111111144448888 ....3333666611117777888844447777 2222....888822225555666622229999 1111....00000000777744447777 2222....444455554444888822225555 no 44445555 1111....444400008888888888889999 ....3333888888889999666611116666 2222....666600009999222233334444 ....6666222244449999888888883333 2222....11119999222277779999

    Group Obs Mean Std. Err. Std. Dev. [95% Conf. Interval]Variance ratio test

    La varianza non significativamente diversa (p-value=0.58). Da notache che il test di uguaglianza

    delle varianze utilizzabile solo se la variabile normalmente distribuita.

    Non avendo trovato forti differenze visive, possiamo passare allapplicazione del t-testttest weight, by(life)

    Pr(T < t) = 0000....2222777755551111 Pr(|T| > |t|) = 0000....5555555500002222 Pr(T > t) = 0000....7777222244449999 Ha: diff < 0 Ha: diff != 0 Ha: diff > 0

    Ho: diff = 0 degrees of freedom = 111100004444 diff = mean(nnnnoooo) - mean(ssssiiii) t = ----0000....5555999999993333

    diff ----....3333222222222222555588887777 ....5555333377776666888800005555 ----1111....333388888888444499999999 ....777744443333999988882222combined 111100006666 1111....55559999444433334444 ....2222666644449999444477778888 2222....777722227777888800005555 1111....000066668888999999997777 2222....111111119999666688882222

    si 66661111 1111....777733331111111144448888 ....3333666611117777888844447777 2222....888822225555666622229999 1111....00000000777744447777 2222....444455554444888822225555 no 44445555 1111....444400008888888888889999 ....3333888888889999666611116666 2222....666600009999222233334444 ....6666222244449999888888883333 2222....11119999222277779999

    Group Obs Mean Std. Err. Std. Dev. [95% Conf. Interval]Two-sample t test with equal variances

    Il test mostra che la differenza in media stimata -0.32 il cui intervallo di confidenza del 95% va da

    -1.39 a 0.74. Il p-value di 0.55, attestando cosi che tra i due gruppi non c differenza in media

    sulla variabile weight

  • 7/24/2019 Stata Tutorial- Elisa Iezzi

    32/39

    STATA TUTORIAL Elisa Iezzi

    Analisi di mercato II

    32

    Ora supponiamo di voler confrontare la prevalenza di depressi tra coloro che hanno pensato di

    togliersi la vita e chi no. Le due variabili categoriche possono essere incrociate ed attraverso il test

    del chi-quadro utilizzando un solo comando:tabulate life depress, row chi2

    Pearson chi2(2222) = 44443333....8888777755558888 Pr = 0000....000000000000

    22223333....88885555 66660000....55555555 11115555....66660000 111100000000....00000000Total 22226666 66666666 11117777 111100009999

    0000....00000000 77772222....44441111 22227777....55559999 111100000000....00000000si 0000 44442222 11116666 55558888

    55550000....99998888 44447777....00006666 1111....99996666 111100000000....00000000no 22226666 22224444 1111 55551111

    LIFE 1 2 3 Total DEPRESS

    row percentage

    frequency

    Key

    Lopzione row usata per mostrare la percentuale di riga e per permette un facile confronto tra igruppi. Per esempio, il 51% delle persone che non hanno pensato di togliersi la vita, non sono

    depresse a differenza del valore sotto 0%. Il valore della statistica chi-quadro afferma che vi sia una

    significativa associazione tra la depressione e il tentato suicidio (p

  • 7/24/2019 Stata Tutorial- Elisa Iezzi

    33/39

    STATA TUTORIAL Elisa Iezzi

    Analisi di mercato II

    33

    2 obiettivo: Correlazioni

    Le correlazione tra le tre variabili weight, IQ e agepossono essere trovate con il comando:corr weight iq age

    age 0000....4444111133331111 ----0000....4444333366663333 1111....0000000000000000 iq ----0000....2222999922220000 1111....0000000000000000 weight 1111....0000000000000000

    weight iq age

    (obs=100)

    Le correlazione sono state valutate su 100 pazienti (obs=100) che sono quei record tutti completisulle tre variabili. Un approccio alternativo quello di usare pwcorr che include, per ognicorrelazione, tutte le osservazioni che hanno dati completi per le rispettive coppie in analisi. Cos

    risulteranno campioni diversi per le diverse correlazioni. Questa correlazione a coppie pairwise

    correlation-pwcorr pu essere ottenuta con ununica riga considerando sia la dimensione del

    campione che la significativit (p-value)

    pwcorr weight iq age, obs sig

    111100007777 111111110000 111111118888 0000....0000000000000000 0000....0000000000000000 age 0000....4444111155556666 ----0000....4444333344445555 1111....0000000000000000

    111100000000 111111110000 0000....0000000033332222 iq ----0000....2222999922220000 1111....0000000000000000

    111100007777

    weight 1111....0000000000000000

    weight iq age

    La matrice scatterplot ottenuta usando graph matrixcome segue:graph matrix weight iq age, half jitter(1)/**/ msymbol(circle_hollow) msize(small) /**/ diagonal(Cambiamento di peso Test intelligenza Et)

    Dove jitter(1) muove leggermente i punti in modo da non avere completa sovrapposizione acausa della natura discreta dei dati tra Et e Test di intelligenza.

  • 7/24/2019 Stata Tutorial- Elisa Iezzi

    34/39

    STATA TUTORIAL Elisa Iezzi

    Analisi di mercato II

    34

    Cambiamentodi peso

    Testintelligenza

    Et

    -5 0 5 10

    80

    90

    100

    110

    80 90 100 110

    30

    40

    50

    Osservando il grafico si po notare che i pazienti anziani hanno avuto un incremento di peso

    maggiore rispetto ai giovani e rispetto alle con un QI maggiore. Gli anziani di questo campiono

    tendono ad essere meno intelligenti. Cosicch et ed intelligenza sono due variabili che messe

    assieme portano confusione.

    Unaltra possibilit quella di vedere se et e peso cambiano nei due gruppi di potenziali suicidi omeno. Per un iniziale analisi grafica potremmo vedere se con un singolo scatter-plot del

    cambiamento di peso rispetto allet, in cui vengono rappresentati i due gruppi con simboli diversi.

    Questo pu essere fatto attraverso uno scatterplot sovrapposto:twoway(scatter weight age if life==1, msymbol(circle) /*

    */ mcolor(black) jitter(1)) /**/ (scatter weight age if life==2, msymbol(x) /**/ mcolor(black) jitter(1)), legend(order (1 no 2 si))

    -5

    0

    5

    10

    WEIGHT

    30 35 40 45

    AGE

    no si

  • 7/24/2019 Stata Tutorial- Elisa Iezzi

    35/39

    STATA TUTORIAL Elisa Iezzi

    Analisi di mercato II

    35

    Dal grafico risulta che dentro entrambi i gruppi, ad un et maggiore associato un maggiore peso

    ed i gruppi non si distinguono facilmente.

    Infine possiamo calcolare una correlazione tra depressione ed ansiet attraverso lindice di Kendall

    che pu essere ottenuto con:

    ktau depress anxiety

    Prob > |z| = 0000....0000000000000000 (continuity corrected)Test of Ho: depress and anxiety are independent

    SE of score = 222288888888....222277779999 (corrected for ties)Kendall's score = 1111666600003333Kendall's tau-b = 0000....4444999955551111Kendall's tau-a = 0000....2222888822227777 Number of obs = 111100007777

    La statistica tau-b ha un valore di 0.50 con un pvalue

  • 7/24/2019 Stata Tutorial- Elisa Iezzi

    36/39

    STATA TUTORIAL Elisa Iezzi

    Analisi di mercato II

    36

    La regressione logistica un una regressione per variabili dipendenti dicotomiche o binarie.

    Gli odds1 sono il rapporto tra la probabilit di successo sulla probabilit di insuccesso. La

    trasformazione logaritmica trasforma una moltiplicazione a somma e trasforma anche un insieme di

    reali positivi all'intera linea reale . Una delle trasformazioni delle probabilit maggiormente

    utilizzate definita da:

    Il modello a regressione logistica un modello dove una funzione lineare delle variabili

    esplicative (indipendenti). Il modello a regressione logistica un modello dove una

    funzione lineare delle variabili esplicative (indpendenti.)

    Per la stima dei parametri nel modello logistico viene massimizzata la log-verosimiglianza in modo

    numerico che utilizza un algoritmo iterativo

    Per una regressione logit , basta digitare

    logit depvar varlistSTATA riporta le stime di massima verosimiglianza per i coefficienti originali sia nel comando

    logit.

    Il comando logistic stima un modello logit ma riporta gli odds-ratio per ogni variabileindipendente piuttosto che i coefficienti.

    Il comando logistic offre anche molti comandi post-stime che possono essere usati per alutare

    la bont del modello. Questi comandi vengono eseguiti dopo che la stima viene realizzata. Vedere

    help logistic per una lista di questi comandi.In ultimo, tutti questi comandi (come regress) possono essere applicati su un sottocampione delle

    osservazioni, essere eseguiti senza una costante, e possono generare stime usando errori standar

    robusti tramite lopzione robust.

    DESCRIZIONE DATI

    Il dataset tumor.dat un clinical trial in cui i pazienti malati di tumore sono randomizzati perricevere due diversi tipi di chemioterapia (terapia sequenziale e terapia alternata). Il risultato

    classificato in una delle quattro categoria: malattia progressiva, nessun cambiamento, parziale

    regressione o totale remissione. La questione centrale se c una differenza evidente nei diversi

    risultati nei due tipi di terapie.

    1 Pg 211 Snijders T., Bosker R. MULTILEVEL ANALYSIS: An introduction to basic and advanced multilevel

    modeling. Sage Publications 1999

  • 7/24/2019 Stata Tutorial- Elisa Iezzi

    37/39

    STATA TUTORIAL Elisa Iezzi

    Analisi di mercato II

    37

    Assumiamo di avere un file di testo tumor.dat che contiene una matrice 4x4 delle frequenze.Innanzitutto si dovr leggere i dati e generare le variabili suddividendole per le terapie e il sesso

    utilizzando la funzione egene seq():infile fr1 fr2 fr3 fr4 using c:\temp\tumor.datlist

    4. 11112222 7777 3333 1111

    3. 44441111 44444444 22220000 22220000

    2. 4444 11112222 5555 2222

    1. 22228888 44445555 22229999 22226666

    ffffrrrr1111 ffffrrrr2222 ffffrrrr3333 ffffrrrr4444

    egen terapia=seq(), from(0) to(1) block(2)egen sesso=seq(), from(1) to(2) by(terapia)label define t 0 seq 1 altlabel values terapia tlabel define s 1 maschio 2 femminalabel values sesso s

    4. 11112222 7777 3333 1111 aaaalllltttt ffffeeeemmmmmmmmiiiinnnnaaaa3. 44441111 44444444 22220000 22220000 aaaalllltttt mmmmaaaasssscccchhhhiiiioooo2. 4444 11112222 5555 2222 sssseeeeqqqq ffffeeeemmmmmmmmiiiinnnnaaaa1. 22228888 44445555 22229999 22226666 sssseeeeqqqq mmmmaaaasssscccchhhhiiiioooo

    ffffrrrr1111 ffffrrrr2222 ffffrrrr3333 ffffrrrr4444 tttteeeerrrraaaappppiiiiaaaa sssseeeessssssssoooo

    block(2) permette di creare blocchi bi-dimensionali in cui ripetuta la sequenza di numeri (da 0a 1), dove by(terapia)provoca la sequenza e ricomincia tutte le volte che terapia cambia.

    Dopo dovremmo ristrutturare i dati per il verso della lunghezza (long), mettendo i quattro livelli

    della variabile dipendente (out come) in una variabile outc ed espandendo i risultati al datasetreplicando ogni osservazione per un numero di volte definito da freq cosicch abbiamo unosservazione per soggetto:reshape long fr, i(terapia sesso) j(outc)

    ffffrrrr1111 ffffrrrr2222 ............ ffffrrrr4444 -> ffffrrrr

    xij variables:j variable (4 values) -> oooouuuuttttccccNumber of variables 6666 -> 4444Number of obs. 4444 -> 11112222Data wide -> long

    (note: j = 1 2 3 4)

    expand fr

    (238 observations created)

    Per controllare che la conversion dei dati sia corretta:table sesso outc, contents(freq) by(terapia)

    Terapia e outc

    sesso 1 2 3 4

    seq

    maschio 28 45 29 26

    femmina 4 12 5 2

    alt

    maschio 41 44 20 20

    femmina 12 7 3 1

  • 7/24/2019 Stata Tutorial- Elisa Iezzi

    38/39

    STATA TUTORIAL Elisa Iezzi

    Analisi di mercato II

    38

    Per poter modellare la regressione logistica, bisogna avere variabili dicotomiche, per esempio,

    considerando la remissione parziale e completa come miglioramento e le altre categorie come

    nessun miglioramento. La nuova variabile pu essere generata cosi:gen miglior=outc

    recode miglior 1/2=0 3/4=1oppure usandogen miglior = outc>2

    Analisi logistica

    A questo punto possiamo iniziare e creare il modello con il primo comandologit miglior terapia

    _cons ----....333366661111555500002222 ....1111666655554444222233336666 ----2222....11119999 0000....000022229999 ----....6666888855557777222266663333 ----....0000333377772222777777777777

    terapia ----....4444999988886666999999993333 ....2222444444443333555500008888 ----2222....00004444 0000....000044441111 ----....999977777777666611118888 ----....0000111199997777888800005555

    miglior Coef. Std. Err. z P>|z| [95% Conf. Interval]

    Log likelihood = ----111199992222....33330000444477771111 Pseudo R2 = 0000....0000111100008888 Prob > chi2 = 0000....0000444400002222 LR chi2(1111) = 4444....22221111Logistic regression Number of obs = 222299999999

    Iteration 2: log likelihood = ----111199992222....33330000444477771111Iteration 1: log likelihood = ----111199992222....33330000777755553333Iteration 0: log likelihood = ----111199994444....44440000888888888888

    Lalgoritmo fa 3 iterazioni per convergere. Il coefficiente di terapia rappresenta la differenza in log

    odds (di un miglioramento) tra le terapie alternata e sequenziale. Il valore negativo indica che la

    terapia sequenziale migliore a quella alternata. Il p-value del coefficiente 0.041. Questo derivato da la statistica di Wald, z, in cui uguale al coefficiente diviso per il suo standard error

    asintotico come derivato dalla matrice Hessiana della funzione di log-verosimiglianza, valutata

    nella soluzione di massima verosimiglianza. Questo p-value meno affidabile che il p-value basato

    sul rapporto di verosimiglianza tra il modello che include solo la costante e il modello corrente, in

    cui valore mostrato in alto a destra (chi2(1)=4.21) La distribuzione approssimata se ilmodello semplice corretto con un grado di liber (perch c solo un parametro) che ha un p-value

    di 0.040, molto simile a quello basato sul test di Wald. Il coefficiente della variabile rappresenta la

    differenza in log odds tra terapie e non facile da interpretare a parte il segno. Si dovrebbe

    convertire il coefficiente attraverso una funzione complessa del rapporto tra odds in formato

    esponenziale. Il comando logisticpu essere usato per ottenere direttamente gli odds richiesti eil suo intervallo di confidenza (in alternativa, potremmo utilizzare lopzione or nel comandologit. Lerrore standard rappresenta lo standard error degli odd-ratio.

    logistic miglior terapia

    terapia ....6666000077773333222200001111 ....1111444488883333999999991111 ----2222....00004444 0000....000044441111 ....3333777766662222000066661111 ....9999888800004444111133338888

    miglior Odds Ratio Std. Err. z P>|z| [95% Conf. Interval]

    Log likelihood = ----111199992222....33330000444477771111 Pseudo R2 = 0000....0000111100008888 Prob > chi2 = 0000....0000444400002222 LR chi2(1111) = 4444....22221111Logistic regression Number of obs = 222299999999

    Per verificare se linclusione di sesso nel modello incrementa significativamente la verosimiglianza,

    il modello corrente con verosimiglianza stima pu essere salvataetimates store model1

  • 7/24/2019 Stata Tutorial- Elisa Iezzi

    39/39

    STATA TUTORIAL Elisa Iezzi

    Analisi di mercato II

    Successivamente si puo aggiungere la variabile sessologistic miglior terapia sesso

    Logistic regression Number of obs = 299LR chi2(2) = 7.55Prob > chi2 = 0.0229

    Log likelihood = -190.63171 Pseudo R2 = 0.0194------------------------------------------------------------------------------

    miglior | Odds Ratio Std. Err. z P>|z| [95% Conf. Interval]-------------+----------------------------------------------------------------

    terapia | .6051969 .1486907 -2.04 0.041 .3739084 .9795537sesso | .5197993 .1930918 -1.76 0.078 .2509785 1.076551

    ------------------------------------------------------------------------------

    Il p-value della variabile sesso basato sulla statistica di Wald ed di 0.078 e il pvalue per il

    rapporto di verosimiglianza ottenuto utilizzandolrtest model1 .

    Likelihood-ratio test LR chi2(1) = 3.35(Assumption: model1 nested in .) Prob > chi2 = 0.0674

    Che non molto diverso da 0.078. In lrtest il commando . Si riferisce al modello corrente emodel1 il modello precedete che era stato memorizzato. Noi potremmo specificare i modelli inordine inverso cosi Stata assumera che il modello con bassa log-verosimiglianza dentro allaltro

    modello. ATTENZIONE: la comparazione di modelli deve essere fatta sullo stesso campione.

    Se la variabile sesso avesse presentato valori nulli, il numero di osservazioni che contribuivano al

    modello sarebbero stati inferiori rispetto al model1. In questo caso dovremmo restringere la stima

    del primo modello. Se il secondo modello (modello completo) stato stimato per prima, questo pu

    essere ottenuto utilizzando : logistic miglior terapia if e(sample)

    A questo punto trovato il modello ideale (nel nostro caso il secondo), possiamo controllare lacapacit predittiva del modello utilizzando:predict prob

    E quattro diverse probabilit di previsione possono essere confrontate con le proporzioni osservate:table sesso, contents(mean prob mean miglior freq) by(terapia)

    terapia |and sesso | mean(prob) mean(miglior) Freq.----------+--------------------------------------------seq |

    maschio | .4332747 .4296875 128

    femmina | .2843846 .3043478 23----------+--------------------------------------------alt |

    maschio | .3163268 .32 125femmina | .1938763 .173913 23

    Il grado di accordo buono, cos appare non esservi forte interazione tra sesso e tipo di terapia.

    Potremmo testare ogni iterazione tra sesso e terapia utilizzando xi: logistic migliori.terapia*i.sesso

    I residui non sono molto informativi in questi dati perch sono solo 4 diverse previsioni