Sei sulla pagina 1di 13

1

Test della media


Il concetto principale alla base della inferenza sulle medie quello della grandezza errore standard della
media, o SEM. Essa rappresenta la variazione di n campioni dal loro valore medio, diciamolo m; cio:
SEH = on. uesto significa c!e se si prendono n campioni estratti da una popolazione " e si calcola la
media di essi, questa media una variabile casuale, ed !a una distribuzione c!e pi stretta di un fattore
n di quella dei campioni originali.
Considerando il teorema del limite centrale, allora si capisce perch questa caratteristica cos importante. Insomma,
in virt di questo teorema, ed in virt di altre approssimazioni (ad esempio di una binomiale con una normale in
condizioni non troppo gravose) la distribuzione ormale un ri!erimento teorico di validit" ampia.
I criteri di stima della media sono basati sul fatto c!e le medie campionarie dei campioni di n elementi
saranno, ad esempio in una proporzione pari al #$%, distribuite in un intervallo compreso fra il valore
calcolato dai campioni ed un intervallo centrato su tale media ampio &'()*: t =
x -
0
SLM
, per cui +risolvendo,
rispetto a p
0
, si ottiene c!e la media compresa fra x t
u2
SEH.
Il test di stima della media insomma si basa sul campione e sulla SEM estratta dal campione stesso. Il
calcolo dell-intervallo usa entrambe le +statistic!e,, la media e la SEM campionaria.
In ., il test fa parte del pacc!etto base e prende il nome di t.test; il risultato del test indica, in una riga del
tipo:
t = -5.4349, df = 21.982, p-value = 1.855e-05

il valore della variabile casuale t, i gradi di libert/ ed il valore della statistica p; esso avr/ in generale un
valore maggiore o minore di quello della statistica c!e corrisponde al livello di significativit/ scelto, per
default pari al #$%.
uindi, il percorso logico 0:
nr campioni gradi libert della t-di Student Ipotesi H0 (media assegnata lanciando la funzione) p
1n valore +piccolo, di p indica c!e poco verosimile c!e ( per i campioni passati alla funzione 2 la media
assuma il valore indicato come parametro 3e pari a 4 per default5.
Sintassi
6lternative7,greater, +less, abbreviazione alt7, 8,
7
Comando in R - t test di base

t.test(x, y = NULL,
alternative = c("two.sided", "less", "greater"),
mu = 0, paired = FALSE, var.equal = FALSE,
conf.level = 0.95, ...)
Examples
require(graphics)
.icordare 2 in R i comandi
indicati nella sintassi mostrano i
valori assunti per default.

)


t.test(1:10, y = c(7:20)) # P = .00001855
t.test(1:10, y = c(7:20, 200)) # P = .1245 -- NOT significant anymore

## Classical example: Student's sleep data
plot(extra ~ group, data = sleep)
## Traditional interface
with(sleep, t.test(extra[group == 1], extra[group == 2]))
## Formula interface
t.test(extra ~ group, data = sleep)

sleep
extra group ID
1 0.7 1 1
2 -1.6 1 2
3 -0.2 1 3
4 -1.2 1 4
5 -0.1 1 5
6 3.4 1 6
7 3.7 1 7
8 0.8 1 8
9 0.0 1 9
10 2.0 1 10
11 1.9 2 1
12 0.8 2 2
13 1.1 2 3
14 0.1 2 4
15 -0.1 2 5
16 4.4 2 6
17 5.5 2 7
18 1.6 2 8
19 4.6 2 9
20 3.4 2 10
Output
require(graphics)

> t.test(1:10, y = c(7:20)) # P = .00001855

Welch Two Sample t-test

data: 1:10 and c(7:20)
t = -5.4349, df = 21.982, p-value = 1.855e-05
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
-11.052802 -4.947198
sample estimates:
mean of x mean of y
5.5 13.5


> t.test(1:10, y = c(7:20, 200)) # P = .1245 -- NOT significant anymore

Welch Two Sample t-test

data: 1:10 and c(7:20, 200)
t = -1.6329, df = 14.165, p-value = 0.1245
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
-47.242900 6.376233

9

sample estimates:
mean of x mean of y
5.50000 25.93333

> ## Classical example: Student's sleep data
> plot(extra ~ group, data = sleep)
Aspetto per confermare cambio pagina...

> ## Traditional interface
> with(sleep, t.test(extra[group == 1], extra[group == 2]))

Welch Two Sample t-test

data: extra[group == 1] and extra[group == 2]
t = -1.8608, df = 17.776, p-value = 0.07939
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
-3.3654832 0.2054832
sample estimates:
mean of x mean of y
0.75 2.33

> ## Formula interface
> t.test(extra ~ group, data = sleep)

Welch Two Sample t-test

data: extra by group
t = -1.8608, df = 17.776, p-value = 0.07939
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
-3.3654832 0.2054832
sample estimates:
mean in group 1 mean in group 2
0.75 2.33

Interessante il grafico costruito, bo: plot sulle due medie di gruppo:

;



Test di proporzioni
Il test per una singola proporzione p basato su una distribuzione binomiale, ma pu< essere approssimato
da una normale per un numero = abbastanza grande e si il prodotto p pari ad alcune unit/. In questo
caso, la media np e la varianza p(#$p).
>a funzione in R prop.test; gli argomenti possono essere tre, ed in tal caso saranno, nell-ordine: p,,m
%
,
con m
%
media testata come ?
4
. >a variabile: u =
x-Np
0
Np
0
(1-p
0
)
una N(0,1) cos@ come u
)
una _
2
con 1 grado
di libert/. "erci<:
> prop.test(39,215,0.15)

1-sample proportions test with continuity correction

data: 39 out of 215, null probability 0.15
X-squared = 1.425, df = 1, p-value = 0.2326
alternative hypothesis: true p is not equal to 0.15
95 percent confidence interval:
0.1335937 0.2408799
sample estimates:
p
0.1813953

Aolendo usare la binomiale, con stessa sintassi:

binom.test(39,215,0.15)
Exact binomial test

data: 39 and 215
number of successes = 39, number of trials = 215, p-value = 0.2135
alternative hypothesis: true probability of success is not equal to 0.15
95 percent confidence interval:
0.1322842 0.2395223
sample estimates:
probability of success
1 2
-
1
0
1
2
3
4
5
group
e
x
t
r
a

$

0.1813953

B!e fornisce risultati molto simili.

prop.test(x, n, p = NULL,
alternative = c("two.sided", "less", "greater"),
conf.level = 0.95, correct = TRUE)

>a funzione prop.test con due argomenti assume come ?
4
il valore 4.$.
>e condizioni diverse sono specificate con alternative.
Examples
heads <- rbinom(1, size = 100, prob = .5)
prop.test(heads, 100) # continuity correction TRUE by default
prop.test(heads, 100, correct = FALSE) #

## Data from Fleiss (1981), p. 139.
## H0: The null hypothesis is that the four populations from which
## the patients were drawn have the same true proportion of smokers.
## A: The alternative is that this proportion is different in at
## least one of the populations.

smokers <- c( 83, 90, 129, 70 )
patients <- c( 86, 93, 136, 82 )
prop.test(smokers, patients)
Output

> heads <- rbinom(1, size = 100, prob = .5)

> prop.test(heads, 100) # continuity correction TRUE by default

1-sample proportions test with continuity correction

data: heads out of 100, null probability 0.5
X-squared = 0.01, df = 1, p-value = 0.9203
alternative hypothesis: true p is not equal to 0.5
95 percent confidence interval:
0.3894281 0.5913488
sample estimates:
p
0.49

> prop.test(heads, 100, correct = FALSE)

1-sample proportions test without continuity correction

data: heads out of 100, null probability 0.5
X-squared = 0.04, df = 1, p-value = 0.8415
alternative hypothesis: true p is not equal to 0.5
95 percent confidence interval:
0.3942200 0.5865199
sample estimates:
p
0.49


C


> ## Data from Fleiss (1981), p. 139.
> ## H0: The null hypothesis is that the four populations from which
> ## the patients were drawn have the same true proportion of smokers.
> ## A: The alternative is that this proportion is different in at
> ## least one of the populations.
>
> smokers <- c( 83, 90, 129, 70 )

> patients <- c( 86, 93, 136, 82 )

> prop.test(smokers, patients)

4-sample test for equality of proportions without continuity
correction

data: smokers out of patients
X-squared = 12.6004, df = 3, p-value = 0.005585
alternative hypothesis: two.sided
sample estimates:
prop 1 prop 2 prop 3 prop 4
0.9651163 0.9677419 0.9485294 0.8536585



binom.test(x, n, p = 0.5,
alternative = c("two.sided", "less", "greater"),
conf.level = 0.95)

Examples
## Conover (1971), p. 97f.
## Under (the assumption of) simple Mendelian inheritance, a cross
## between plants of two particular genotypes produces progeny 1/4 of
## which are "dwarf" and 3/4 of which are "giant", respectively.
## In an experiment to determine if this assumption is reasonable, a
## cross results in progeny having 243 dwarf and 682 giant plants.
## If "giant" is taken as success, the null hypothesis is that p =
## 3/4 and the alternative that p != 3/4.
binom.test(c(682, 243), p = 3/4)
binom.test(682, 682 + 243, p = 3/4) # The same.
## => Data are in agreement with the null hypothesis.
Output
> ## Conover (1971), p. 97f.
> ## Under (the assumption of) simple Mendelian inheritance, a cross
> ## between plants of two particular genotypes produces progeny 1/4 of
> ## which are "dwarf" and 3/4 of which are "giant", respectively.
> ## In an experiment to determine if this assumption is reasonable, a
> ## cross results in progeny having 243 dwarf and 682 giant plants.
> ## If "giant" is taken as success, the null hypothesis is that p =
> ## 3/4 and the alternative that p != 3/4.
> binom.test(c(682, 243), p = 3/4)

Exact binomial test

data: c(682, 243)
number of successes = 682, number of trials = 925, p-value = 0.3825
alternative hypothesis: true probability of success is not equal to 0.75

D

95 percent confidence interval:
0.7076683 0.7654066
sample estimates:
probability of success
0.7372973


bnm.ts> binom.test(682, 682 + 243, p = 3/4) # The same.

Exact binomial test

data: 682 and 682 + 243
number of successes = 682, number of trials = 925, p-value = 0.3825
alternative hypothesis: true probability of success is not equal to 0.75
95 percent confidence interval:
0.7076683 0.7654066
sample estimates:
probability of success
0.7372973


bnm.ts> ## => Data are in agreement with the null hypothesis.



1n test parametrico c!e non parte dalla assunzione c!e la distribuzione sia normale quello di Wilcox. Il
risultato in . piE stringato di quello del test it classico, perch non ci sono parametri da stimare. >-unica
ipotesi c!e la distribuzione simmetrica.


wilcox.test(x, ...)

## Default S3 method:
wilcox.test(x, y = NULL,
alternative = c("two.sided", "less", "greater"),
mu = 0, paired = FALSE, exact = NULL, correct = TRUE,
conf.int = FALSE, conf.level = 0.95, ...)
Examples
wlcx.t> require(graphics)


wlcx.t> ## One-sample test.
wlcx.t> ## Hollander & Wolfe (1973), 29f.
wlcx.t> ## Hamilton depression scale factor measurements in 9 patients with
wlcx.t> ## mixed anxiety and depression, taken at the first (x) and second
wlcx.t> ## (y) visit after initiation of a therapy (administration of a
wlcx.t> ## tranquilizer).
wlcx.t> x <- c(1.83, 0.50, 1.62, 2.48, 1.68, 1.88, 1.55, 3.06, 1.30)

wlcx.t> y <- c(0.878, 0.647, 0.598, 2.05, 1.06, 1.29, 1.06, 3.14, 1.29)

wlcx.t> wilcox.test(x, y, paired = TRUE, alternative = "greater")

Wilcoxon signed rank test

data: x and y
V = 40, p-value = 0.01953
alternative hypothesis: true location shift is greater than 0


wlcx.t> wilcox.test(y - x, alternative = "less") # The same.

Wilcoxon signed rank test

F


data: y - x
V = 5, p-value = 0.01953
alternative hypothesis: true location is less than 0


wlcx.t> wilcox.test(y - x, alternative = "less",
wlcx.t+ exact = FALSE, correct = FALSE) # H&W large sample

Wilcoxon signed rank test

data: y - x
V = 5, p-value = 0.01908
alternative hypothesis: true location is less than 0


wlcx.t> # approximation
wlcx.t>
wlcx.t> ## Two-sample test.
wlcx.t> ## Hollander & Wolfe (1973), 69f.
wlcx.t> ## Permeability constants of the human chorioamnion (a placental
wlcx.t> ## membrane) at term (x) and between 12 to 26 weeks gestational
wlcx.t> ## age (y). The alternative of interest is greater permeability
wlcx.t> ## of the human chorioamnion for the term pregnancy.
wlcx.t> x <- c(0.80, 0.83, 1.89, 1.04, 1.45, 1.38, 1.91, 1.64, 0.73, 1.46)

wlcx.t> y <- c(1.15, 0.88, 0.90, 0.74, 1.21)

wlcx.t> wilcox.test(x, y, alternative = "g") # greater

Wilcoxon rank sum test

data: x and y
W = 35, p-value = 0.1272
alternative hypothesis: true location shift is greater than 0


wlcx.t> wilcox.test(x, y, alternative = "greater",
wlcx.t+ exact = FALSE, correct = FALSE) # H&W large sample

Wilcoxon rank sum test

data: x and y
W = 35, p-value = 0.1103
alternative hypothesis: true location shift is greater than 0


wlcx.t> # approximation
wlcx.t>
wlcx.t> wilcox.test(rnorm(10), rnorm(10, 2), conf.int = TRUE)

Wilcoxon rank sum test

data: rnorm(10) and rnorm(10, 2)
W = 6, p-value = 0.0003248
alternative hypothesis: true location shift is not equal to 0
95 percent confidence interval:
-3.4575256 -0.9910623
sample estimates:
difference in location
-2.396906


wlcx.t> ## Formula interface.
wlcx.t> boxplot(Ozone ~ Month, data = airquality)
Aspetto per confermare cambio pagina...

wlcx.t> wilcox.test(Ozone ~ Month, data = airquality,
wlcx.t+ subset = Month %in% c(5, 8))


#

Wilcoxon rank sum test with continuity correction

data: Ozone by Month
W = 127.5, p-value = 0.0001208
alternative hypothesis: true location shift is not equal to 0

Warning message:
In wilcox.test.default(x = c(41L, 36L, 12L, 18L, 28L, 23L, 19L, :
cannot compute exact p-value with ties


Test a due campioni

>-ipotesi c!e I due campioni prevengano da una distribuzione con la stessa media.
Bampione 1 = G1, *1
Bampione 1 = G), *)
?4: G1 7 G)

Si calcola:

t =
x1 -x2

SLM
, SEHM 7 (SEH
1
2
+SEH
2
2
).

Ici sono due modi per calcolare SEHM, a seconda c!e si assuma c!e la deviazione standard dei due campioni sia la
stessa o no.

6pproccio +classico, ( la varianza la stessaJ ; si calcola una d.s +combinta, o pooled;
in questo caso, sotto la ipotesi nulla valida, la distribuzione di t una t(Student con n#&n'$' gradi di libert".

Si deve specificare: t.test(a~f, var.equal=T)
6pproccio alternativo 2 si stimano le due d.s. come separate, secondo il metodo di Welch. In qs caso la distribuzione
=K= una t(Student, ma ci si approssima.

Si deve specificare: t.test(a~f)

Il formato da usare ric!iede c!e la variabile numerica sia in un vettore, ed il fattore c!e distingue le due variabili in
unLaltra; le due devono essere in un data frame.

t.test(var_num ~var_fatt)
5 6 7 8 9
0
5
0
1
0
0
1
5
0

14

Il risultato simile a quello del test t, si noti c!e lintervallo di conidenza ! rierito alla dierenza delle due medie e
quindi dovrebbe contenere lo 4 se le due sono uguali.

Hue campioni di proporzioni si testano con la medesima funzione gi/ vista, questa volta fornendo per< due vettori
contenenti le due p e le due .
=ell-esempio si due vettori sono costruiti con la funzione c().

> psuccesso<-c(9,4)
> ncampioni<-c(12,13)
> prop.test(psuccesso,ncampioni)

2-sample test for equality of proportions with continuity correction

data: psuccesso out of ncampioni
X-squared = 3.2793, df = 1, p-value = 0.07016
alternative hypothesis: two.sided
95 percent confidence interval:
0.01151032 0.87310506
sample estimates:
prop 1 prop 2
0.7500000 0.3076923

Il test considera la differenza J =
x
1
N
1
-
x
2
N
2
, c!e sar/ approssimata da una =ormale con media 4 e varianza
I
p
(J) = [
1
N
1
, +
1
N
2
, - p(1 -p), se le due distribuzioni !anno stesso parametro p. uindi la
distribuzione testata : u =
J
I
p
(J)
_
, c!e approssima una =ormale.
=ell-esempio, c- di strano c!e l-intervallo della media =K= contiene lo 4, quindi si direbbe c!e il test
significativo 3la differenza diversa di zero5. Invece, la statistica indica un p value 7 4,4D. In realt/, la
correzione per continuit/ 3assenta come M.1E per default del test5 rende l-intervallo di confidenza un po-
piE ampio. >a differenza appare piE pronunciata perc!0 e dati dell-esempio sono cos@ sparsi.

"er essere sicuri c!e almeno il test del p$value sia corretto, si pu< usare il test di Nis!er. In R, i dati devono
essere imputati sotto forma di matrice, dove si badi si forniscono le p e le 31(p5 cio le probabilit/ negative
invece delle numerosit/ =:

> m<-matrix(c(9,4,3,9),2)
> m
[,1] [,2]
[1,] 9 3
[2,] 4 9
> fisher.test(m)

Fisher's Exact Test for Count Data

data: m
p-value = 0.04718
alternative hypothesis: true odds ratio is not equal to 1
95 percent confidence interval:
0.9006803 57.2549701
sample estimates:
odds ratio
6.180528

B!e questa volta indica significativit/, anc!e se di poco.


11



"N#$"

Bomando di base:

lm (x ~ fatt)

dove
: variabile
fatt gruppi, variabile di tipo fattore

I comandi tipici quindi sono:

anova(lm( ))

summary (lm())


Esempio

> anova(lm(folate~ventilation))
Analysis of Variance Table

Response: folate
Df Sum Sq Mean Sq F value Pr(>F)
ventilation 2 15516 7757.9 3.7113 0.04359 *
Residuals 19 39716 2090.3
---
Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 . 0.1 1


>a prima riga esprime la parte derivante dalla differenza N.6 i gruppi; Sum sq somma delle rad qua del quadrato delle
differenze fra la media del gruppo e la media generale.

>a seconda riga esprime i .esidual, ovvero la parte =K= spiegata dalla differenza delle medie, ossia la somma degli
errori quadratici fra singola osservazione e media complessiva.

Il test verifica il rapporto fra le M Sq, rispetto alla ipotesi di medie dei gruppi tutte uguali fra loro.
In tal caso, il rapporto tende a 1, perc!0 entrambe sarebbero dovute al solo errore casuale; diversamente, il rapporto
proverrebbe da un valore di N del livello di Ns significativo, cio del quantile al #$% della distribuzione N per O(1, =(P
Qd>.
=aturalmente, un valore di N piccolo vuol dire una varianza N.6 i gruppi piccola, cio medie poco dissimili fra loro.

> aov(lm(folate~ventilation))
Call:
aov(formula = lm(folate ~ ventilation))

Terms:
ventilation Residuals
Sum of Squares 15515.77 39716.10
Deg. of Freedom 2 19

Residual standard error: 45.72003
Estimated effects may be unbalanced

Himostrata la significativit/ del test, cerc!iamo dove essa , cio fra 16>I gruppi.

> summary(lm(folate~ventilation))

Call:
lm(formula = folate ~ ventilation)

1)


Residuals:
Min 1Q Median 3Q Max
-73.625 -35.361 -4.444 35.625 75.375

Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 316.62 16.16 19.588 4.65e-14 ***
ventilationN2O+O2,op -60.18 22.22 -2.709 0.0139 *
ventilationO2,24h -38.62 26.06 -1.482 0.1548
---
Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 . 0.1 1

Residual standard error: 45.72 on 19 degrees of freedom
Multiple R-squared: 0.2809, Adjusted R-squared: 0.2052
F-statistic: 3.711 on 2 and 19 DF, p-value: 0.04359


+Intercept, la media del primo gruppo; le altre rig!e sono la differenza delle medie degli altri due gruppi rispetto alla
media del primo gruppo. I test t sono riferiti alle differenze 1mo 2 )do e 1mo 9zo. Manca, in qs report, la valutazione
fra )do e 9zo gruppo.

1na alternativa c!e utilizza il metodo Ronferroni per il confronto multiplo 3metodo piE conservativo5 in . :

> pairwise.t.test(folate,ventilation,p.adj="bonferroni")

Pairwise comparisons using t tests with pooled SD

data: folate and ventilation

N2O+O2,24h N2O+O2,op
N2O+O2,op 0.042 -
O2,24h 0.464 1.000

P value adjustment method: bonferroni

B!e fornisce una tabella dei test t. I valori p sono modificati secondo il metodo del test e moltiplicati dal numero dei
confronti.


=KM6
Se si vuole rilassare la ipotesi di varianza uguale, usare:

> oneway.test(folate~ventilation)

One-way analysis of means (not assuming equal variances)

data: folate and ventilation
F = 2.9704, num df = 2.000, denom df = 11.065, p-value = 0.09277

In qs caso, sembra c!e il test diventi =K= significativo, forse perc! I gruppi piE diversi !anno maggiore varianza.

uesto verifica se le varianze dei gruppi 3trattamenti5 sono diverse:

> bartlett.test(folate~ventilation)

Bartlett test of homogeneity of variances

data: folate by ventilation
Bartlett's K-squared = 2.0951, df = 2, p-value = 0.3508

1na grafica:
3da Halgaard, pag. 19;5


19

xbar <- tapply(folate, ventilation, mean)
s <- tapply(folate, ventilation, sd)
n <- tapply(folate, ventilation, length)
sem <- s/sqrt(n)
stripchart(folate~ventilation, method="jitter",
+ jitter=0.05, pch=16, vert=T)
arrows(1:3,xbar+sem,1:3,xbar-sem,angle=90,code=3,length=.1)
lines(1:3,xbar,pch=4,type="b",cex=2)

da ricordare c!e stripc!art con un argomento formula : ~ fatt indica c!e il grafico va fatto sulla var ( separando per
ciascun fattore !att.



N2O+O2,24h N2O+O2,op O2,24h
2
0
0
2
5
0
3
0
0
3
5
0
f
o
l
a
t
e

Potrebbero piacerti anche