R Language
Verteilungsfunktionen
Suche…
Einführung
?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)")
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")
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")
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)")