SlideShare a Scribd company logo
1 of 74
Download to read offline
R E LA STATISTICAR E LA STATISTICA
Corso di calcolo delle probabilità e statistica matematica
Professor Aniello Fedullo
Vincenzo De Maio
Matricola 0510200251
Riassunto della puntataRiassunto della puntata
precedenteprecedente
● Tipi di dati e strutture dati di R
● R, i vettori, l'aritmetica
● Strutture di controllo
● Creazione di proprie funzioni
Presupponiamo che sianoPresupponiamo che siano
note le definizioni dinote le definizioni di
● Spazio di probabilità
● Variabile aleatoria
● Densità discreta
● Funzione di distribuzione
Oggi vedremo...Oggi vedremo...
● Le distribuzioni in R
● Alcuni esempi
Distribuzioni in RDistribuzioni in R
In R, le distribuzioni che noi ben conosciamo
vengono così definite:
Distribuzione Nome R Parametri
binomiale binom n,p
gamma gamma α,λ
geometrica geom p
ipergeometrica hyper m,n,k
normale norm m,σ^2
binomiale negativa nbinom n,p
Poisson pois λ
Uniforme unif min,max
Distribuzioni in RDistribuzioni in R
● Così come sono, i nomi dati in precedenza non
servono a nulla; Per poter utilizzare le rispettive
funzioni in R, bisogna aggiungere
● p per avere la funzione di distribuzione
● d per avere la densità discreta
● r per effettuare una simulazione
● e ovviamente i rispettivi parametri
● Cioè?
● Per avere la funzione binomiale, useremo pbinom(n,k); per
avere la densità, dbinom() e per effettuare una simulazione
rbinom()
Oggi vedremo...Oggi vedremo...
● Richiami su variabili aleatorie e distribuzioni
● Le distribuzioni in R
● Alcuni esempi
● Distribuzione binomiale
● Distribuzione geometrica
● Distribuzione ipergeometrica
● Distribuzione binomiale negativa
● Distribuzione di Poisson
● Distribuzione normale
Distribuzione binomialeDistribuzione binomiale
La distribuzione binomiale, detta anche di Bernoulli
in onore del matematico svizzero che la formalizzò,
vale
P(X<=i) = Σ(κ = 0 ,ι)binomiale(nk) * p^k *
(1-p)^n-k
Sia p la probabilità di successo dell'esperimento; Il
risultato ottenuto probabilità di avere k successi su n
ripetizioni di un esperimento.
EH? e perchè mai?EH? e perchè mai?
● Ovvio!
● Per l'assioma di Bernoulli, p^k(1-p)^n-k è la probabilità
di avere k teste ed n-k croci in n lanci.
● Ma ci sono binomiale(nk) modi di scegliere tra gli n
lanci quei k che ci danno le teste.
● Da qui otteniamo il prodotto
binomiale(nk) * p^k * (1-p)^n-k
Utilizzo in RUtilizzo in R
● L'utilizzo della distribuzione binomiale in R
avviene tramite queste funzioni
● dbinom(k,n,p) – densità discreta binomiale
● pbinom(k,n,p) – funzione di distribuzione binomiale
● rbinom(N,n,p) - simulazione della distribuzione
● Dove
● k è il numero di successi
● n è il numero di tentativi di un esperimento
● p è la probabilità di successo
● N è il numero di osservazioni sul fenomeno aleatorio.
Un semplice problema...Un semplice problema...
● E' noto che la probabilità che le viti prodotte da
una fabbrica siano difettose è pari a 0.01. Se la
fabbrica vende le viti in confezioni di 10 e le
sostituisce solo nel caso in cui vi sia più di una
vite difettosa, qual è la percentuale di pacchetti
che dovrà rimpiazzare?
SoluzioneSoluzione
● Sia X la variabile aleatoria “numero di viti
difettose in una confezione da 10”; assumiamo
può essere vista come una variabile aleatoria di
Bernoulli di parametri (10,0.01).
● Il risultato che cerchiamo è pari a 1-P(X<=1), in
quanto le confezioni vengono rimpiazzate solo se
possiedono più di una vite difettosa.
Un paio di calcoli...Un paio di calcoli...
● 1-P(X=0)+P(X=1) ( o ,se preferite, 1-Fx(1) )
● 1-{[binom(10,0)*(0.01)^0*(0.99)^10] +
[binom(10,1)*(0.01)^1*(0.99)^9]} ≈ 0.004.
● E noi dovremmo fare tutto questo???
● Ma non esiste proprio!
● Fortuna che esiste R!
Facciamo questo calcolo in RFacciamo questo calcolo in R
● Vediamo l'utilizzo della funzione di
distribuzione... possiamo verificare lo stesso
calcolo anche usando le densità discrete
Utilizzo delle densità discreteUtilizzo delle densità discrete
● Abbiamo ottenuto lo stesso risultato, utilizzando
le densità discrete
Per gli scettici...Per gli scettici...
● Qualcuno di voi poveri mortali
potrebbe non credere al nostro calcolo...
possiamo, sempre grazie a R, effettuare
un'osservazione della variabile aleatoria
binomiale attraverso rbinom().
Simulazione di unaSimulazione di una
distribuzione binomialedistribuzione binomiale
● Vediamo per 100 scatole il numero di viti
difettose
Oggi vedremo...Oggi vedremo...
● Richiami su variabili aleatorie e distribuzioni
● Le distribuzioni in R
● Alcuni esempi
● Distribuzione binomiale
● Distribuzione geometrica
● Distribuzione ipergeometrica
● Distribuzione binomiale negativa
● Distribuzione di Poisson
● Distribuzione normale
Distribuzione geometricaDistribuzione geometrica
● La distribuzione geometrica è definita come il
numero di tentativi necessari per avere il primo
successo; la sua formalizzazione è la
seguenteintuitivamente viene definita come
Σ(n=1,∞)p(1-p)^n-1
● Se l'esperimento è il lancio di una moneta,
possiamo definire la variabile aleatoria come il
tempo di attesa per la prima testa (o croce).
Utilizzo in RUtilizzo in R
● L'utilizzo della distribuzione geometrica in R
avviene tramite queste funzioni
● dgeom(k,p) – densità discreta binomiale
● pgeom(k,p) – funzione di distribuzione binomiale
● rbinom(N,p) - simulazione della distribuzione
● Dove
● k è il numero di tentativi che occorrono per avere un
successo
● p è la probabilità di successo
● N è il numero di osservazioni sul fenomeno aleatorio.
Un altro problema! Evviva!Un altro problema! Evviva!
PARADOSSO DELLA SCIMMIA DI
BOREL
Abbiamo una scimmia che batte tasti a caso su
una tastiera: quante probabilità ci sono che la
scimmia, prima o poi, scriva la divina
commedia?
SoluzioneSoluzione
● Siano k i tasti sulla tastiera, c la cardinalità
dell'alfabeto che utilizza la Divina Commedia; la
probabilità che la scimmia scriva la divina
commedia la prima volta che ci prova, è pari a
k^-c,facendo c battute a caso.
● Tratteremo le prove come processi di Bernoulli,
in cui il lancio di una moneta consiste nel fare c
battute a caso; esce testa se la scimmia scrive la
divina commedia, croce altrimenti.
SoluzioneSoluzione
● Usando la distribuzione geometrica, viene fuori
che la probabilità che scriva la divina commedia
all'n-esimo lancio (= che esca testa all'n-esimo
lancio) è pari a p(1-p)^n.
● La probabilità che prima o poi la scriva invece è
Σ[n>0]p(1-p)^n...
● Cooosa? ma questa somma è uguale a 1!
SoluzioneSoluzione
Ecco la probabilità... abbastanza irrisoria, come
potete vedere!
Morale della favolaMorale della favola
● Il concetto di infinito è sempre misterioso!
● Dante, ovviamente, resta il padre della letteratura
italiana... non ci sogniamo neanche lontanamente
di paragonarlo a una scimmia che batteva tasti a
caso su una tastiera!
Oggi vedremo...Oggi vedremo...
● Richiami su variabili aleatorie e distribuzioni
● Le distribuzioni in R
● Alcuni esempi
● Distribuzione binomiale
● Distribuzione geometrica
● Distribuzione ipergeometrica
● Distribuzione binomiale negativa
● Distribuzione di Poisson
● Distribuzione normale
Distribuzione ipergeometricaDistribuzione ipergeometrica
La distribuzione ipergeometrica viene definita
usando questo semplice esempio: supponiamo di
avere un'urna contenente r palline rosse e b palline
bianche. Ne estraiamo n: la distribuzione
ipergeometrica ci consente di calcolare la
probabilità che su n palline, k siano rosse ed n-k
bianche. Di seguito vediamo la sua definizione:
P(X<=i)Σ(0,i)[binom(k,i)*binom(n-
k,n-i)/binom(m,n)]
Dove X è la v.a. indicante il numero di palline rosse.
Utilizzo in RUtilizzo in R
● L'utilizzo della distribuzione ipergeometrica in R
avviene tramite queste funzioni
● dhyper(k,r,b,m) – densità discreta binomiale
● phyper(k,r,b,m) – funzione di distribuzione binomiale
● rhyper(N,r,b,m) - simulazione della distribuzione
● Dove
● k è il numero di palline rosse che vogliamo avere
● r è il numero di palline rosse presenti nell'urna
● b è il numero di palline bianche presenti nell'urna
● m è il numero di palline presenti nell'urna
● N è il numero di osservazioni sul fenomeno aleatorio.
Un altro problemaUn altro problema
Abbiamo un'urna contenente 100 palline, di cui 45
bianche e 55 rosse. Se ne estraiamo 30 senza
rimessa, qual è la probabilità che al più 10 siano
bianche?
SoluzioneSoluzione
La soluzione a questo problema è piuttosto banale,
applicando la distribuzione ipergeometrica... ma
ovviamente, noi siamo pigri e non vogliamo
calcolare questa espressione:
Σ(i=1,10)[binom(45,i)*binom(55,100-i
)/binom(100,30)]
Fortunatamente, R ci da una mano.
SoluzioneSoluzione
● Senza fare neanche un calcolo!
Oggi vedremo...Oggi vedremo...
● Richiami su variabili aleatorie e distribuzioni
● Le distribuzioni in R
● Alcuni esempi
● Distribuzione binomiale
● Distribuzione geometrica
● Distribuzione ipergeometrica
● Distribuzione binomiale negativa
● Distribuzione di Poisson
● Distribuzione normale
Distribuzione binomialeDistribuzione binomiale
negativanegativa
La distribuzione binomiale negativa rappresenta la
probabilità di dover ripetere n volte un esperimento
perchè si realizzino r successi. Viene così definita
P(X<=n) = Σ(n=r,∞)[binom(n-1,r-1)*(p)
^r*(1-p)^n-r]
dove X è il numero di volte che dobbiamo ripetere
l'esperimento.
Utilizzo in RUtilizzo in R
● L'utilizzo della distribuzione binomiale negativa
in R avviene tramite queste funzioni
● dnbinom(n,r,p) – densità discreta binomiale
● pnbinom(n,r,p) – funzione di distribuzione binomiale
● rnbinom(N,r,p) - simulazione della distribuzione
● Dove
● n numero di tentativi per avere r successi
● r i successi che vogliamo ottenere
● p la probabilità di successo
● N è il numero di osservazioni sul fenomeno aleatorio.
Applichiamo questaApplichiamo questa
distribuzionedistribuzione
BANACH E I FIAMMIFERI
Il matematico polacco Banach fuma la pipa e porta con se 2 scatole di
fiammiferi, una nella tasca destra e l'altra nella sinistra. Ogni volta che
ha bisogno di un fiammifero, sceglie un fiammifero da una delle due
scatole con uguale probabilità. A un certo punto, si accorge che una
scatola è vuota: qual è la probabilità che nell'altra scatola ci siano k
fiammiferi, sapendo che ogni scatola contiene N fiammiferi?
SoluzioneSoluzione
Costruiamo l'evento aleatorio E che indica la
scoperta che la scatola sinistra (o destra) sia vuota;
questo evento si verificherà solo se l'N+1-esima
scelta in quella tasca è avvenuta alla (N+1) + (N-k)-
esima prova, pari a (2N-k+1); i parametri della
distribuzione vengono così definiti:
p = 1/2, r= N+1, n = (2N-k+1)
SoluzioneSoluzione
La probabilità che una tasca sia vuota dunque è pari
a
binom(2N-k,N)(1/2)^(2N-k+1)
per l'equiprobabilità degli eventi, la probabilità cercata è
2P(E), cioè
binom(2N-k,N)(1/2)^(2N-k)
Uffa, un altro calcolo difficile!
Nessun problema, ci pensa R!
SoluzioneSoluzione
Questo è il risultato per 20 fiammiferi in ogni
scatola, supponendo che siano rimasti 5 fiammiferi
nell'altra scatola e che siano necessari 35 tentativi.
Oggi vedremo...Oggi vedremo...
● Richiami su variabili aleatorie e distribuzioni
● Le distribuzioni in R
● Alcuni esempi
● Distribuzione binomiale
● Distribuzione geometrica
● Distribuzione ipergeometrica
● Distribuzione binomiale negativa
● Distribuzione di Poisson
● Distribuzione normale
Distribuzione di PoissonDistribuzione di Poisson
La distribuzione di Poisson è un'ottima
approssimazione di una variabile aleatoria
binomiale di parametri n,p , quando n è grande e p è
piccolo a sufficienza perchè n*p tenda a un valore
positivo finito. Viene così definita:
P(X<=n)=(e^-λ)∗Σ(i=0,n)λ^i/i!
Utilizzo in RUtilizzo in R
● L'utilizzo della distribuzione di Poisson in R
avviene tramite queste funzioni
● dpoisson(n,lambda) – densità discreta binomiale
● pnbinom(n,lambda) – funzione di distribuzione
binomiale
● rnbinom(N,lambda) - simulazione della distribuzione
● Dove
● n numero di tentativi per avere r successi
● lambda il parametro della distribuzione, pari a n*p
● N è il numero di osservazioni sul fenomeno aleatorio.
ProblemaProblema
Suponniamo che in quesste slite il numero di erroro
di bbattiturrra in una singolla pagggina sia
ddistribbuito come una variabbbile alleatoria di
Poisson di parametro λ = 1/2. Calcolliammmo la
pooossibbilità che ci ssia almeno un eerrorre in
qqquesta ppaggginna.
SoluzioneSoluzione
Sia X il numero (aleatorio!) di errori di stampa nella
pagina precedente; il valore cercato è pari a
1-P(X=0) = 1-e^(-1/2)
Il risultato... a tra poco
SoluzioneSoluzione
Oggi vedremo...Oggi vedremo...
● Richiami su variabili aleatorie e distribuzioni
● Le distribuzioni in R
● Alcuni esempi
● Distribuzione binomiale
● Distribuzione geometrica
● Distribuzione ipergeometrica
● Distribuzione binomiale negativa
● Distribuzione di Poisson
● Distribuzione normale
Dulcis in fundo... DistribuzioneDulcis in fundo... Distribuzione
normalenormale
Una variabile aleatoria si dice normale di parametri
m e sigma (dove m è la media e sigma la deviazione
standard) se la sua densità è pari a
1/σ√(2π)e^(-(x-m)^2/2σ^2)
Questa funzione ha un'andamento a campana ed è
simmetrica rispetto ad m. Una normale si dice
standard se m=0 e sigma^2=1.
Grafico della distribuzioneGrafico della distribuzione
normalenormale
1001 modi di utilizzare la1001 modi di utilizzare la
normale...normale...
Vedremo, nelle slide seguenti, che la normale viene
utilizzata largamente nel calcolo statistico: vedremo
in particolare
1) come calcolare il trucco di una moneta
2) come risolvere un problema di natura
commerciale
3) come determinare il numero di persone da
intervistare per avere un certo livello di precisione
in un sondaggio.
Utilizzo in RUtilizzo in R
● L'utilizzo della distribuzione normale in R
avviene tramite queste funzioni
● dnorm(n,m,sigma) – densità discreta
● pnbinom(x,m,sigma) – funzione di distribuzione
● rnbinom(N,m,sigma) - simulazione della distribuzione
● Dove
● n numero di tentativi per avere r successi
● m il parametro della distribuzione, pari a n*p
● sigma la deviazione standard
● N è il numero di osservazioni sul fenomeno aleatorio.
Problema 1Problema 1
Abbiamo il sospetto che una moneta sia truccata:
Come facciamo a stabilire se ciò sia vero o falso,
sapendo che su 100 lanci sono uscite 41 teste?
SoluzioneSoluzione
Siano le variabili aleatorie X1,X2,...,Xi,
indipendenti e identicamente distribuite di media m
e varianza σ^2 gli esiti dell'i-esimo lancio della
moneta; Per il teorema del limite centrale sappiamo
che la loro distribuzione tende a essere normale
standard. Ciò significa che possiamo utilizzare la
normale per predire con una certa significatività
(probabilità dell'errore di primo tipo) se la moneta
sia truccata o meno. Nel caso nostro, vogliamo una
significatività pari a 0.05.
SoluzioneSoluzione
Per verificare se una probabilità si trovi o meno
all'interno di un certo intervallo di confidenza, si
utilizza la funzione φ(X), pari a
1/√2π ∫[-∞,a] e^[(-x^2)/2]dx
Tornando alla nostra moneta, è facile calcolare la media (50,
ovvero 100*1/2) e la varianza (100*1/2*1/2) della somma
delle varie Xi. Ciò che dobbiamo fare quindi è
1) Trasformare questa somma in una normale standard
2) trovare il valore di x che ci dia il nostro intervallo di
confidenza.
SoluzioneSoluzione
Per trasformare la distribuzione in normale standard,
dobbiamo trasformare tutti i membri della
disuguaglianza -x < X <= x in modo che X abbia
media 0 e varianza 1; nel caso specifico, bisogna
aggiungere 50 e moltiplicare per 5; l'espressione
voluta perciò sarà
-x*5+50 < X <= x*5+50
Procediamo utilizzando RProcediamo utilizzando R
Con R è facile trovare il valore da cui dipende
l'intervallo di confidenza... a questo punto,
calcoliamo l'intervallo.
SoluzioneSoluzione
-x*5+50 < X <= x*5+50
diventa...
40.2 < X <= 59.8
Il numero di teste ottenute (41) rientra in questo
intervallo di confidenza... perciò DOBBIAMO
RIGETTARE L'IPOTESI CHE LA MONETA
SIA TRUCCATA.
Tutto questo può essere unito in un'unica funzione
R...
Un po' di sanaUn po' di sana
programmazione...programmazione...
Tutto quello che abbiamo fatto finora,
sapientemente riunito in una funzione.
E vabbè, vi do anche ilE vabbè, vi do anche il
sorgente!sorgente!
trucco <- function(media,sigma,x,valore) {
y<-(1+x)/2;
dominio <- seq(0,3.49,0.01);
for(i in dominio){
if(pnorm(i)>=y){val<-i;
break;}
}
intervallo<-c(-val*sigma+media,val*sigma+media);
if(valore >= intervallo[1] && valore <= intervallo[2])
cat("Dobbiamo rigettare l' ipotesi di trucco") else cat("Non
possiamo rigettare l' ipotesi di trucco");
}
Altro esempio... un problemaAltro esempio... un problema
economicoeconomico
1000 passeggeri possono scegliere per viaggiare fra
2 compagnie aeree concorrenti; sapendo che la
probabilità che scelgano l'una o l'altra è uguale,
calcolare quanti posti basta mettere in un aereo per
avere una bassa probabilità di dover rifiutare la
prenotazione di alcuni passeggeri.
Per essere sicuro di questo basta mettere 1000 posti,
ma grazie alla statistica posso risparmiare e riuscire
nella maggior parte dei casi a non rifiutare nessuna
prenotazione!
SoluzioneSoluzione
Trattiamo ogni passeggero come una v.a. di
Bernoulli (o binomiale), con risultato 1 se sceglie la
nostra compagnia, 0 se sceglie la concorrente;
Sappiamo che questa somma tende ad essere
normale standard, perciò calcoliamo la media e la
varianza
m = 1000*1/2 = 500
sigma^2=1000*1/2*1/2 = 25
SoluzioneSoluzione
Come prima, dobbiamo trasformare la somma in
una normale standard, ma l'equazione da risolvere
questa volta non riguarda un intervallo di
confidenza, ma sarà
P(X<=-x) = 1-φ(x).
Supponiamo di volere una probabilità dell'1% (0.01
); l'equazione sarà
1-φ(x) = 0.99
SoluzioneSoluzione
Ora si trasforma l'equazione usando media e
varianza...
SoluzioneSoluzione
Per trasformare in normale standard, bisogna come
al solito fare in modo che la media diventi 0 e la
varianza 1... perciò l'equazione diventa
(2.33*5√10)+500≈537
Anche questo possiamoAnche questo possiamo
metterlo in un'unica funzionemetterlo in un'unica funzione
R!R!
Creazione di una funzione che esegua questo
calcolo...
Vediamo il sorgenteVediamo il sorgente
supLim <- function(media,sigma,fival){
dominio <- seq(0,3.49,0.01);
for(i in dominio){if(pnorm(i)>=fival){valore <-
i;break;}}
risultato <- valore*sigma+media;
risultato
}
L'ultimo, poi basta...L'ultimo, poi basta...
Proviamo a determinare con un intervallo di
confidenza al 95% (0.95) la percentuale di fumatori
in un paese.
SoluzioneSoluzione
Ogni individuo ha probabilità pari a p di essere un
fumatore: il problema si riduce dunque a stimare p.
Per un campione di ampiezza N, la media
campionaria m' = numero di fumatori / n.
Per una diversa formulazione del teorema del limite
centrale, questa media tenderà ad essere una
normale di parametri (p,sigma^2/n)... perciò
abbiamo tutto quello che ci serve per trovare questa
media!
SoluzioneSoluzione
In questo caso, l'equazione da risolvere è quella
dell'intervallo di confidenza... ma dato che non ci
interessa un intervallo di valori, ma uno in
particolare, utilizziamo la sua equivalente
P(|m'-p|/σ√n <= 1.96)
(1.96 è il valore x che rende φ(x) = 0.95)
SoluzioneSoluzione
L'equazione si può trasformare nel seguente modo...
● |m'-p| <= 1.96*σ/√n
● 1.96*σ/√n < 0.005 (come diretta conseguenza del
fatto che |m'-p| <0.005, dato che vogliamo una
precisione fino alla seconda cifra decimale.)
● Bisogna trovare dunque il valore di n che risolve
questa equazione...
1.96*σ/√n < 0.98/√n < 0.005
SoluzioneSoluzione
● σ = 1/2... ragion per cui il tutto diventa
0.98 <= 0.005√n
con n = 38417
Che è il numero di persone che dobbiamo
intervistare per avere una precisione fino alla
seconda cifra decimale...
Implementiaaamo!Implementiaaamo!
sizeCampione <- function(varianza,sig,prec){
y<-(1+sig)/2;
dominio <- seq(0,3.49,0.01);
for(i in dominio){if(pnorm(i)>=y) val <- i; break;}
primotermine<-val*sqrt(varianza);
precindex <- 10^(prec-1);
n<-0;
secondotermine <- (1-sig)/precindex;
while(primotermine>secondotermine*sqrt(n)){n<-n+1;}
}
Vediamola in azione...Vediamola in azione...
Eseguiamo qualche altro calcolo con R...
5
ConcludendoConcludendo
Vediamo riassunti in questa tabella i risultati
ottenuti
Precisione
Sign.
0.95 0.99
10^-1
10^-2
385 16641
38416 1664100
BibliografiaBibliografia
● www.r-project.org, “An introduction to R”.
● “Appunti di stocastica” di Mauro Cerasoli
● Appunti del corso di Calcolo delle probabilità e
statistica matematica
TI SERVE QUESTO
SPAZIO??? TELEFONA
ALL'899131828

More Related Content

More from Vincenzo De Maio

Scheduling power-aware abstract
Scheduling power-aware abstractScheduling power-aware abstract
Scheduling power-aware abstractVincenzo De Maio
 
Linguaggio R, principi e concetti
Linguaggio R, principi e concettiLinguaggio R, principi e concetti
Linguaggio R, principi e concettiVincenzo De Maio
 
Envy free makespan approximation
Envy free makespan approximationEnvy free makespan approximation
Envy free makespan approximationVincenzo De Maio
 
Ambienti opensource per l'apprendimento
Ambienti opensource per l'apprendimentoAmbienti opensource per l'apprendimento
Ambienti opensource per l'apprendimentoVincenzo De Maio
 

More from Vincenzo De Maio (7)

Scheduling power-aware abstract
Scheduling power-aware abstractScheduling power-aware abstract
Scheduling power-aware abstract
 
Green scheduling
Green schedulingGreen scheduling
Green scheduling
 
Cell Programming 2
Cell Programming 2Cell Programming 2
Cell Programming 2
 
Cell Programming 1
Cell Programming 1Cell Programming 1
Cell Programming 1
 
Linguaggio R, principi e concetti
Linguaggio R, principi e concettiLinguaggio R, principi e concetti
Linguaggio R, principi e concetti
 
Envy free makespan approximation
Envy free makespan approximationEnvy free makespan approximation
Envy free makespan approximation
 
Ambienti opensource per l'apprendimento
Ambienti opensource per l'apprendimentoAmbienti opensource per l'apprendimento
Ambienti opensource per l'apprendimento
 

R e la statistica

  • 1. R E LA STATISTICAR E LA STATISTICA Corso di calcolo delle probabilità e statistica matematica Professor Aniello Fedullo Vincenzo De Maio Matricola 0510200251
  • 2. Riassunto della puntataRiassunto della puntata precedenteprecedente ● Tipi di dati e strutture dati di R ● R, i vettori, l'aritmetica ● Strutture di controllo ● Creazione di proprie funzioni
  • 3. Presupponiamo che sianoPresupponiamo che siano note le definizioni dinote le definizioni di ● Spazio di probabilità ● Variabile aleatoria ● Densità discreta ● Funzione di distribuzione
  • 4. Oggi vedremo...Oggi vedremo... ● Le distribuzioni in R ● Alcuni esempi
  • 5. Distribuzioni in RDistribuzioni in R In R, le distribuzioni che noi ben conosciamo vengono così definite: Distribuzione Nome R Parametri binomiale binom n,p gamma gamma α,λ geometrica geom p ipergeometrica hyper m,n,k normale norm m,σ^2 binomiale negativa nbinom n,p Poisson pois λ Uniforme unif min,max
  • 6. Distribuzioni in RDistribuzioni in R ● Così come sono, i nomi dati in precedenza non servono a nulla; Per poter utilizzare le rispettive funzioni in R, bisogna aggiungere ● p per avere la funzione di distribuzione ● d per avere la densità discreta ● r per effettuare una simulazione ● e ovviamente i rispettivi parametri ● Cioè? ● Per avere la funzione binomiale, useremo pbinom(n,k); per avere la densità, dbinom() e per effettuare una simulazione rbinom()
  • 7. Oggi vedremo...Oggi vedremo... ● Richiami su variabili aleatorie e distribuzioni ● Le distribuzioni in R ● Alcuni esempi ● Distribuzione binomiale ● Distribuzione geometrica ● Distribuzione ipergeometrica ● Distribuzione binomiale negativa ● Distribuzione di Poisson ● Distribuzione normale
  • 8. Distribuzione binomialeDistribuzione binomiale La distribuzione binomiale, detta anche di Bernoulli in onore del matematico svizzero che la formalizzò, vale P(X<=i) = Σ(κ = 0 ,ι)binomiale(nk) * p^k * (1-p)^n-k Sia p la probabilità di successo dell'esperimento; Il risultato ottenuto probabilità di avere k successi su n ripetizioni di un esperimento.
  • 9. EH? e perchè mai?EH? e perchè mai? ● Ovvio! ● Per l'assioma di Bernoulli, p^k(1-p)^n-k è la probabilità di avere k teste ed n-k croci in n lanci. ● Ma ci sono binomiale(nk) modi di scegliere tra gli n lanci quei k che ci danno le teste. ● Da qui otteniamo il prodotto binomiale(nk) * p^k * (1-p)^n-k
  • 10. Utilizzo in RUtilizzo in R ● L'utilizzo della distribuzione binomiale in R avviene tramite queste funzioni ● dbinom(k,n,p) – densità discreta binomiale ● pbinom(k,n,p) – funzione di distribuzione binomiale ● rbinom(N,n,p) - simulazione della distribuzione ● Dove ● k è il numero di successi ● n è il numero di tentativi di un esperimento ● p è la probabilità di successo ● N è il numero di osservazioni sul fenomeno aleatorio.
  • 11. Un semplice problema...Un semplice problema... ● E' noto che la probabilità che le viti prodotte da una fabbrica siano difettose è pari a 0.01. Se la fabbrica vende le viti in confezioni di 10 e le sostituisce solo nel caso in cui vi sia più di una vite difettosa, qual è la percentuale di pacchetti che dovrà rimpiazzare?
  • 12. SoluzioneSoluzione ● Sia X la variabile aleatoria “numero di viti difettose in una confezione da 10”; assumiamo può essere vista come una variabile aleatoria di Bernoulli di parametri (10,0.01). ● Il risultato che cerchiamo è pari a 1-P(X<=1), in quanto le confezioni vengono rimpiazzate solo se possiedono più di una vite difettosa.
  • 13. Un paio di calcoli...Un paio di calcoli... ● 1-P(X=0)+P(X=1) ( o ,se preferite, 1-Fx(1) ) ● 1-{[binom(10,0)*(0.01)^0*(0.99)^10] + [binom(10,1)*(0.01)^1*(0.99)^9]} ≈ 0.004. ● E noi dovremmo fare tutto questo??? ● Ma non esiste proprio! ● Fortuna che esiste R!
  • 14. Facciamo questo calcolo in RFacciamo questo calcolo in R ● Vediamo l'utilizzo della funzione di distribuzione... possiamo verificare lo stesso calcolo anche usando le densità discrete
  • 15. Utilizzo delle densità discreteUtilizzo delle densità discrete ● Abbiamo ottenuto lo stesso risultato, utilizzando le densità discrete
  • 16. Per gli scettici...Per gli scettici... ● Qualcuno di voi poveri mortali potrebbe non credere al nostro calcolo... possiamo, sempre grazie a R, effettuare un'osservazione della variabile aleatoria binomiale attraverso rbinom().
  • 17. Simulazione di unaSimulazione di una distribuzione binomialedistribuzione binomiale ● Vediamo per 100 scatole il numero di viti difettose
  • 18. Oggi vedremo...Oggi vedremo... ● Richiami su variabili aleatorie e distribuzioni ● Le distribuzioni in R ● Alcuni esempi ● Distribuzione binomiale ● Distribuzione geometrica ● Distribuzione ipergeometrica ● Distribuzione binomiale negativa ● Distribuzione di Poisson ● Distribuzione normale
  • 19. Distribuzione geometricaDistribuzione geometrica ● La distribuzione geometrica è definita come il numero di tentativi necessari per avere il primo successo; la sua formalizzazione è la seguenteintuitivamente viene definita come Σ(n=1,∞)p(1-p)^n-1 ● Se l'esperimento è il lancio di una moneta, possiamo definire la variabile aleatoria come il tempo di attesa per la prima testa (o croce).
  • 20. Utilizzo in RUtilizzo in R ● L'utilizzo della distribuzione geometrica in R avviene tramite queste funzioni ● dgeom(k,p) – densità discreta binomiale ● pgeom(k,p) – funzione di distribuzione binomiale ● rbinom(N,p) - simulazione della distribuzione ● Dove ● k è il numero di tentativi che occorrono per avere un successo ● p è la probabilità di successo ● N è il numero di osservazioni sul fenomeno aleatorio.
  • 21. Un altro problema! Evviva!Un altro problema! Evviva! PARADOSSO DELLA SCIMMIA DI BOREL Abbiamo una scimmia che batte tasti a caso su una tastiera: quante probabilità ci sono che la scimmia, prima o poi, scriva la divina commedia?
  • 22. SoluzioneSoluzione ● Siano k i tasti sulla tastiera, c la cardinalità dell'alfabeto che utilizza la Divina Commedia; la probabilità che la scimmia scriva la divina commedia la prima volta che ci prova, è pari a k^-c,facendo c battute a caso. ● Tratteremo le prove come processi di Bernoulli, in cui il lancio di una moneta consiste nel fare c battute a caso; esce testa se la scimmia scrive la divina commedia, croce altrimenti.
  • 23. SoluzioneSoluzione ● Usando la distribuzione geometrica, viene fuori che la probabilità che scriva la divina commedia all'n-esimo lancio (= che esca testa all'n-esimo lancio) è pari a p(1-p)^n. ● La probabilità che prima o poi la scriva invece è Σ[n>0]p(1-p)^n... ● Cooosa? ma questa somma è uguale a 1!
  • 24. SoluzioneSoluzione Ecco la probabilità... abbastanza irrisoria, come potete vedere!
  • 25. Morale della favolaMorale della favola ● Il concetto di infinito è sempre misterioso! ● Dante, ovviamente, resta il padre della letteratura italiana... non ci sogniamo neanche lontanamente di paragonarlo a una scimmia che batteva tasti a caso su una tastiera!
  • 26. Oggi vedremo...Oggi vedremo... ● Richiami su variabili aleatorie e distribuzioni ● Le distribuzioni in R ● Alcuni esempi ● Distribuzione binomiale ● Distribuzione geometrica ● Distribuzione ipergeometrica ● Distribuzione binomiale negativa ● Distribuzione di Poisson ● Distribuzione normale
  • 27. Distribuzione ipergeometricaDistribuzione ipergeometrica La distribuzione ipergeometrica viene definita usando questo semplice esempio: supponiamo di avere un'urna contenente r palline rosse e b palline bianche. Ne estraiamo n: la distribuzione ipergeometrica ci consente di calcolare la probabilità che su n palline, k siano rosse ed n-k bianche. Di seguito vediamo la sua definizione: P(X<=i)Σ(0,i)[binom(k,i)*binom(n- k,n-i)/binom(m,n)] Dove X è la v.a. indicante il numero di palline rosse.
  • 28. Utilizzo in RUtilizzo in R ● L'utilizzo della distribuzione ipergeometrica in R avviene tramite queste funzioni ● dhyper(k,r,b,m) – densità discreta binomiale ● phyper(k,r,b,m) – funzione di distribuzione binomiale ● rhyper(N,r,b,m) - simulazione della distribuzione ● Dove ● k è il numero di palline rosse che vogliamo avere ● r è il numero di palline rosse presenti nell'urna ● b è il numero di palline bianche presenti nell'urna ● m è il numero di palline presenti nell'urna ● N è il numero di osservazioni sul fenomeno aleatorio.
  • 29. Un altro problemaUn altro problema Abbiamo un'urna contenente 100 palline, di cui 45 bianche e 55 rosse. Se ne estraiamo 30 senza rimessa, qual è la probabilità che al più 10 siano bianche?
  • 30. SoluzioneSoluzione La soluzione a questo problema è piuttosto banale, applicando la distribuzione ipergeometrica... ma ovviamente, noi siamo pigri e non vogliamo calcolare questa espressione: Σ(i=1,10)[binom(45,i)*binom(55,100-i )/binom(100,30)] Fortunatamente, R ci da una mano.
  • 31. SoluzioneSoluzione ● Senza fare neanche un calcolo!
  • 32. Oggi vedremo...Oggi vedremo... ● Richiami su variabili aleatorie e distribuzioni ● Le distribuzioni in R ● Alcuni esempi ● Distribuzione binomiale ● Distribuzione geometrica ● Distribuzione ipergeometrica ● Distribuzione binomiale negativa ● Distribuzione di Poisson ● Distribuzione normale
  • 33. Distribuzione binomialeDistribuzione binomiale negativanegativa La distribuzione binomiale negativa rappresenta la probabilità di dover ripetere n volte un esperimento perchè si realizzino r successi. Viene così definita P(X<=n) = Σ(n=r,∞)[binom(n-1,r-1)*(p) ^r*(1-p)^n-r] dove X è il numero di volte che dobbiamo ripetere l'esperimento.
  • 34. Utilizzo in RUtilizzo in R ● L'utilizzo della distribuzione binomiale negativa in R avviene tramite queste funzioni ● dnbinom(n,r,p) – densità discreta binomiale ● pnbinom(n,r,p) – funzione di distribuzione binomiale ● rnbinom(N,r,p) - simulazione della distribuzione ● Dove ● n numero di tentativi per avere r successi ● r i successi che vogliamo ottenere ● p la probabilità di successo ● N è il numero di osservazioni sul fenomeno aleatorio.
  • 35. Applichiamo questaApplichiamo questa distribuzionedistribuzione BANACH E I FIAMMIFERI Il matematico polacco Banach fuma la pipa e porta con se 2 scatole di fiammiferi, una nella tasca destra e l'altra nella sinistra. Ogni volta che ha bisogno di un fiammifero, sceglie un fiammifero da una delle due scatole con uguale probabilità. A un certo punto, si accorge che una scatola è vuota: qual è la probabilità che nell'altra scatola ci siano k fiammiferi, sapendo che ogni scatola contiene N fiammiferi?
  • 36. SoluzioneSoluzione Costruiamo l'evento aleatorio E che indica la scoperta che la scatola sinistra (o destra) sia vuota; questo evento si verificherà solo se l'N+1-esima scelta in quella tasca è avvenuta alla (N+1) + (N-k)- esima prova, pari a (2N-k+1); i parametri della distribuzione vengono così definiti: p = 1/2, r= N+1, n = (2N-k+1)
  • 37. SoluzioneSoluzione La probabilità che una tasca sia vuota dunque è pari a binom(2N-k,N)(1/2)^(2N-k+1) per l'equiprobabilità degli eventi, la probabilità cercata è 2P(E), cioè binom(2N-k,N)(1/2)^(2N-k) Uffa, un altro calcolo difficile! Nessun problema, ci pensa R!
  • 38. SoluzioneSoluzione Questo è il risultato per 20 fiammiferi in ogni scatola, supponendo che siano rimasti 5 fiammiferi nell'altra scatola e che siano necessari 35 tentativi.
  • 39. Oggi vedremo...Oggi vedremo... ● Richiami su variabili aleatorie e distribuzioni ● Le distribuzioni in R ● Alcuni esempi ● Distribuzione binomiale ● Distribuzione geometrica ● Distribuzione ipergeometrica ● Distribuzione binomiale negativa ● Distribuzione di Poisson ● Distribuzione normale
  • 40. Distribuzione di PoissonDistribuzione di Poisson La distribuzione di Poisson è un'ottima approssimazione di una variabile aleatoria binomiale di parametri n,p , quando n è grande e p è piccolo a sufficienza perchè n*p tenda a un valore positivo finito. Viene così definita: P(X<=n)=(e^-λ)∗Σ(i=0,n)λ^i/i!
  • 41. Utilizzo in RUtilizzo in R ● L'utilizzo della distribuzione di Poisson in R avviene tramite queste funzioni ● dpoisson(n,lambda) – densità discreta binomiale ● pnbinom(n,lambda) – funzione di distribuzione binomiale ● rnbinom(N,lambda) - simulazione della distribuzione ● Dove ● n numero di tentativi per avere r successi ● lambda il parametro della distribuzione, pari a n*p ● N è il numero di osservazioni sul fenomeno aleatorio.
  • 42. ProblemaProblema Suponniamo che in quesste slite il numero di erroro di bbattiturrra in una singolla pagggina sia ddistribbuito come una variabbbile alleatoria di Poisson di parametro λ = 1/2. Calcolliammmo la pooossibbilità che ci ssia almeno un eerrorre in qqquesta ppaggginna.
  • 43. SoluzioneSoluzione Sia X il numero (aleatorio!) di errori di stampa nella pagina precedente; il valore cercato è pari a 1-P(X=0) = 1-e^(-1/2) Il risultato... a tra poco
  • 45. Oggi vedremo...Oggi vedremo... ● Richiami su variabili aleatorie e distribuzioni ● Le distribuzioni in R ● Alcuni esempi ● Distribuzione binomiale ● Distribuzione geometrica ● Distribuzione ipergeometrica ● Distribuzione binomiale negativa ● Distribuzione di Poisson ● Distribuzione normale
  • 46. Dulcis in fundo... DistribuzioneDulcis in fundo... Distribuzione normalenormale Una variabile aleatoria si dice normale di parametri m e sigma (dove m è la media e sigma la deviazione standard) se la sua densità è pari a 1/σ√(2π)e^(-(x-m)^2/2σ^2) Questa funzione ha un'andamento a campana ed è simmetrica rispetto ad m. Una normale si dice standard se m=0 e sigma^2=1.
  • 47. Grafico della distribuzioneGrafico della distribuzione normalenormale
  • 48. 1001 modi di utilizzare la1001 modi di utilizzare la normale...normale... Vedremo, nelle slide seguenti, che la normale viene utilizzata largamente nel calcolo statistico: vedremo in particolare 1) come calcolare il trucco di una moneta 2) come risolvere un problema di natura commerciale 3) come determinare il numero di persone da intervistare per avere un certo livello di precisione in un sondaggio.
  • 49. Utilizzo in RUtilizzo in R ● L'utilizzo della distribuzione normale in R avviene tramite queste funzioni ● dnorm(n,m,sigma) – densità discreta ● pnbinom(x,m,sigma) – funzione di distribuzione ● rnbinom(N,m,sigma) - simulazione della distribuzione ● Dove ● n numero di tentativi per avere r successi ● m il parametro della distribuzione, pari a n*p ● sigma la deviazione standard ● N è il numero di osservazioni sul fenomeno aleatorio.
  • 50. Problema 1Problema 1 Abbiamo il sospetto che una moneta sia truccata: Come facciamo a stabilire se ciò sia vero o falso, sapendo che su 100 lanci sono uscite 41 teste?
  • 51. SoluzioneSoluzione Siano le variabili aleatorie X1,X2,...,Xi, indipendenti e identicamente distribuite di media m e varianza σ^2 gli esiti dell'i-esimo lancio della moneta; Per il teorema del limite centrale sappiamo che la loro distribuzione tende a essere normale standard. Ciò significa che possiamo utilizzare la normale per predire con una certa significatività (probabilità dell'errore di primo tipo) se la moneta sia truccata o meno. Nel caso nostro, vogliamo una significatività pari a 0.05.
  • 52. SoluzioneSoluzione Per verificare se una probabilità si trovi o meno all'interno di un certo intervallo di confidenza, si utilizza la funzione φ(X), pari a 1/√2π ∫[-∞,a] e^[(-x^2)/2]dx Tornando alla nostra moneta, è facile calcolare la media (50, ovvero 100*1/2) e la varianza (100*1/2*1/2) della somma delle varie Xi. Ciò che dobbiamo fare quindi è 1) Trasformare questa somma in una normale standard 2) trovare il valore di x che ci dia il nostro intervallo di confidenza.
  • 53. SoluzioneSoluzione Per trasformare la distribuzione in normale standard, dobbiamo trasformare tutti i membri della disuguaglianza -x < X <= x in modo che X abbia media 0 e varianza 1; nel caso specifico, bisogna aggiungere 50 e moltiplicare per 5; l'espressione voluta perciò sarà -x*5+50 < X <= x*5+50
  • 54. Procediamo utilizzando RProcediamo utilizzando R Con R è facile trovare il valore da cui dipende l'intervallo di confidenza... a questo punto, calcoliamo l'intervallo.
  • 55. SoluzioneSoluzione -x*5+50 < X <= x*5+50 diventa... 40.2 < X <= 59.8 Il numero di teste ottenute (41) rientra in questo intervallo di confidenza... perciò DOBBIAMO RIGETTARE L'IPOTESI CHE LA MONETA SIA TRUCCATA. Tutto questo può essere unito in un'unica funzione R...
  • 56. Un po' di sanaUn po' di sana programmazione...programmazione... Tutto quello che abbiamo fatto finora, sapientemente riunito in una funzione.
  • 57. E vabbè, vi do anche ilE vabbè, vi do anche il sorgente!sorgente! trucco <- function(media,sigma,x,valore) { y<-(1+x)/2; dominio <- seq(0,3.49,0.01); for(i in dominio){ if(pnorm(i)>=y){val<-i; break;} } intervallo<-c(-val*sigma+media,val*sigma+media); if(valore >= intervallo[1] && valore <= intervallo[2]) cat("Dobbiamo rigettare l' ipotesi di trucco") else cat("Non possiamo rigettare l' ipotesi di trucco"); }
  • 58. Altro esempio... un problemaAltro esempio... un problema economicoeconomico 1000 passeggeri possono scegliere per viaggiare fra 2 compagnie aeree concorrenti; sapendo che la probabilità che scelgano l'una o l'altra è uguale, calcolare quanti posti basta mettere in un aereo per avere una bassa probabilità di dover rifiutare la prenotazione di alcuni passeggeri. Per essere sicuro di questo basta mettere 1000 posti, ma grazie alla statistica posso risparmiare e riuscire nella maggior parte dei casi a non rifiutare nessuna prenotazione!
  • 59. SoluzioneSoluzione Trattiamo ogni passeggero come una v.a. di Bernoulli (o binomiale), con risultato 1 se sceglie la nostra compagnia, 0 se sceglie la concorrente; Sappiamo che questa somma tende ad essere normale standard, perciò calcoliamo la media e la varianza m = 1000*1/2 = 500 sigma^2=1000*1/2*1/2 = 25
  • 60. SoluzioneSoluzione Come prima, dobbiamo trasformare la somma in una normale standard, ma l'equazione da risolvere questa volta non riguarda un intervallo di confidenza, ma sarà P(X<=-x) = 1-φ(x). Supponiamo di volere una probabilità dell'1% (0.01 ); l'equazione sarà 1-φ(x) = 0.99
  • 61. SoluzioneSoluzione Ora si trasforma l'equazione usando media e varianza...
  • 62. SoluzioneSoluzione Per trasformare in normale standard, bisogna come al solito fare in modo che la media diventi 0 e la varianza 1... perciò l'equazione diventa (2.33*5√10)+500≈537
  • 63. Anche questo possiamoAnche questo possiamo metterlo in un'unica funzionemetterlo in un'unica funzione R!R! Creazione di una funzione che esegua questo calcolo...
  • 64. Vediamo il sorgenteVediamo il sorgente supLim <- function(media,sigma,fival){ dominio <- seq(0,3.49,0.01); for(i in dominio){if(pnorm(i)>=fival){valore <- i;break;}} risultato <- valore*sigma+media; risultato }
  • 65. L'ultimo, poi basta...L'ultimo, poi basta... Proviamo a determinare con un intervallo di confidenza al 95% (0.95) la percentuale di fumatori in un paese.
  • 66. SoluzioneSoluzione Ogni individuo ha probabilità pari a p di essere un fumatore: il problema si riduce dunque a stimare p. Per un campione di ampiezza N, la media campionaria m' = numero di fumatori / n. Per una diversa formulazione del teorema del limite centrale, questa media tenderà ad essere una normale di parametri (p,sigma^2/n)... perciò abbiamo tutto quello che ci serve per trovare questa media!
  • 67. SoluzioneSoluzione In questo caso, l'equazione da risolvere è quella dell'intervallo di confidenza... ma dato che non ci interessa un intervallo di valori, ma uno in particolare, utilizziamo la sua equivalente P(|m'-p|/σ√n <= 1.96) (1.96 è il valore x che rende φ(x) = 0.95)
  • 68. SoluzioneSoluzione L'equazione si può trasformare nel seguente modo... ● |m'-p| <= 1.96*σ/√n ● 1.96*σ/√n < 0.005 (come diretta conseguenza del fatto che |m'-p| <0.005, dato che vogliamo una precisione fino alla seconda cifra decimale.) ● Bisogna trovare dunque il valore di n che risolve questa equazione... 1.96*σ/√n < 0.98/√n < 0.005
  • 69. SoluzioneSoluzione ● σ = 1/2... ragion per cui il tutto diventa 0.98 <= 0.005√n con n = 38417 Che è il numero di persone che dobbiamo intervistare per avere una precisione fino alla seconda cifra decimale...
  • 70. Implementiaaamo!Implementiaaamo! sizeCampione <- function(varianza,sig,prec){ y<-(1+sig)/2; dominio <- seq(0,3.49,0.01); for(i in dominio){if(pnorm(i)>=y) val <- i; break;} primotermine<-val*sqrt(varianza); precindex <- 10^(prec-1); n<-0; secondotermine <- (1-sig)/precindex; while(primotermine>secondotermine*sqrt(n)){n<-n+1;} }
  • 71. Vediamola in azione...Vediamola in azione... Eseguiamo qualche altro calcolo con R... 5
  • 72. ConcludendoConcludendo Vediamo riassunti in questa tabella i risultati ottenuti Precisione Sign. 0.95 0.99 10^-1 10^-2 385 16641 38416 1664100
  • 73. BibliografiaBibliografia ● www.r-project.org, “An introduction to R”. ● “Appunti di stocastica” di Mauro Cerasoli ● Appunti del corso di Calcolo delle probabilità e statistica matematica
  • 74. TI SERVE QUESTO SPAZIO??? TELEFONA ALL'899131828