#echo: true
<-
d data.frame(
A = c(1, 1, 0, 0),
B = c(1, 0, 1, 0)
)
d
A | B |
---|---|
1 | 1 |
1 | 0 |
0 | 1 |
0 | 0 |
January 18, 2024
In dieser Aufgabe betrachten wir typische Relationen von Ereignissen, um typische Fragen der Wahrscheinlichkeitsrechnung zu beantworten.
Gegeben sei folgender Datensatz d
:
Der Datensatz d
stellt alle vier Kombinationen der beiden Variablen A
und B
da (wir gehen davon aus, dass es sich um binäre Variablen, wie Ereignisse, handelt, der Einfachheit halber).
Dabei steht A == 1
für \(A\) (Ereignis \(A\) ist der Fall) und A == 0
für \(\neg A\), A tritt nicht ein, ist nicht der Fall.
Generell wird in der Wissenschaft und Technik 0 für “nein, falsch” und 1 für “ja, wahr, richtig” verwendet.
Aufgabe: Berechnen Sie mit R \(Pr(A\cap B), Pr(\neg A\cap B), Pr(A\cup B), Pr(A|B), Pr(B|A)\)!
Gesucht sind mehrere Relationen: \(Pr(A\cap B), Pr(\neg A\cap B), Pr(A\cup B), Pr(A|B), Pr(B|A)\)
Hier ist unserer Datentabelle d
, wie oben erstellt::
A | B |
---|---|
1 | 1 |
1 | 0 |
0 | 1 |
0 | 0 |
Also 1 von 4 Zeilen, das heißt 1/4 oder .25.
Man kann das auch mit count
ausrechnen:
Der Operator &
steht für das logische “UND” (Schnitt, intersect).
Und so kann man sich noch die Anteile ausrechnen lassen:
\(Pr(\neg A\cap B)\) ist im Prinzip identisch zum Schnitt ohne Negation:
A == 0 & B == 1 | n | Anteil |
---|---|---|
FALSE | 3 | 0.75 |
TRUE | 1 | 0.25 |
Oder so:
!(A == 1) & B == 1 | n | Anteil |
---|---|---|
FALSE | 3 | 0.75 |
TRUE | 1 | 0.25 |
Der Operator !
entspricht der logischen Negation.
Kommen wir zu \(Pr(A\cup B)\), der logischen Vereinigung, auch logisches “ODER” genannt.
(A == 1) | (B == 1) | n | Anteil |
---|---|---|
FALSE | 1 | 0.25 |
TRUE | 3 | 0.75 |
Der Operator |
steht in R für das logische ODER.
Wie man sieht, kann man die Klammern um (A == 1) | (B == 1)
verwenden für bessere Sichtbarkeit. Es ist aber nicht nötig.
\(Pr(A|B)\) entspricht einem Filtern, d.h. bedingen auf B entspricht einem Filtern, so dass nur noch \(B\) und nicht \(\neg B\) übrig bleibt.
1 Fall von 2 erfüllt die Bedingung A == 1
, also 50%.
Diese Aufgabe ist analog zu \(Pr(A|B)\):
\(Pr(B|\neg A)\) - Eigentlich nichts Neues:
---
date: 2024-01-18 # HEUTIGES DATUM EINTRAGEN
draft: false # ACHTUNG DRAFT STEHT AUF TRUE!
title: wskt-df-r # ACHTUNG: HIER NAMEN DER AUFGABE ANGEBEN
execute:
eval: true
highlight-style: arrow
cache: true
format:
html:
df-print: kable
extype: string
exsolution: ""
exshuffle: no
categories:
- probability # ENTER CATEGORIES HERE
- R
- computer
---
Question
========
In dieser Aufgabe betrachten wir typische Relationen von Ereignissen, um typische Fragen der Wahrscheinlichkeitsrechnung zu beantworten.
Gegeben sei folgender Datensatz `d`:
```{r}
#echo: true
d <-
data.frame(
A = c(1, 1, 0, 0),
B = c(1, 0, 1, 0)
)
d
```
Der Datensatz `d` stellt alle vier Kombinationen der beiden Variablen `A` und `B` da (wir gehen davon aus, dass es sich um binäre Variablen, wie Ereignisse, handelt, der Einfachheit halber).
Dabei steht `A == 1` für $A$ (Ereignis $A$ ist der Fall) und `A == 0` für $\neg A$, A tritt nicht ein, ist nicht der Fall.
Generell wird in der Wissenschaft und Technik 0 für "nein, falsch" und 1 für "ja, wahr, richtig" verwendet.
*Aufgabe*: **Berechnen Sie mit R $Pr(A\cap B), Pr(\neg A\cap B), Pr(A\cup B), Pr(A|B), Pr(B|A)$!**
Solution
========
Gesucht sind mehrere Relationen: $Pr(A\cap B), Pr(\neg A\cap B), Pr(A\cup B), Pr(A|B), Pr(B|A)$
## Setup
```{r}
#| message: false
library(tidyverse)
```
Hier ist unserer Datentabelle `d`, wie oben erstellt::
```{r}
#| echo: false
gt::gt(d)
```
## $Pr(A\cap B)$
```{r}
d |>
filter(A == 1 & B == 1)
```
Also 1 von 4 Zeilen, das heißt 1/4 oder .25.
Man kann das auch mit `count` ausrechnen:
```{r}
d |>
count(A == 1 & B == 1)
```
Der Operator `&` steht für das logische "UND" (Schnitt, intersect).
Und so kann man sich noch die Anteile ausrechnen lassen:
```{r}
d |>
count(A == 1 & B == 1) |>
mutate(Anteil = n / sum(n))
```
## $Pr(\neg A\cap B)$
$Pr(\neg A\cap B)$ ist im Prinzip identisch zum Schnitt ohne Negation:
```{r}
d |>
count(A == 0 & B == 1) |>
mutate(Anteil = n / sum(n))
```
Oder so:
```{r}
d |>
count(!(A == 1) & B == 1) |>
mutate(Anteil = n / sum(n))
```
Der Operator `!` entspricht der logischen Negation.
## $Pr(A\cup B)$
Kommen wir zu $Pr(A\cup B)$, der logischen Vereinigung, auch logisches "ODER" genannt.
```{r}
d |>
count((A == 1) | (B == 1)) |>
mutate(Anteil = n / sum(n))
```
Der Operator `|` steht in R für das logische ODER.
Wie man sieht, kann man die Klammern um `(A == 1) | (B == 1)` verwenden für bessere Sichtbarkeit. Es ist aber nicht nötig.
## $Pr(A|B)$
$Pr(A|B)$ entspricht einem Filtern, d.h. bedingen auf B entspricht einem Filtern, so dass nur noch $B$ und nicht $\neg B$ übrig bleibt.
```{r}
d |>
filter(B == 1) |>
count(A)
```
1 Fall von 2 erfüllt die Bedingung `A == 1`, also 50%.
## $Pr(B|A)$
Diese Aufgabe ist analog zu $Pr(A|B)$:
```{r}
d |>
filter(A == 1) |>
count(B)
```
## Bonus $Pr(B|\neg A)$
$Pr(B|\neg A)$ -
Eigentlich nichts Neues:
```{r}
d |>
filter(!(A == 1)) |>
count(B)
```