PROCEDURA SURVEYSELECT Il problema fondamentale di un’indagine campionaria consiste nella scelta di un campione che sia rappresentativo della popolazione. Sono stati studiati diversi metodi di scelta di un campione in relazione alla natura della popolazione, alla particolare caratteristica che si vuole studiare, allo scopo per il quale viene effettuata l’indagine. I principali metodi sono: Campionamento casuale semplice Campionamento stratificato Campionamento stratificato con Control Sorting In SAS esiste una procedura che ha lo scopo di selezionare un campione dalla popolazione totale nel modo desiderato: questa procedura è la SURVEYSELECT. La sintassi generale è la seguente: PROC SURVEYSELECT [options]; [statement]; Analizziamo ora i metodi di campionamento sopra citati. CAMPIONAMENTO CASUALE SEMPLICE 1) Con rimpiazzo Con il campionamento casuale semplice con rimpiazzo ciascuna unità può essere selezionata più di una volta. ESEMPIO Il file dati comprende 7 variabili rilevate su 10 osservazioni. Programma SAS per costruire il dataste SAS dati data dati; input id gender$ race ses prog datalines; 147 f 2 3 1 53 53 51 f 2 108 m 1 2 2 41 36 56 m 1 18 m 3 2 3 49 44 128 m 1 153 m 4 2 3 40 39 36 f 2 50 m 2 2 2 42 53 53 m 2 ;run; math science @@; 1 2 1 3 2 2 3 1 2 3 42 46 38 44 46 31 58 47 35 39 Procediamo alla formazione del campione di 4 unità sperimentali utilizzando il campionamento casuale semplice tramite la procedura SURVEYSELECT. proc surveyselect data = dati method=urs n=4 out=SampleURS; run; Obs id gender race ses prog math science NumberHits 1 18 m 3 2 3 49 44 1 2 50 m 2 2 2 42 53 1 3 51 f 2 1 2 42 31 1 4 53 m 2 2 3 46 39 1 Opzioni utilizzate nella precedente procedura: DATA: nome del data set coi dati da cui verrà estratto il campione. METHOD: specifica il metodo che vogliamo usare per il campionamento, in questo caso URS indica il campionamento casuale semplice con ripetizione. N: specifica la dimensione del campione. OUT: crea il data set in cui verrà memorizzato il campione estratto. 2) Senza rimpiazzo Con il campionamento casuale semplice senza rimpiazzo ciascuna unità non può essere selezionata più di una volta. Si assegna a ciascuna unità sperimentale una uguale probabilità di far parte del campione (pari a n/N), e quindi ciascun campione di numerosità n ha la stessa probabilità di essere selezionato dall'intera popolazione N. ESEMPIO Procediamo alla formazione del campione di 4 unità sperimentali utilizzando il campionamento casuale semplice senza rimpiazzo tramite la procedura SURVEYSELECT utilizzando il dataste dati. proc surveyselect data = dati method=srs n=4 out=SampleSRS; run; L’output ottenuto è il seguente: Obs id gender race ses prog Math science 1 108 M 1 2 2 41 36 2 50 M 2 2 2 42 53 3 102 M 4 1 1 51 53 4 160 F 1 2 1 55 50 Selection Method Selection Method Simple Random Sampling Input Data Set DATI Random Number Seed 45866 Sample Size 4 Sampling Weight 3.125 Output Data Set SAMPLESRS SAMPLE SIZE = numerosità campionaria SELECTION PROBABILITY = probabilità di ciascuna unità sperimentale di essere selezionata. E’ data dal rapporto tra la numerosità campionaria e la numerosità della popolazione SAMPLING WEIGHT = è l’inverso del Selection Probability OUTPUT DATA SET = nome del data set in cui sarà salvato il campione estratto. Per visualizzarlo bisogna procedere con la PROC PRINT. Se non specificato vengono salvate tutte le variabili del data set originale. CAMPIONAMENTO STRATIFICATO Nelle indagini statistiche su vasta scala, spesso la popolazione può ritenersi naturalmente suddivisa in gruppi: è il caso, ad esempio, di un’indagine riguardante l’effetto di un certo vaccino per la quale si divide la popolazione in fasce di età. Si parla in questi casi di campionamento stratificato: la popolazione viene divisa in gruppi in base ai valori assunti per una determinata variabile, ogni gruppo costituisce uno strato, da ogni strato si estrae poi un campione parziale (scelto magari mediante un campionamento casuale semplice) che, insieme agli altri, concorre a formare il campione da analizzare. ESEMPIO Ritorniamo all’esempio precedente con 25 osservazioni sviluppandolo con il metodo di campionamento stratificato. Innanzi tutto è necessario ordinare i dati secondo i valori della variabile (STRATA) per cui si vuole stratificare la popolazione. proc sort data = dati out=datiordinati; by race gender; run; Utilizzando questo metodo può essere utile, per non arrivare a conclusioni errate, analizzare la tabella delle frequenze, in modo da avere un’idea del peso di ciascuno strato. proc freq data = dati; tables race*gender /norow nocol; run; Frequency Percent Table of race by gender gender race 1 f m Total 2 7 8.00 28.00 9 36.00 2 4 16.00 2 8.00 6 24.00 3 3 12.00 2 8.00 5 20.00 2 3 8.00 12.00 5 20.00 4 Total 11 14 25 44.00 56.00 100.00 Effettuiamo ora l’estrazione del campione con il metodo del campionamento stratificato in base alle due variabili race e gender. proc surveyselect data = datiordinati method=SRS n=1 out=SampleStrata; strata race gender; run; Opzioni utilizzate nella precedente procedura: o DATA, METHOD e OUT: (come prima). o N: indica il numero di osservazioni che si estraggono da ciascuno strato. Infatti in questo caso si estrae una osservazione per ciascuno strato e lo si può verificare osservando le colonne race e gender. E’ possibile estrarre un numero di osservazioni diverse per ciascuno strato. o STRATA: specifica le variabili in base alle quali si suddivide la popolazione in strati. Obs Race gender id ses prog Math science 1 1 f 160 2 1 55 50 2 1 m 108 2 2 41 36 3 2 f 51 1 2 42 31 4 2 m 53 2 3 46 39 5 3 f 139 2 1 61 55 6 3 m 22 2 3 39 56 7 4 f 26 1 1 62 61 8 4 m 153 2 3 40 39 Selection Method Simple Random Sampling Strata Variables race gender Input Data Set DATI Random Number Seed 53287 Stratum Sample Size 1 Number of Strata 8 Total Sample Size 8 Output Data Set SAMPLESTRATA CAMPIONAMENTO STRATIFICATO CON CONTROL SORTING Con questo metodo le osservazioni da mettere nel campione sono scelte da ciascun strato con il campionamento sistematico. Questo si usa spesso quando si ha a che fare con popolazioni ordinate di elementi perché essa consiste nello scegliere a caso il primo elemento e nell’estrarre poi gli altri a distanze regolari dal primo. Prima vanno ordinate le variabili. proc sort data = dati out=datiordinati2; by race gender ses; run; proc surveyselect data = datiordinati2 method=SYS RATE=0.2 out=SampleControl; strata race; control gender ses; run; Opzioni utilizzate nella precedente procedura: o DATA e OUT: (come prima). o METHOD: specifica il metodo che vogliamo usare per il campionamento, in questo caso è necessario usare il campionamento casuale sistematico (SYS). o RATE: indica la percentuale di osservazioni che devono essere estratte per ciascun strato. o STRATA: specifica le variabili in base alle quali si suddivide la popolazione in strati. o CONTROL: indica le variabili per le quali viene ordinato il data set di input. Obs race id prog math science gender ses 1 1 136 1 70 63 m 2 2 1 128 1 38 47 m 1 3 2 147 1 53 53 f 3 4 3 139 1 61 55 f 2 5 4 153 3 40 39 m 2 Selection Method Systematic Random Sampling Strata Variable race Control Variables gender ses Control Sorting Serpentine Input Data Set DATIORDINATI2 Random Number Seed Stratum Sampling Rate 70211 0.2 Number of Strata 4 Total Sample Size 5 Output Data Set SAMPLECONTROL ISTRUZIONI DISPONIBILI PER PROC SURVEYSELECT. PROC SURVEYSELECT OPTIONS; DATA: specifica il data set di input; se non è presente prende di default l’ultimo creato. OUT: specifica il data set di output che contiene il campione; se non è presente la procedura crea un data set di output e lo chiama secondo la convenzione DATAn. METHOD: indica il metodo usato; alcuni dei possibili metodi sono: SYS campionamento sistematico (selezione sistematica con probabilità proporzionale alla grandezza) SRS campionamento casuale semplice PPS campionamento con probabilità proporzionale alla grandezza e senza rimpiazzo Se non è specificato il metodo e non c’è l’istruzione SIZE per default viene usato il metodo SRS; se invece non è specificato il metodo ma c'è l'istruzione SIZE la procedura usa la PPS SAMPSIZE: Si posso specificare le dimensioni del campione con: SAMPSIZE=n (intero positivo) che specifica la numerosità campionaria; se si procede con un campionamento stratificato e si specifica SAMPSIZE=n vengono prelevate n osservazioni per ciascuno strato. Per i metodi di selezione senza rimpiazzo n deve essere più piccolo del numero di unità del DSS. SAMPSIZE = (values) per prelevare campioni di diversa numerosità da ciascuno strato. Si elencano le numerosità (che devono essere tante quanti sono gli strati) separati da uno spazio. Il DSS deve essere ordinato in ordine crescente delle variabili STRATA. SAMPSIZE= sas-data-set, che chiama un secondo data set di input che contiene le dimensioni degli strati dei campioni (si possono prelevare quantità diverse da ciascun strato). SAMPRATE:invece che il numero esatto di osservazioni estratte da ciascun strato si può indicare la percentuale di unità da estrarre da ciascun strato. SAMPRATE=r : r può essere un numero compreso tra 0 e 1, oppure essere espresso in percentuale, quindi un numero compreso tra 1 e 100. STATS: include (quando non c'è STRATA) le probabilità di selezione e i pesi di campionamento nel DSS di output (per SRS e SYS) SORT: specifico il tipo di campionamento secondo variabili di controllo. STRATA varibile; Specifica una o più variabili del data set di input secondo le quali si dovranno ripartire le osservazioni in gruppi non sovrapposti. La procedura poi selezionerà indipendentemente i campioni da questi strati. Se si specifica l'istruzione CONTROL (oppure METHOD=PPS) il DSS deve essere ordinato in ordine crescente delle vasriabili STRATA (non si può usare l'opzione STRATA NOTSORTED o STRATA DESCENDING con l'istruzione CONTROL o METHOD=PPS). Metodi per ordinare il data set di input: 1. Si usa la PROC SORT con le variabili STRATA 2. Se non c'è l'istruzione CONTROL o METHOD=PPS, si specificano le opzioni DESCENDING o NOTSORTED (i dati vengono ordinati in gruppi in base ai valori delle variabili STRATA) 3. Si crea un indice di variabili STRATA con la procedura DATASETS La procedura tratta i valori missing per le variabili STRATA come qualsiasi altro valore. I valori missing formano uno strato separato. CONTROL varibile; Indica le variabili (che possono essere numeriche e carattere) per le quali viene ordinato il data set di input, prima della selezione del campione. Se si specifica un'istruzione STRATA, la procedura ordina in base alle variabili CONTROL dentro allo strato. Per default quando si usa questa istruzione il data set ordinato sostituisce quello di input. Per evitare che ciò avvenga si chiama un data set di output con l'opzione OUTSORT=. /*si usa per i metodi SYS, PPS_SYS, SEQ, PPS_SEQ*/ Due tipi di ordinamento: 1. SERPENTINA (ordinamento di default. SORT=SERP): la procedura ordina le osservazioni in ordine crescente della prima variabile CONTROL. Dentro al primo livello della variabile si ordina in ordine crescente della seconda variabile CONTROL. Dentro al secondo livello si ordina in ordine decrescente della seconda variabile CONTROL. Si procede così alternando tra ordinamento cre scente e decrescente. 2. ANNIDATO (specificando l'opzione SORT=NEST): si procede allo stesso modo utilizzando però solo l'ordinamento crescente. SIZE varibile; Identifica la variabile (che può essere solo di tipo numerico) che contiene le dimensioni. Necessaria solo per i metodi di selezione in cui la probabilità di selezione di un'unità è proporzionale alla sua grandezza (PPS). Quando un valore dell’osservazione della variabile SIZE è non positivo o missing, questa osservazione non potrà essere selezionata per il campione. Sul "log" comparirà una nota con il numero di osservazioni omesse. ID varibile; Indica le variabili (che possono essere numeriche e carattere) del data set di input che devono essere incluse nel data set di output; se ID non viene specificato, di default, nel data set di output vengono incluse tutte le variabili.