Esercitazione5.R

lorenzo — Dec 2, 2013, 9:21 PM

# definisco la directory di lavoro
setwd("/Users/lorenzo/Documents/Lavori guidati e corsi matematica/ST410 a.a. 2013-2014/Esercitazione5")

#Esercizio 1

#funzione per calcolare gli estremi di intervalli di confidenza per la media (nel caso di varianza incognita)
intervallo <- function(x,livello) {c(mean(x)-(qt((1+livello)/2,df=length(x)-1))*sd(x)/sqrt(length(x)),mean(x)-(qt((1-livello)/2,df=length(x)-1))*sd(x)/sqrt(length(x)))}
# oppure si puo' usare la funzione t.test(x,conf.level=), richiamando $conf.int
# intervallo_t <- function(x,livello)  t.test(x,conf.level=livello)$conf.int[1:2]

n<-20 #ampiezza campione
m<-20 #numero intervalli da generare
media<-150
varianza<-9
prob<-0.95 #livello di confidenza
matrice<-matrix(rnorm(n*m,media,sqrt(varianza)), nrow=m)
#la funzione "apply" permette di applicare una certa funzione f alle singole righe (o colonne) di una matrice
est<-apply(matrice,1,intervallo,livello=prob)
est<-t(est)

#pdf(file="intervalli.pdf",paper="a4r")
matplot(est, pch=16, cex=1, type="p", ylim=c(147,153), lty=1, col="black", main="Intervalli di confidenza", ylab="altezza")
segments(1:m,est[,1],1:m,est[,2])
abline(h=media)

n<-100
matrice<-matrix(rnorm(n*m,media,sqrt(varianza)), nrow=m)
est<-apply(matrice,1,intervallo,livello=prob)
est<-t(est)
matplot(est, pch=16, cex=1, type="p", lty=1, col="green", add=T)
segments(1:100,est[,1],1:100,est[,2], col="green")

n<-20
prob<-0.999
matrice<-matrix(rnorm(n*m,media,sqrt(varianza)), nrow=m)
est<-apply(matrice,1,intervallo,livello=prob)
est<-t(est)
matplot(est, pch=16, cex=1, type="p", lty=1, col="red", add=T)
segments(1:100,est[,1],1:100,est[,2], col="red")
legend(1,153,col=c("black", "green", "red"), bg="white", lty=1, ncol=3, legend=c("n=20,liv=95%", "n=100,liv=95%", "n=20,liv=99.9%"))

plot of chunk unnamed-chunk-1

#dev.off()

#Esercizio 2
n<-20 #ampiezza campione
m<-10000 #numero intervalli
media<-150
varianza<-9
prob<-0.95
matrice<-matrix(rnorm(n*m,media,sqrt(varianza)), nrow=m)
est<-apply(matrice,1,intervallo,livello=prob)
est<-t(est)
successi<-media>=est[,1] & media<=est[,2]
successi<-as.numeric(successi)
mean(successi)
[1] 0.952
lunghezza1<-est[,2]-est[,1]

n<-100 #ampiezza campione
m<-10000 #numero intervalli
media<-150
varianza<-9
prob<-0.95
matrice<-matrix(rnorm(n*m,media,sqrt(varianza)), nrow=m)
est<-apply(matrice,1,intervallo,livello=prob)
est<-t(est)
successi<-150>=est[,1] & 150<=est[,2]
successi<-as.numeric(successi)
mean(successi)
[1] 0.9497
lunghezza2<-est[,2]-est[,1]

n<-20 #ampiezza campione
m<-10000 #numero intervalli
media<-150
varianza<-9
prob<-0.999
matrice<-matrix(rnorm(n*m,media,sqrt(varianza)), nrow=m)
est<-apply(matrice,1,intervallo,livello=prob)
est<-t(est)
successi<-150>=est[,1] & 150<=est[,2]
successi<-as.numeric(successi)
mean(successi)
[1] 0.9988
lunghezza3<-est[,2]-est[,1]

#pdf(file="ampiezze.pdf", paper="a4r")
plot(density(lunghezza1),  xlim=c(1,7.5), ylim=c(0,4.8),lwd=3, main="Densita' di probabilita' (empirica) delle ampiezze", ylab="Densita'", xlab="ampiezza")
lines(density(lunghezza2), col="green", lwd=3)
lines(density(lunghezza3), col="red", lwd=3)
legend(1.25,4.7,col=c("black", "green", "red"), bg="white", lty=1, ncol=3, legend=c("n=20,liv=95%", "n=100,liv=95%", "n=20,liv=99.9%"))
#dev.off()

#Esercizio 3
statura<-read.csv("statura.csv")
# oppure: statura<-read.csv(file.choose())
tapply(statura$altezze, statura$sesso, t.test, conf.level=0.99)
$F

    One Sample t-test

data:  X[[1L]]
t = 626.3, df = 800, p-value < 2.2e-16
alternative hypothesis: true mean is not equal to 0
99 percent confidence interval:
 159.4 160.7
sample estimates:
mean of x 
      160 


$M

    One Sample t-test

data:  X[[2L]]
t = 500.7, df = 1000, p-value < 2.2e-16
alternative hypothesis: true mean is not equal to 0
99 percent confidence interval:
 174.4 176.2
sample estimates:
mean of x 
    175.3 
library("BSDA")
Loading required package: e1071 Loading required package: class Loading
required package: lattice

Attaching package: 'BSDA'

The following object is masked from 'package:datasets':

Orange

plot of chunk unnamed-chunk-1

z.test(statura$altezze[statura$sesso=="F"], sigma.x=7, conf.level=0.99)

    One-sample z-Test

data:  statura$altezze[statura$sesso == "F"]
z = 647, p-value < 2.2e-16
alternative hypothesis: true mean is not equal to 0
99 percent confidence interval:
 159.4 160.7
sample estimates:
mean of x 
      160 
z.test(statura$altezze[statura$sesso=="M"], sigma.x=11, conf.level=0.99)

    One-sample z-Test

data:  statura$altezze[statura$sesso == "M"]
z = 504.3, p-value < 2.2e-16
alternative hypothesis: true mean is not equal to 0
99 percent confidence interval:
 174.4 176.2
sample estimates:
mean of x 
    175.3