Suche…


Einführung

R hat viele integrierte Funktionen, um mit Wahrscheinlichkeitsverteilungen zu arbeiten, wobei offizielle Dokumente bei ?Distributions .

Bemerkungen

Es gibt im Allgemeinen vier Präfixe:

  • d -Der Dichtefunktion für die gegebene Verteilung
  • p Die kumulative Verteilungsfunktion
  • q -Holen das Quantil mit der gegebenen Wahrscheinlichkeit zugeordnet
  • r -Holen eine Stichprobe

Die in der Basisinstallation von R integrierten ?Distributions .

Normalverteilung

Als Beispiel verwenden wir *norm . Aus der Dokumentation:

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)

Wenn ich also den Wert einer Standard-Normalverteilung bei 0 wissen wollte, würde ich das tun

dnorm(0)

Das gibt uns 0.3989423 , eine vernünftige Antwort.

Auf dieselbe Weise pnorm(0) .5 . Dies ist wiederum sinnvoll, da sich die Hälfte der Verteilung links von 0 befindet.

qnorm wird im Wesentlichen das Gegenteil von pnorm . qnorm(.5) ergibt 0 .

Schließlich gibt es noch die Funktion rnorm :

rnorm(10)

Erzeugt 10 Proben aus dem Normalzustand.

Wenn Sie die Parameter einer bestimmten Verteilung ändern möchten, ändern Sie sie einfach so

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

Binomialverteilung

Wir erläutern nun die für die Binomialverteilung definierten Funktionen dbinom , pbinom , qbinom und rbinom .

Die Funktion dbinom() gibt die Wahrscheinlichkeiten für verschiedene Werte der binomialen Variablen an. Minimal erfordert es drei Argumente. Das erste Argument für diese Funktion muss ein Vektor von Quantilen sein (die möglichen Werte der Zufallsvariablen X ). Das zweite und dritte Argument sind die defining parameters der Verteilung, nämlich n (die Anzahl unabhängiger Versuche) und p (die Erfolgswahrscheinlichkeit in jedem Versuch). Für eine Binomialverteilung mit n = 5 , p = 0.5 sind die möglichen Werte für X beispielsweise 0,1,2,3,4,5 . Das heißt, die Funktion dbinom(x,n,p) ergibt die Wahrscheinlichkeitswerte P( X = x ) für 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
> 

Das binomische Wahrscheinlichkeitsverteilungsdiagramm kann wie in der folgenden Abbildung dargestellt werden:

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

Binomial Prob Dist

Beachten Sie, dass die Binomialverteilung symmetrisch ist, wenn p = 0.5 . Betrachten Sie das folgende Beispiel, um zu zeigen, dass die Binomialverteilung negativ verzerrt ist, wenn p größer als 0.5 ist.

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

Negativ verzerrtes Binom

Wenn p kleiner als 0.5 die Binomialverteilung wie unten gezeigt positiv geneigt.

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

Positiv schiefes Binom

Wir werden nun die Verwendung der kumulativen Verteilungsfunktion pbinom() . Mit dieser Funktion können Wahrscheinlichkeiten wie P( X <= x ) berechnet werden. Das erste Argument für diese Funktion ist ein Vektor von Quantilen (Werte von x).

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

Die obige Wahrscheinlichkeit kann auch wie folgt erhalten werden:

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

Zur Berechnung von Wahrscheinlichkeiten des Typs: 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
> 

Darstellung der Binomialverteilung in Form einer Tabelle:

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

Das rbinom() wird verwendet, um Zufallsstichproben von angegebenen Größen mit einem gegebenen Parameterwert zu erzeugen.

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

Simuliertes Binomial



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow