Zoeken…


Invoering

R heeft veel ingebouwde functies om te werken met kansverdelingen, waarbij officiële documenten beginnen bij ?Distributions .

Opmerkingen

Er zijn over het algemeen vier voorvoegsels:

  • d -De dichtheidsfunctie voor de gegeven verdeling
  • p -De cumulatieve verdelingsfunctie
  • q - Haal de kwantiel geassocieerd met de gegeven waarschijnlijkheid
  • r - Neem een willekeurig monster

Zie ?Distributions voor de distributies die in de basisinstallatie van R zijn ingebouwd.

Normale verdeling

Laten we *norm als voorbeeld gebruiken. Uit de documentatie:

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)

Dus als ik de waarde van een standaard normale verdeling op 0 wilde weten, zou ik dat doen

dnorm(0)

Dat geeft ons 0.3989423 , een redelijk antwoord.

Op dezelfde manier geeft pnorm(0) .5 . Nogmaals, dit is logisch, omdat de helft van de verdeling links van 0 is.

qnorm zal in wezen het tegenovergestelde doen van pnorm . qnorm(.5) geeft 0 .

Ten slotte is er de rnorm functie:

rnorm(10)

Genereert 10 monsters van standaard normaal.

Als u de parameters van een bepaalde distributie wilt wijzigen, kunt u ze eenvoudig als volgt wijzigen

rnorm(10, mean=4, sd= 3)

Binomiale verdeling

We illustreren nu de functies dbinom , pbinom , qbinom en rbinom gedefinieerd voor binomiale verdeling .

De functie dbinom() geeft de kansen voor verschillende waarden van de binomiale variabele. Minimaal vereist het drie argumenten. Het eerste argument voor deze functie moet een vector van kwantielen zijn (de mogelijke waarden van de willekeurige variabele X ). De tweede en derde argumenten zijn de defining parameters van de verdeling, namelijk n (het aantal onafhankelijke proeven) en p (de kans op succes in elke proef). Voor een binomiale verdeling met n = 5 , p = 0.5 zijn de mogelijke waarden voor X 0,1,2,3,4,5 . Dat wil zeggen dat de functie dbinom(x,n,p) de waarschijnlijkheidswaarden P( X = x ) voor 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
> 

De binomiale kansverdelingsplot kan worden weergegeven zoals in de volgende afbeelding:

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

Binomiaal prob. Dist

Merk op dat de binomiale verdeling symmetrisch is wanneer p = 0.5 . Overweeg het volgende voorbeeld om aan te tonen dat de binomiale verdeling negatief scheef is wanneer p groter is dan 0.5 :

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

Negatief scheef Binomiaal

Wanneer p kleiner is dan 0.5 de binomiale verdeling positief scheef zoals hieronder getoond.

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

Positief scheef Binomiaal

We zullen nu het gebruik van de cumulatieve verdelingsfunctie pbinom() . Deze functie kan worden gebruikt om kansen te berekenen zoals P( X <= x ) . Het eerste argument voor deze functie is een vector van kwantielen (waarden van x).

# Calculating Probabilities
# P(X <= 2) in a Bin(n=5,p=0.5) distribution
> pbinom(2,5,0.5)
[1] 0.5

De bovenstaande waarschijnlijkheid kan ook als volgt worden verkregen:

# P(X <= 2) = P(X=0) + P(X=1) + P(X=2)
> sum(dbinom(0:2,5,0.5))
[1] 0.5

Om te berekenen, waarschijnlijkheden van het type: 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
> 

De binomiale verdeling presenteren in de vorm van een tabel:

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

De rbinom() wordt gebruikt om willekeurige steekproeven van gespecificeerde grootte met een gegeven parameterwaarden te genereren.

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

Gesimuleerde binomiaal



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow