50  Lösungen Diskrete Wahrscheinlichkeitsverteilungen

Hier finden Sie die Lösungen zu den Übungsaufgaben von Abschnitt 44.6.

Die hier vorgestellten Lösungen stellen immer nur eine mögliche Vorgehensweisen dar und sind sicherlich nicht der Weisheit letzter Schluss. In R führen viele Wege nach Rom, und wenn Sie mit anderem Code zu den richtigen Ergebnissen kommen, dann ist das völlig in Ordnung.

50.1 Lösung zur Aufgabe 44.6.1

a) Berechnen Sie die Wahrscheinlichkeitsverteilung von X
# mögliche Ausprägungen von x
x <- 0:10
# Wahrscheinlichkeiten berechnen
w <- dbinom(x, size = 10, prob = 0.50)

data.frame(Kopf=x, Wahrscheinlichkeit = w)
   Kopf Wahrscheinlichkeit
1     0       0.0009765625
2     1       0.0097656250
3     2       0.0439453125
4     3       0.1171875000
5     4       0.2050781250
6     5       0.2460937500
7     6       0.2050781250
8     7       0.1171875000
9     8       0.0439453125
10    9       0.0097656250
11   10       0.0009765625
b) Plotten Sie die Wahrscheinlichkeitsfunktion von X
# mögliche Ausprägungen von x
x <- 0:10
df = data.frame(x, y=dbinom(x, size = 10, prob = 0.50))

# plot()
plot(df$x, df$y)

# ggplot()
ggplot(df, aes(x=x, y=y)) +
  geom_point()

c) Plotten Sie die Dichteverteilung
# mögliche Ausprägungen von x
x <- 0:10
df = data.frame(x, y=pbinom(x, size = 10, prob = 0.50))

# plot()
plot(df$x, df$y)

# ggplot()
ggplot(df, aes(x=x, y=y)) +
  geom_point()

d) Berechnen Sie die Wahrscheinlichkeit, 7 mal Kopf zu werfen.
dbinom(7, size = 10, prob = 0.50)
[1] 0.1171875
e) Berchnen Sie die Wahrscheinlichkeit, weniger als als 4 mal Kopf zu werfen.
pbinom(4, size = 10, prob = 0.50, lower.tail=TRUE)
[1] 0.3769531
f) Berchnen Sie die Wahrscheinlichkeit, mehr als als 5 mal Kopf zu werfen.
pbinom(5, size = 10, prob = 0.50, lower.tail=FALSE)
[1] 0.3769531
g) Berechnen Sie die Wahrscheinlichkeit, 2 bis 8 mal Kopf zu werfen.
# weniger als 2mal
w2 <- pbinom(1, size = 10, prob = 0.5)
# weniger als 8mal
w8 <- pbinom(8, size = 10, prob = 0.5)

# Wahrscheinlichkeit 2 bis 8 Köpfe zu werfen
w8 - w2
[1] 0.9785156

50.2 Lösung zur Aufgabe 44.6.2

a) Plotten Sie die Wahrscheinlichkeitsfunktion von X
#  x-Achse
x = 0:16
# Poisson-Werte
df = data.frame(x, y=dpois(x, lambda = 6))

# plot()
plot(df$x, df$y)

# ggplot()
ggplot(df, aes(x=x, y=y)) +
  geom_point()

b) Plotten Sie die Verteilungsfunktion von X
#  x-Achse
x = 0:16
# Poisson-Werte
df = data.frame(x, y=ppois(x, lambda = 6))

# plot()
plot(df$x, df$y)

# ggplot()
ggplot(df, aes(x=x, y=y)) +
  geom_point()

c) Wie groß ist die Wahrscheinlicheit, dass an einem zufälligen Tag (nur) 1 Geburt stattfindet?
dpois(1, lambda = 6)
[1] 0.01487251
d) Wie groß ist die Wahrscheinlicheit, dass an einem zufälligen Tag weniger als 6 Geburten stattfinden?
ppois(5, lambda = 6, lower.tail=TRUE)
[1] 0.4456796
e) Wie groß ist die Wahrscheinlicheit, dass an einem zufälligen Tag 4 oder mehr Geburten stattfinden?
ppois(3, lambda = 6, lower.tail=FALSE)
[1] 0.8487961
f) Wie groß ist die Wahrscheinlicheit, dass an einem zufälligen Tag 4 bis 8 Geburten stattfinden?
# entweder
sum(dpois(4:8, lambda=6))
[1] 0.6960336
# oder
ppois(8, lambda=6) - ppois(3, lambda=6)
[1] 0.6960336
g) Wie groß ist die Wahrscheinlicheit, dass in einer Woche zwischen 30 und 40 Geburten stattfinden?
# lambda für eine Woche = 7* 6 = 42
ppois(40, lambda=42) - ppois(29, lambda=42)
[1] 0.3959028

50.3 Lösung zur Aufgabe 44.6.3

a) berechnen Sie die Wahrscheinlichkeitsverteilung des binomialen Modells \(B(30, 0.1)\).
dbinom(c(0,1,2,3,4,5,6,7,8,9,10), size = 30, prob = 0.1)
 [1] 0.0423911583 0.1413038609 0.2276562204 0.2360879322 0.1770659492
 [6] 0.1023047706 0.0473633197 0.0180431694 0.0057637902 0.0015654739
[11] 0.0003652772
b) berechnen Sie die Wahrscheinlichkeitsverteilung des Poissonmodells \(P(3)\) und vergleichen Sie es mit dem binomialen Modell \(B(30, 0.1)\).
result <- data.frame(binomial= dbinom(c(0,1,2,3,4,5,6,7,8,9,10), 
                                      size = 30, prob = 0.1),
                     poisson = dpois(c(0,1,2,3,4,5,6,7,8,9,10), 
                                     lambda = 3))
head(result)
    binomial    poisson
1 0.04239116 0.04978707
2 0.14130386 0.14936121
3 0.22765622 0.22404181
4 0.23608793 0.22404181
5 0.17706595 0.16803136
6 0.10230477 0.10081881
c) berechnen Sie die Wahrscheinlichkeitsverteilung des binomialen Modells \(B(100, 0.3)\) und vergleichen Sie es es mit dem Modell \(P(3)\). Sind diese Modelle ähnlicher als die vorherigen?
result <- data.frame(binomial= dbinom(c(0,1,2,3,4,5,6,7,8,9,10), 
                                      size = 100, prob = 0.3),
                     poisson = dpois(c(0,1,2,3,4,5,6,7,8,9,10), 
                                     lambda = 3))
head(result)                     
      binomial    poisson
1 3.234477e-16 0.04978707
2 1.386204e-14 0.14936121
3 2.940733e-13 0.22404181
4 4.117027e-12 0.22404181
5 4.278767e-11 0.16803136
6 3.520814e-10 0.10081881
d) Plotten Sie die Wahrscheinlichkeitsfunktionen der vorherigen Modelle. Erhöhen Sie die Anzahl der Wiederholungen und verringern Sie die Erfolgswahrscheinlichkeit im Binomialmodell und beobachten Sie, wie sich die Wahrscheinlichkeiten des Binomialmodells und des Poissonmodells annähern.
# um nicht immer wieder den selben Plot-Befehl aufzurufen
# erstellen wir eine Hilfsfunktion
#---------------------------------------------------
myplot <- function(n, p){
  # vorberechnen
  mu <- p*n
  sd <- sqrt(n*p*(1-p))
  # plotten
  plot( seq(0,n), dpois( seq(0,n), mu ), type="h", 
       xlim=c(-1,n+1), xlab="x", ylab="Probability", 
       ylim=range(0,dpois( seq(0,n), mu), dbinom(seq(0,n),n,p)))
  points( seq(0,n), dpois( seq(0,n), mu ), pch=16, col="blue")
  points( seq(0,n), dbinom( seq(0,n), n, p), type="h")
  abline(h=0)
  points( seq(0,n), dbinom( seq(0,n), n, p), pch=18, col="red" )
  title( paste("Mean", "=", round(mu,3), "Std.Dev.", "=", round(sd,3)))
  legend("topright", c("Binomial", "Poisson"), 
         col = c("red","blue"), pch = c(18,16))   }
#---------------------------------------------------

# plots vergleichen
myplot(30, 0.1)  

myplot(50, 0.1)  

myplot(80, 0.1)  

myplot(100, 0.1)  

myplot(100, 0.05)  

myplot(100, 0.03)  

50.4 Lösung zur Aufgabe 44.6.4

Wie groß ist die Wahrscheinlichkeit, beim Werfen von 100 Münzen zwischen 40 und 60 Mal Kopf zu erhalten (beide Werte eingeschlossen)?
sum(dbinom(40:60, size = 100, prob = 0.5))
[1] 0.9647998

50.5 Lösung zur Aufgabe 44.6.5

a) wie groß ist die Wahrscheinlichkeit, dass die Hälfte der Patienten geheilt wird?
# n=6 Patienten
# p =0.85
# k=3 (die Hälfte von 6)
dbinom(3, size = 6, prob = 0.85)
[1] 0.04145344
b) wie groß ist die Wahrscheinlichkeit, dass mindestens 4 Patienten geheilt werden?
pbinom(3, size = 6, prob = 0.85, lower.tail = FALSE)
[1] 0.9526614
c) plotten Sie die Wahrscheinlichkeitsfunktion für die Anzahl geheilter Patienten.
df <- data.frame(x=0:6,
                 y=dbinom(0:6, size = 6, prob = 0.85))

# plot()
plot(df$x, df$y, type="h", lwd=2, col="blue",
     xlab = "Anzahl geheilter Patienten",
     ylab = "Wahrscheinlichkeit",
     main = "Wahrscheinlichkeitsfunktion der Anzahl geheilter Patienten")

# ggplot
ggplot(df, aes(x=x, y=0, xend=x, yend=y)) +
  geom_segment(col="blue", lwd=3) +
  xlab("Anzahl geheilter Patienten") +
  ylab("Wahrscheinlichkeit") 

50.6 Lösung zur Aufgabe 44.6.6

Die Wahrscheinlichkeit einer starken Impfreaktion beträgt \(0,001\). Wenn 2.000 Personen geimpft werden, wie hoch ist die Wahrscheinlichkeit für starke Reaktionen?
# n=2000 Patienten
# p =0.001
# k=1
pbinom(1, size = 2000, prob = 0.001, lower.tail=FALSE)
[1] 0.5941296

50.7 Lösung zur Aufgabe 44.6.7

a) Wie hoch ist die Wahrscheinlichkeit, dass weniger als 4 Anrufe in 2 Sekunden eintreffen?
# 120 Anrufe pro Minute sind
# 2 Anrufe pro Sekunde
# lambda für 2 Sekunden ist also 4
ppois(3, lambda=4, lower.tail=TRUE)
[1] 0.4334701
b) Wie hoch ist die Wahrscheinlichkeit, dass mindestens 3 Anrufe in 3 Sekunden eintreffen?
ppois(2, lambda=6, lower.tail=FALSE)
[1] 0.9380312