venerdì 14 novembre 2008

Test z a un solo campione

Confronto della media campionaria con un valore noto, varianza nota.

È stato effettuato un test di intelligenza su 10 soggetti, e di seguito vengono riportati i risultati ottenuti. Il risultato medio della popolazione ottenuto allo stesso test è pari a 75. Si vuole verificare se la media campionaria è significativamente simile (si ponga il livello di significatività pari al 5%) alla media della popolazione, supponendo che la varianza sia nota e pari a 18.

65, 78, 88, 55, 48, 95, 66, 57, 79, 81

Per risolvere questo problema è necessario sviluppare un test z a un solo campione. In R non esiste una funzione del genere, per questo motivo possiamo scegliere di eseguire i calcoli singolarmente, oppure di creare una funzione apposita.
Ricordando la formula per calcolare il valore di z, possiamo procedere scrivendo questa funzione:

> z.test = function(a, mu, var){
+ zeta = (mean(a) - mu) / (sqrt(var / length(a)))
+ return(zeta)
+ }


Abbiamo costruito così la funzione z.test che ricevendo in input la sequenza di dati (a), la media della popolazione con cui eseguire il confronto (mu), e la varianza della popolazione (var), restituisce il valore di zeta. Applichiamo ora la funzione al nostro problema.

> a = c(65, 78, 88, 55, 48, 95, 66, 57, 79, 81)
>
> z.test(a, 75, 18)
[1] -2.832353


Il valore di zeta è pari a –2.83, che è maggiore (in valore assoluto) rispetto al valore di zeta tabulato per alfa pari a 0.05 (zeta-tabulato = 1.96). Concludiamo quindi che la media del nostro campione è significativamente diversa dalla media della popolazione.

10 commenti:

  1. scusa ma -2.83 non è minore rispetto a 1.96? o non ho ben capito io? paola

    RispondiElimina
  2. Hai ragione, Paola, ho dimenticato di specificare che in questo test, nel confronto tra Z-calcolato e Z-tabulato, occorre considerare i valori assoluti.
    :)

    RispondiElimina
  3. ma come si calcola il valore di z tabulato?

    RispondiElimina
  4. @ Walter:
    Io in genere lo cerco sulle tavole che stanno praticamente in ogni libro di statistica. Altrimenti per calcolare quel valore (1.96) dell'esercizio, puoi digitare:
    qt(0.975, 10000000000)
    in quanto la distribuzione t a infiniti gradi di libertà, è la distribuzione zeta. 0.975 è il valore di alpha.

    RispondiElimina
  5. ciao sono jajouka.
    ma
    zeta = (mean(a) - mu) / (sqrt(var / length(a)))
    non dovrebbe essere
    zeta = (mean(a) - mu) / (var / sqrt(length(a)))

    RispondiElimina
    Risposte
    1. No, perché sta usando la varianza (della popolazione) e non la deviazione standard. La tua formula sarebbe stata corretta se al posto di var ci fosse stata la ds (sempre della pop). ds=sqrt(var).

      Elimina
  6. @ Todos Logos scusa ti volevo chiedere ma nel caso del test z devo sempre prendere infiniti gradi di libertà per il valore? Grazie infinite

    RispondiElimina
  7. scusa ma nella library BSDA c'è la funzione z.test

    RispondiElimina
  8. e perchè non funziona se installo quella libreria?

    RispondiElimina