ESERCIZI 6
Funzioni in R relative alla variabile aleatoria normale di parametri (µ, σ) (attenzione il parametro da fornire `e la standard deviation σ)
dnorm(x,mu,sigma) pnorm(x,mu,sigma) qnorm(a,mu,sigma) rnorm(N,mu,sigma) 1. Discutere i seguenti due esempi tratti dal libro Ricerca con R - Metodi di inferenza statistica di
R. Micciolo, G. Espa e L. Canal, edito da Apogeo nel 2013.
1. Esempio 1.1
La Federal Trade Commission (FTC) sottopone periodicamente a verifica le dichiarazioni dei produttori a proposito dei prodotti che commercializzano. In particolare la FTC vuole verificare se i barattoli di caff`e venduti dalla Hilltop Coffee contengono effettivamente 3 libbre di caff`e. Al riguardo la FTC seleziona un campione di 36 barattoli di caff`e Hilltop per il quale la media campionaria x `e 2.92 libbre. Sapendo da studi precedenti che la deviazione standard della popolazione pu`o essere considerata nota e pari a 0.18 libbre, il risultato campionario `e compatibile con quanto dichiarato nelle etichette dalla Hilltop?
(Anderson, Sweeney, Williams, 2011).
2. Esempio 1.2
Negli USA, secondo il Centro Nazionale di Statistica Sanitaria, la distribuzione della pres- sione arteriosa (massima) per i maschi dai 35 ai 44 anni pu`o essere considerata Gaussiana di media 128 mm Hg e deviazione standard 15 mm Hg. Il direttore sanitario di una societ`a analizza le cartelle sanitarie di un campione di 72 dirigenti della sua azienda in quella classe di et`a riscontrando una pressione media x pari a 126.07 mm Hg. Questo risultato rapp- resenta una prova evidente che la pressione dei dirigenti dell’azienda `e diversa da quella misurata nella popolazione di riferimento? (Moore, 2005).
2. Consideriamo un test con livello di significativit`a α sulla media di una variabile aleatoria normale con varianza nota σ2con due tipi di ipotesi (nulla e alternativa).
1. Le ipotesi sono
H0 : µ ≥ µ0 H1 : µ < µ0 i. Supponiamo µ0 = 2 e σ2 = 4 (noto). Fissiamo α = 0.05.
Simuliamo un campione di numerosit`a n_estratti=80 da una variabile aleatoria nor- male di parametri mu_0=2 e sigma_X=2 e calcoliamo la soglia della regione di rifiuto di H0. Quindi controlliamo se appartiene o meno a R0.
mu_0=2;sigma_X=2;alpha=0.05 n_estratti=80
sigma_Xmedio=sigma_X=2/sqrt(n)
s=qnorm(alpha,mu_0,sigma_Xmedio);s ## attenzione sigma_Xmedio [1] 1.451715
campione=rnorm(n_estratti,mu_0,sigma_X) ## attenzione sigma_X
mean(campione)<s ## operazione logica che ha come risultato TRUE o FALSE [1] FALSE
Con quale probabilit`a ci aspettiamo il risultato FALSE?
ii. Il seguente programma R costruisce una function di nome simul_z_test_oneside_left che
- simula n_campioni campioni ciascuno con n_estratti elementi, estratti da una variabile aleatoria normale di media mu_0 e di standard deviation sigma
- controlla, per ciascun campione estratto, se la media campionaria appartiene o meno alla ragione di rifiuto di H0
- calcola il numero e la percentuale di realizzazioni della media campionaria che appartengono alla regione di rifiuto.
## parametri della funzione
## n_campioni: numero di simulazioni (o campioni) da effettuare
## n_estratti: numero di estrazioni per ogni campione
## alpha: livello di significativita‘
## mu_0: ipotesi nulla del test
## sigma_X: standard deviation nota della variabile X
1
simul_z_test_oneside_left=function(n_campioni,n_estratti,alpha,mu_0,sigma_X)
{ ## la parentesi graffa aperta indica l’inizio delle operazioni della funzione n_estr=n_estratti*n_campioni ## numero totale di estrazioni
campioni=matrix(rep(0,n_estr),nrow=n_estratti,byrow=T) lim=qnorm(1-alpha,0,1)*sigma_X/sqrt(n_estratti) sin=0
for (i in 1:n_campioni)
{ ## la parentesi graffa aperta indica l’inizio delle operazioni del ciclo for campioni[,i]=rnorm(n_estratti,mu_0,sigma_X)
sin=sin+(mean(campioni[,i])<mu_0-lim)
## in una somma i valori TRUE e false sono codificati anche con 1 e 0 } ## la parentesi graffa chiusa indica la fine delle operazioni del ciclo for print(paste("numero e percentuale di campioni con media nella regione di rifiuto: ",
sin," ",sin/n_campioni*100,"%")) } ## la parentesi graffa chiusa indica la fine delle operazioni della funzione
La funzione viene richiamata ad esempio nel seguente modo
simul_z_test_oneside_left(1000,80,0.05,0.5,2)
Ripetere la simulazione alcune volte e controllare la stabilit`a dei risultati.
Far eseguire la funzione modificando un parametro alla volta e controllare che cosa cambia.
2. Le ipotesi sono
H0 : µ = µ0 H1 : µ 6= µ0
La seguente function di nome simul_z_test_twoside simula esperimenti per queste ipotesi.
simul_z_test_twoside=function(n_campioni,n_estratti,alpha,mu_0,sigma_X)
{ ## la parentesi graffa aperta indica l’inizio delle operazioni della funzione
n_estr=n_estratti*n_campioni ## numero totale di campioni campioni=matrix(rep(0,n_estr),nrow=n_estratti,byrow=T)
## matrice con colonne i campioni e in riga i valori del campione lim=qnorm((1-alpha/2),0,1)*sigma_X/sqrt(n_estratti)
sin=0;ds=0
for (i in 1:n_campioni)
{ ## la parentesi graffa aperta indica l’inizio delle operazioni del ciclo for campioni[,i]=rnorm(n_estratti,mu_0,sigma_X)
sin=sin+(mean(campioni[,i])<mu_0-lim) ds =ds +(mean(campioni[,i])>mu_0+lim)
} ## la parentesi graffa chiusa indica la fine delle operazioni del ciclo for
print(paste("numero e percentuale campioni con media nella regione di rifiuto sinistra: ", sin," ",(sin/n_campioni*100),"%" )) print(paste("numero e percentuale campioni con media nella regione di rifiuto destra: ",
ds," ",ds/n_campioni*100,"%")) print(paste("percentuale di campioni con media nella regione di rifiuto: ",
(sin+ds)/n_campioni*100,"%")) } ## la parentesi graffa chiusa indica la fine delle operazioni della funzione
Ripetere la simulazione alcune volte e controllare la stabilit`a dei risultati.
Far eseguire la funzione modificando un parametro alla volta e controllare che cosa cambia.
2