R Language
Funzioni di distribuzione
Ricerca…
introduzione
?Distributions
.
Osservazioni
Di solito ci sono quattro prefissi:
- d -La funzione di densità per la distribuzione data
- p -La funzione di distribuzione cumulativa
- q - Ottieni il quantile associato alla probabilità data
- r -Prendi un campione casuale
Per le distribuzioni integrate nell'installazione di base di R, consultare ?Distributions
.
Distribuzione normale
Usiamo *norm
come esempio. Dalla documentazione:
dnorm(x, mean = 0, sd = 1, log = FALSE)
pnorm(q, mean = 0, sd = 1, lower.tail = TRUE, log.p = FALSE)
qnorm(p, mean = 0, sd = 1, lower.tail = TRUE, log.p = FALSE)
rnorm(n, mean = 0, sd = 1)
Quindi, se volessi sapere il valore di una normale distribuzione normale a 0, lo farei
dnorm(0)
Il che ci dà 0.3989423
, una risposta ragionevole.
Allo stesso modo, pnorm(0)
dà .5
. Di nuovo, questo ha senso, perché metà della distribuzione è a sinistra di 0.
qnorm
essenzialmente farà l'opposto di pnorm
. qnorm(.5)
dà 0
.
Infine, c'è la funzione rnorm
:
rnorm(10)
Genera 10 campioni dalla norma normale.
Se si desidera modificare i parametri di una determinata distribuzione, è sufficiente modificarli in questo modo
rnorm(10, mean=4, sd= 3)
Distribuzione binomiale
dbinom
ora le funzioni dbinom
, pbinom
, qbinom
e rbinom
definite per la distribuzione binomiale .
La funzione dbinom()
fornisce le probabilità per vari valori della variabile binomiale. In minima parte richiede tre argomenti. Il primo argomento per questa funzione deve essere un vettore di quantili (i possibili valori della variabile casuale X
). Il secondo e il terzo argomento sono i defining parameters
di defining parameters
della distribuzione, vale a dire n
(numero di prove indipendenti) e p
(la probabilità di successo in ciascuna prova). Ad esempio, per una distribuzione binomiale con n = 5
, p = 0.5
, i valori possibili per X sono 0,1,2,3,4,5
. Cioè, la funzione dbinom(x,n,p)
fornisce i valori di probabilità P( X = x )
per x = 0, 1, 2, 3, 4, 5
.
#Binom(n = 5, p = 0.5) probabilities
> n <- 5; p<- 0.5; x <- 0:n
> dbinom(x,n,p)
[1] 0.03125 0.15625 0.31250 0.31250 0.15625 0.03125
#To verify the total probability is 1
> sum(dbinom(x,n,p))
[1] 1
>
Il grafico di distribuzione della probabilità binomiale può essere visualizzato come nella seguente figura:
> x <- 0:12
> prob <- dbinom(x,12,.5)
> barplot(prob,col = "red",ylim = c(0,.2),names.arg=x,
main="Binomial Distribution\n(n=12,p=0.5)")
Si noti che la distribuzione binomiale è simmetrica quando p = 0.5
. Per dimostrare che la distribuzione binomiale è negativamente distorta quando p
è maggiore di 0.5
, considerare il seguente esempio:
> n=9; p=.7; x=0:n; prob=dbinom(x,n,p);
> barplot(prob,names.arg = x,main="Binomial Distribution\n(n=9, p=0.7)",col="lightblue")
Quando p
è inferiore a 0.5
la distribuzione binomiale è positivamente distorta come mostrato di seguito.
> n=9; p=.3; x=0:n; prob=dbinom(x,n,p);
> barplot(prob,names.arg = x,main="Binomial Distribution\n(n=9, p=0.3)",col="cyan")
Illustreremo ora l'uso della funzione di distribuzione cumulativa pbinom()
. Questa funzione può essere utilizzata per calcolare probabilità come P( X <= x )
. Il primo argomento di questa funzione è un vettore di quantili (valori di x).
# Calculating Probabilities
# P(X <= 2) in a Bin(n=5,p=0.5) distribution
> pbinom(2,5,0.5)
[1] 0.5
La probabilità di cui sopra può anche essere ottenuta come segue:
# P(X <= 2) = P(X=0) + P(X=1) + P(X=2)
> sum(dbinom(0:2,5,0.5))
[1] 0.5
Per calcolare, probabilità del tipo: P( a <= X <= b )
# P(3<= X <= 5) = P(X=3) + P(X=4) + P(X=5) in a Bin(n=9,p=0.6) dist
> sum(dbinom(c(3,4,5),9,0.6))
[1] 0.4923556
>
Presentazione della distribuzione binomiale sotto forma di tabella:
> n = 10; p = 0.4; x = 0:n;
> prob = dbinom(x,n,p)
> cdf = pbinom(x,n,p)
> distTable = cbind(x,prob,cdf)
> distTable
x prob cdf
[1,] 0 0.0060466176 0.006046618
[2,] 1 0.0403107840 0.046357402
[3,] 2 0.1209323520 0.167289754
[4,] 3 0.2149908480 0.382280602
[5,] 4 0.2508226560 0.633103258
[6,] 5 0.2006581248 0.833761382
[7,] 6 0.1114767360 0.945238118
[8,] 7 0.0424673280 0.987705446
[9,] 8 0.0106168320 0.998322278
[10,] 9 0.0015728640 0.999895142
[11,] 10 0.0001048576 1.000000000
>
Il rbinom()
viene utilizzato per generare campioni casuali di dimensioni specificate con un dato valore di parametro.
# Simulation
> xVal<-names(table(rbinom(1000,8,.5)))
> barplot(as.vector(table(rbinom(1000,8,.5))),names.arg =xVal,
main="Simulated Binomial Distribution\n (n=8,p=0.5)")