30
Test d’ipotesi sulla media Silvia Parolo 12 December 2014

Test d'ipotesi sulla media - WordPress.com · Varianzadeiduecampioni Effettuiamountestfpervedereselevarianzedeiduegruppisono ugualiodiverse. var.test(data=sangue , Colesterolo~sesso)

Embed Size (px)

Citation preview

Test d’ipotesi sulla media

Silvia Parolo

12 December 2014

Riassumendo l’esercitazione precedente

Nella lezione precedente abbiamo visto che la media campionariapuò essere un buon stimatore del valore atteso nella popolazione dacui provengono i dati.

Inoltre possiamo anche misurare la variabilità del nostro stimatoreattraverso gli intervalli di confidenza.

Verifica di ipotesi

Si fanno delle ipotesi su una caratteristica di una popolazioneoggetto di studio e “si verificano” sulla base di osservazionicampionarie.

H0 ipotesi nulla

H1 ipotesi alternativa

Test d’ipotesi sulla media con varianza nota

L’ipotesi nulla di un test d’ipotesi a due code sulla media può essereformulata nel modo seguente:

µ = µ0

dove µ0 è un valore ipotizzato della vera media della popolazione µ.

L’ipotesi alternativa è:

µ 6= µ0

La statistica test z

Il test per saggiare H0 è:

z =x̄ − µ0

σ√n

Problema

Supponiamo che il peso medio dei bambini alla nascita nel 2013 siastato 3.3 kg. In un campione di 35 nati in un ospedale quest’anno ilpeso medio dei bambini è 3.0 kg. Assumendo che la deviazionestandard della popolazione sia 1 kg, a livello di significatività dello0.05 si può rifiutare l’ipotesi nulla che la media del peso dei bambininati nel 2014 non differisce da quella dell’anno scorso?

L’ipotesi nulla è che la media µ sia 3.3

Inseriamo i dati in R e calcoliamo z

xbar <- 3mu0 <- 3.3sigma <- 1n <- 35z <- (xbar - mu0)/(sigma/sqrt(n))z

## [1] -1.775

Calcoliamo i valori critici z a livello di significatività del 5%

alpha <- 0.05

z_cr <- qnorm(1-alpha/2)

c(-z_cr, z_cr)

## [1] -1.96 1.96

Rappresentazione grafica del risultato

x <- seq(-5,5,by=0.1)plot(x,dnorm(x),xlab="z distribution", ylab="",type="l")abline(v=z,lty=2,col="blue")abline(v=c(-z_cr, z_cr),col="red")

−4 −2 0 2 4

0.0

0.1

0.2

0.3

0.4

z distribution

Invece di utilizzare il valore critico z possiamo anche calcolare ilpvalue. Siccome il pvalue risulta >= 0.05 non possiamo rifiutarel’ipotesi nulla.

pval <- 2 * pnorm(z)#moltiplichiamo per 2 per tenere conto delle due codepval

## [1] 0.07593

In conclusione non possiamo rifiutare l’ipotei nulla. La media delpeso dei nati di quest’anno è uguale all’anno scorso.

Test d’ipotesi sulla media con varianza non nota: test t

R ha una funzione per il calcolo del test t: t.test.

Esempio

Consideriamo un dataset con i valori di espressione di 40 geni.Testiamo l’ipotesi che il valore medio di espressione dei geni sia2000.

Leggiamo i dati

setwd("~/Google Drive/bio/lab_statistica_cavagna/esercitazione5/")dati <- read.csv("expression.csv")head(dati)

## gene esp## 1 Gene1 2650## 2 Gene2 1200## 3 Gene3 1541## 4 Gene4 1545## 5 Gene5 1956## 6 Gene6 1599

t test per singolo campione

t.test(dati$esp, mu=2000)

#### One Sample t-test#### data: dati$esp## t = -2.174, df = 39, p-value = 0.03583## alternative hypothesis: true mean is not equal to 2000## 95 percent confidence interval:## 1715 1990## sample estimates:## mean of x## 1852

Il pvalue < 0.05 ci fa rifiutare l’ipotesi nulla ad un livello alfa di 0.05.

Passiamo ora al confronto fra due gruppi

Spesso negli esperimenti si ha come scopo quello di confrontare duegruppi. I risultatati posso essere riassunti sotto forma di medie pergruppo. Ma come facciamo a decidere se le differenze sono reali osolo dovute al caso?

Per confrontare le medie di due gruppi si utilizzano:

I t test per gruppi indipendentiI t test per dati accoppiati

ragionando sull’ipotesi nulla:

H0: le medie dei due campioni sono uguali o ugualmente che ladifferenza delle medie è zero

H1: le medie dei due campioni sono diverse

t test per gruppi indipendenti

Supponiamo di essere interessati al variare del colesterolo infunzione del sesso.

Utilizziamo i dati nel file esami_sangue.txt

sangue <- read.table(file="esami_sangue.txt",header=T, sep="\t", dec=".")

C’è una differenza nel valore medio di Colesterolo tra maschi efemmine?

H0: µd = 0

H1: µd 6= 0

Varianza dei due campioniEffettuiamo un test f per vedere se le varianze dei due gruppi sonouguali o diverse.

var.test(data=sangue , Colesterolo~sesso)

#### F test to compare two variances#### data: Colesterolo by sesso## F = 2.613, num df = 23, denom df = 5, p-value = 0.2892## alternative hypothesis: true ratio of variances is not equal to 1## 95 percent confidence interval:## 0.4155 8.3180## sample estimates:## ratio of variances## 2.613

il pvalue non è significativo quindi le varianze sono uguali

t.test

t.test(data=sangue , Colesterolo~sesso,var.equal = T)

#### Two Sample t-test#### data: Colesterolo by sesso## t = 2.049, df = 28, p-value = 0.04994## alternative hypothesis: true difference in means is not equal to 0## 95 percent confidence interval:## 0.009984 65.711683## sample estimates:## mean in group F mean in group M## 218.1 185.2

nuovo esempio

Un ricercatore sta studiando l’infarto miocardico ed ha ipotizzatoche l’età media al verificarsi della malattia nei maschi sia inferiorealle femmine. Ha quindi raccolto un campione di 50 malati maschi efemmine e ha registrato l’età all’ insorgere della malattia. Dai datiin suo possesso cosa può dire il ricercatore?

Formalizziamo il problema

H0: la media dell’età dei maschi è uguale o maggiore a quella dellefemmine (M -F >= 0)

H1: la media dell’età dei maschi è inferiore a quella delle femmine(M - F < 0)

Leggiamo i dati

I dati sono nel dataset infarto.csv

infarto <- read.csv("infarto.csv",header=F,sep=",")str(infarto)

## 'data.frame': 50 obs. of 3 variables:## $ V1: int 1 2 3 4 5 6 7 8 9 10 ...## $ V2: Factor w/ 2 levels "F","M": 2 1 1 2 1 2 2 2 2 1 ...## $ V3: int 60 40 50 67 45 82 45 67 32 67 ...

Aggiungiamo un nome alle variabili

colnames(infarto) <- c("id","sex","age")

aggregate( formula = age~sex, data = infarto,FUN = mean )

## sex age## 1 F 76.28## 2 M 65.00

Il fattore sex

ordiniamolo per avere prima i maschi e poi le femmine

infarto$sex <- factor(infarto$sex,levels=c("M","F"))

str(infarto$sex)

## Factor w/ 2 levels "M","F": 1 2 2 1 2 1 1 1 1 2 ...

Effettuiamo adesso il test f

var.test(data=infarto, age~sex)

#### F test to compare two variances#### data: age by sex## F = 0.7805, num df = 24, denom df = 24, p-value = 0.5485## alternative hypothesis: true ratio of variances is not equal to 1## 95 percent confidence interval:## 0.3439 1.7712## sample estimates:## ratio of variances## 0.7805

Le varianze risulatno uguali

Effettuiamo adesso il t test

t.test(data=infarto, age~sex, var.equal =T,alternative="less")

#### Two Sample t-test#### data: age by sex## t = -2.797, df = 48, p-value = 0.003701## alternative hypothesis: true difference in means is less than 0## 95 percent confidence interval:## -Inf -4.516## sample estimates:## mean in group M mean in group F## 65.00 76.28

t test per dati accoppiati

Esempio modificato dahttp: // cnx. org/ content/ col10522/ 1. 40/ .

é stato effettuato uno studio per testare l’efficacia dell’ipnotismo perridurre il dolore. Il dolore è stato riportato per 8 soggetti prima edopo trattamento attraverso una scala numerica. Si può dire chedopo l’ipnotismo il dolore è minore? Fai un test al 5%.

H0: µd ≥ 0

H1: µd < 0

Leggiamo i datiil file si chiama pain.txt

dati <- read.table("pain.txt",header=T,sep="\t",dec=".")

dati

## Subject Before After## 1 A 6.6 6.8## 2 B 6.5 2.4## 3 C 9.0 7.4## 4 D 10.3 8.5## 5 E 11.3 8.1## 6 F 8.1 6.1## 7 G 6.3 3.4## 8 H 11.6 2.0

Effettuiamo il t test

res <- t.test(dati$After, dati$Before,paired =T,alternative ="less",conf.level = 0.95)

Vediamo il risultatores

#### Paired t-test#### data: dati$After and dati$Before## t = -3.036, df = 7, p-value = 0.009478## alternative hypothesis: true difference in means is less than 0## 95 percent confidence interval:## -Inf -1.175## sample estimates:## mean of the differences## -3.125

Quindi rifiuto H0. Questo significa che µd < 0 e che c’è unmiglioramento.