Ricerca…


introduzione

R ha molte funzioni integrate per lavorare con le distribuzioni di probabilità, con documenti ufficiali che iniziano con ?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).5 . Di nuovo, questo ha senso, perché metà della distribuzione è a sinistra di 0.

qnorm essenzialmente farà l'opposto di pnorm . qnorm(.5)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)")

Binomiale Prob Dist

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")

Binomiale negativamente distorto

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")

Binomiale positivamente distorto

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)")

Binomiale simulato



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow