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.