Campionamento Casuale Semplice

Eleonora Iannelli, Claudia Nigro, Paolo Emanuele Ponticiello

Campionamento casuale semplice

Piano di campionamento in cui ogni possibile combinazione di elementi della popolazione ha la stessa probabilità di essere scelta per il campione.

Il numero di combinazioni totale è dato dal coefficiente binomiale tra il numero di elementi da inserire nel campione e il numero di elementi della popolazione.

Ogni combinazione ha la medesima probabilità di essere scelta.

Questa probabilità è data dall’inverso del totale di combinazioni che è possibile effettuare.

Popolazione = c(1:5)
N = 6
n1 = 4

totale_combinazioni = choose(N,n1)

totale_combinazioni
[1] 15
prob_scelta = 1/(totale_combinazioni)

prob_scelta
[1] 0.06666667

Probabilità di selezione di ogni singolo campione:

La prima unità viene estratta con probabilità n/N e, dal momento che il campione è senza ripetizione, la seconda unità viene estratta con probabilità n-1/(N -1), e così via fino ad arrivare alla n-esima estrazione che viene effettuata con probabilità 1/(N - n + 1).

p_1 = n1/N

p_1
[1] 0.6666667
p_2 = (n1-1)/(N-1)

p_2
[1] 0.6
p_i = 1/((N-n1+1))

p_i
[1] 0.3333333

Probabilità di estrazione

Visto che si parla di campione casuale semplice senza reinserimento le estrazioni saranno dipendenti.

Se consideriamo la probabilità di estrarre un’i-esima unità dalla popolazione alla prima estrazione sarà:

#probabilità di ogni unità di essere selezionata alla prima estrazione 

prob_1 = 1/N
prob_1
[1] 0.1666667
#probabilità delle unità rimanenti di essere selezionate alla seconda estrazione 

prob_2 = 1/(N-1)

prob_2
[1] 0.2

è la probabilità che la i-esima unità sia estratta alla seconda estrazione dato che non è stata estratta alla prima estrazione.

Campionamento Casuale Senza Ripetizione in r

Si è realizzato un vettore contenente gli elementi di una popolazione fittizia, su cui è stata applicata la funzione per il campionamento casuale semplice.

popolazione_prova = c("Marco" , "Angelica", "Alessandra", "Eleonora", "Claudia", "Daniele", "Francesco","Cesare", "Kevin","Paolo", "Mattia", "Matteo", "Maurizio", "Angelo" , "Mariateresa", "Carmen", "Giovanni")

CCS <- function(popolazione, n) {
  popolazione = as.data.frame(popolazione)
  k = sample(1:nrow(popolazione),n)
  campione = popolazione[k,]
  campione
}
campione1 = CCS(popolazione_prova, 8)

campione1
[1] "Marco"       "Mariateresa" "Angelica"    "Angelo"      "Carmen"     
[6] "Maurizio"    "Cesare"      "Giovanni"   

Campionamento casuale con ripetizione

Si chiama campionamento casuale semplice con ripetizione il piano di campionamento tale che ciascuno degli N^n elementi possibili ordinati con ripetizione abbia la stessa probabilità di essere estratta.

La probabilità associata a ciascuna estrazione è costante e pari a:

prob_3 = 1/N

prob_3
[1] 0.1666667

In questo caso lo spazio campionario risulta costituito dall’insieme dei campioni con ripetizione. Quindi ciascun campione ordinato ha probabilità 1/N^n di essere estratto.

prob_4 = 1/(N^n1)

prob_4
[1] 0.0007716049

Esempio di campionamento casuale con ripetizione

RCS <- function(popolazione, n) {
  popolazione = as.data.frame(popolazione)
  k = sample(1:nrow(popolazione),n, replace = TRUE)
  campione = popolazione[k,]
  campione
}

campione3 = RCS(popolazione_prova, 8)
campione3
[1] "Eleonora"    "Eleonora"    "Mariateresa" "Angelo"      "Mattia"     
[6] "Paolo"       "Maurizio"    "Cesare"     

Campionamento casuale semplice con dataset “produzione”

Il dataset “produzione” riporta l’indice mensile della produzione industriale tra Gennaio 1990 e Dicembre 2003. Le osservazioni sono 168.

produzione = read.table("D:/università/secondo anno/statistica sociale e indagini campionarie/campionamento casuale/produzione.txt", header = TRUE, sep = "", dec = ".")
head(produzione)
  produzione
1       86.1
2       87.3
3       96.3
4       89.3
5       93.8
6       91.3

Costruiamo il nostro campione

Attraverso la funzione creata in precedenza possiamo creare il nostro campione.

produzione = as.data.frame(produzione)
n = 80
campione_produzione = CCS(produzione, n)
head(campione_produzione)
[1]  99.9 105.8  86.1 105.4 100.9  92.2

STIMATORI

Stimatori 1

Una volta generato il campione è nostro interesse calcolare gli stimatori principali. Per la media e il totale:

(a) Media

(b) Totale

Figure 1: Stimatori

media_totale <- function(campione, popolazione, n){
    media = sum(campione)/ n
    totale = (nrow(popolazione)/n)*sum(campione)
}

Stimatori 2

e per la varianza

varianza <- function(campione, popolazione, n){
  mediapop = sum(popolazione)/nrow(popolazione)
  mediapopquadro = sum(popolazione^2)/nrow(popolazione)
  varianzapop = (mediapopquadro - mediapop^2)
  varianzastim = (varianzapop/n)* (1- n/nrow(popolazione))
}

Per semplicità siccome entrambe le funzioni utilizzano gli stessi elementi abbiamo creato una funzione che calcola direttamente tutti e 3 gli stimatori.

Stimatori 3

StimatoriCCS <- function(campione, popolazione,n){
  #Media
  media = sum(campione)/ n

  #Varianza
  mediapop = sum(popolazione)/nrow(popolazione)
  mediapopquadro = sum(popolazione^2)/nrow(popolazione)
  varianzapop = (mediapopquadro - mediapop^2)
  varianzastim = (varianzapop/n)* (1- n/nrow(popolazione))

  #Totale
  totale = (nrow(popolazione)/n)*sum(campione)

  c("media" = media,"totale" = totale,"varianza" = varianzastim)
}
stimatori = StimatoriCCS(campione_produzione, produzione, n)
round(stimatori,2)
   media   totale varianza 
   92.07 15467.13     1.45 

Numerosità campionaria

Per calcolare la numerosità campionaria dobbiamo conoscere o avere almeno un’idea della varianza della popolazione ed è necessario fissare il valore della varianza dello stimatore che desideriamo avere.

LarghezzaCampionaria <- function(popolazione, varianzachevuoi)
  {mediapop = sum(popolazione)/nrow(popolazione)
  mediapopquadro = sum(popolazione^2)/nrow(popolazione)  
  varianzapop = (mediapopquadro-mediapop^2)
  temporaneo = nrow(popolazione)*varianzapop  
  temporaneo2 = nrow(popolazione)*varianzachevuoi + varianzapop
  
  n = temporaneo/temporaneo2
  n = ceiling(n)  
  n
}
names(stimatori) <- NULL
LarghezzaCampionaria(produzione, stimatori[3])
[1] 80

STIMATORI DI HORVITZ-THOMPSON

Stimatori di Horvitz-Thompson 1

Lo stimatore di Horvitz-Thompson per il totale Y è la seguente statistica:

dove π rappresenta la probabilità la probabilità di inclusione.

Stimatore_TotaleHT = function(campione, popolazione, n) {
  ht_totale = (sum(campione))/(n/nrow(popolazione))
  c("totale" = ht_totale)
}

Stimatori di Horvitz-Thompson 2

Lo stimatore di Horvitz-Thompson per il parametro media campionaria è:

Stimatore_MediaHT = function(campione, popolazione, n) {
  ht_media = (1/nrow(popolazione))*ht_totale
  "media" = ht_media
}

Stimatori di Horvitz-Thompson 3

Anche in questo caso abbiamo unito le due funzioni in modo da poter calcolare tutti gli stimatori con un solo comando.

Stimatori_HT = function(campione, popolazione, n) {
  ht_totale = (sum(campione))/(n/nrow(popolazione))
  ht_media = (1/nrow(popolazione))*ht_totale
  c("media" = ht_media, "totale" = ht_totale)
}

round(Stimatori_HT(campione_produzione, produzione, n),2)
   media   totale 
   92.07 15467.13