diff --git a/README.md b/README.md index a37319b..f089f8b 100644 --- a/README.md +++ b/README.md @@ -16,23 +16,23 @@ Beispiele, Erklärungen und Beweise cool. ## Fortschritt -- ⭕ Grundlagen der Wahrscheinlichkeitstheorie +- ✅ Grundlagen der Wahrscheinlichkeitstheorie - ✅ ├ Grundbegriffe - ✅ ├ Unabhängigkeit, bedingte Wahrscheinlichkeit - ✅ ├ Zufallsvektoren - ✅ ├ Erwartungswert, Varianz -- ⭕ └ Covarianz, Korrelationskoeffizient +- ✅ └ Kovarianz, Korrelationskoeffizient - ✅ Wahrscheinlichkeitsverteilungen - ✅ ├ Diskrete Verteilungen - ✅ └ Stetige Verteilungen -- ⭕ Erzeugung von Zufallszahlen -- ⭕ ├ Inversionsmethode (diskret) -- ✅ ├ Inversionsmethode (stetig) +- ✅ Erzeugung von Zufallszahlen +- ✅ ├ Diskrete Zufallszahlen +- ✅ ├ Inversionsmethode - ✅ ├ Annahme-Verwerfungs-Methode - ✅ ├ Importance Sampling - ✅ ├ Box-Muller-Polarmethode -- ⭕ ├ Erzeugung von Zufallsvektoren -- ⭕ └ Mehrdimensionale Normalverteilung +- ✅ ├ Erzeugung von Zufallsvektoren +- ✅ └ Mehrdimensionale Normalverteilung - ⭕ Monte-Carlo (Skriptausschnitt in OPAL verfügbar) - ⭕ ├ Zentraler Grenzwertsatz - ⭕ ├ Satz von Moivre-Laplace diff --git a/src/doc.tex b/src/doc.tex index 4202f12..7cc6a78 100644 --- a/src/doc.tex +++ b/src/doc.tex @@ -26,12 +26,12 @@ \usepackage{amsmath} \usepackage{amsthm} \usepackage{amssymb} +\usepackage{dsfont} % \mathds{1} % Algorithmen \usepackage[ german, -ruled, -linesnumbered +ruled ]{algorithm2e} % Verlinkungen @@ -134,11 +134,13 @@ \newcommand{\e}{\mathrm{e}} \newcommand{\lr}{\leftrightarrow} \newcommand{\pd}[2]{\frac{\partial #1}{\partial #2}} % partielle Ableitungen -\DeclareMathOperator{\T}{\text{T}} % Matrixtransposition +\newcommand{\zvec}[1]{\overrightarrow{\mathrm{#1}}} +\newcommand{\T}{\top} % Matrixtransposition \DeclareMathOperator{\E}{E} % Erwartungswert \DeclareMathOperator{\Var}{Var} % Varianz \DeclareMathOperator{\Det}{det} % Determinante \DeclareMathOperator{\atan}{atan} % tan^-1 +\DeclareMathOperator{\Cov}{Cov} % Kovarianz % Interne Referenzen z.B. für definierte Begriffe \newcommand{\link}[2]{\hyperref[#1]{#2}} @@ -163,7 +165,7 @@ \tableofcontents - \chapter{Grundlagen der Wahrscheinlichkeitstheorie} + \chapter{Grundlagen der Wahrscheinlichkeitsrechnung} \input{wahrscheinlichkeitstheorie.tex} \section{Zufallsvariablen} \input{zufallsvariablen-zufallsvektoren.tex} diff --git a/src/erwartungswert-varianz.tex b/src/erwartungswert-varianz.tex index d071f61..3119410 100644 --- a/src/erwartungswert-varianz.tex +++ b/src/erwartungswert-varianz.tex @@ -1,3 +1,8 @@ +\subsection{Erwartungswert} + +Der Erwartungswert beschreibt die Zahl, die eine Zufallsvariable im Mittel +annimmt. + \begin{definition}{Erwartungswert}{ewert} Sei $X$ eine \link{def:zvar}{Zufallsvariable} mit Zustandsraum $S=\{x_0, x_1, ...\}$ und Einzelwahrscheinlichkeiten $p_k=P(X=x_k)$. Dann heißt @@ -9,42 +14,52 @@ \[ \E(X) =\langle X\rangle := \int x\cdot\rho_X(x)\mathrm{d}x \] +Oft wird $\mu$ als Zeichen für den Erwartungswert verwendet. \end{definition} +\begin{theorem}{Rechenregeln Erwartungswert}{ewert} +Für den Erwartungswert von Zufallsvariablen $X$, $Y$ und $a,b\in\R$ gelten +folgende Rechenregeln: +\begin{align*} +\E(aX+b) &= a\E(X) + b \\ +\E(X+Y) &= \E(X) + \E(Y) +\end{align*} +\end{theorem} + +\begin{theorem}{Markov inequality}{markov-inequality} +Sei $X$ eine stetige \link{def:zvar}{Zufallsvariable}, $f$ eine Funktion mit +$f(X)\ge 0$ und existierndem und endlichem Erwartungswert $\E(f(X))$. Dann gilt: +\[ +P\big(f(X)\ge a\big)\le \frac{\E(f(x))}{a},\quad a\in\R +\] +\end{theorem} + + +\subsection{Varianz} + +Die Varianz ist ein Maß der Streuung einer Zufallsvariable, also wie sehr die +Werte verteilt sind. + \begin{definition}{Varianz}{varianz} Sei $X$ eine \link{def:zvar}{Zufallsvariable} mit Zustandsraum $S=\{x_0, x_1, -...\}$ und Einzelwahrscheinlichkeiten $p_k=P(X=x_k)$. Dann heißt +...\}$ und Einzelwahrscheinlichkeiten $P(X=x_k)$. Dann heißt \[ \Var(X) := \sum_k (x_k - \E(X))^2 \] -Variaanz von $X$. +Variaanz von $X$. Oft wird $\sigma^2$ als Zeichen für die Varianz verwendet. \end{definition} -Die Varianz ist ein Maß der Streuung einer Zufallsvariable. Sie lässt sich auch -berechnen durch: -\[ -\Var(X) = \E((X-\E(X))^2) -\] -Für Erwartungswert und Varianz von Zufallsvariablen $X$, $Y$ und $a,b\in\R$ gelten -folgende Rechenregeln: +\begin{theorem}{Rechenregeln Varianz}{varianz} +Seien $X$, $Y$ Zufallsvariablen und $a,b\in\R$. Dann gelten folgende Rechenregeln: \begin{align*} -\E(aX+b) &= a\E(X) + b \\ -\E(X+Y) &= \E(X) + \E(Y) \\ \Var(aX+b) &= a^2 \Var(X) \\ \Var(X) &= \E(X^2) - \E(X)^2 \end{align*} +\end{theorem} -Im Gegensatz zum Erwartungswert gilt für die Varianz $\Var(X+Y) \ne \Var(X) + -\Var(Y)$. +Im Gegensatz zum Erwartungswert gilt für die Varianz im Allgemeinen +$\Var(X+Y) \ne \Var(X) + \Var(Y)$. -\begin{theorem}{Markov inequality}{markov-inequality} -Sei $X$ eine stetige \link{def:zvar}{Zufallsvariable}, $f$ eine Funktion mit -$f(X)\ge 0$ und existierndem und endlichem Erwartungswert $\E(f(X))$. Dann gilt: -\[ -P(f(X)\ge a)\le \frac{\E(f(x))}{a},\quad a\in\R -\] -\end{theorem} -Ein Spezialfall dieser Ungleichung ist: \begin{theorem}{Ungleichung von Tschebyscheff}{tschebyscheff} Sei $X$ eine Zufallsvariable mit $\E(X) = \mu$ und $\Var(X) = \sigma^2$. Dann gilt: @@ -53,6 +68,71 @@ \] \end{theorem} + +\subsection{Kovarianz} + +Die Kovarianz ist ein Maß der gemeinsamen Streuung zweier Zufallsvariablen. + +\begin{definition}{Kovarianz}{kovarianz} +Sei $\zvec{X} = (X,Y)^\T$ eine Zufallsvektor. Dann heißt +\[ +\Cov(X,Y) = \E(X\cdot Y) - \E(X)\cdot\E(Y) +\] +\defw{Kovarianz} von $X$ und $Y$. +\end{definition} + +\begin{definition}{Kovarianzmatrix}{kovarianz-matr} +Seien $X_1, X_2, \ldots, X_n$ Zufallsvariablen. Die Matrix +\[ +\Cov(\zvec{X}) = \begin{pmatrix} + \Var(X_1) & \Cov(X_1,X_2) & \ldots & \Cov(X_1, X_n) \\ + \Cov(X_2,X_1) & \Var(X_2) & \ldots & \Cov(X_2, X_n) \\ + \vdots & \vdots & \ddots & \vdots \\ + \Cov(X_n,X_1) & \Cov(X_n,X_2) & \ldots & \Var(X_n) +\end{pmatrix} +\] +heißt \defw{Kovarianzmatrix} von $\zvec{X}$. +\end{definition} + +\begin{theorem}{Rechenregeln Kovarianz}{kovarianz} +Seien $X$ und $Y$ Komponenten des Zufallsvektors $\zvec{X}=(X,Y)^\T$ und +$a,b\in\R$. Dann gelten folgende Rechenregeln: +\begin{align*} +\Cov(X, Y) &= \Cov(Y,X) \\ +\Cov(X + a, Y + b) &= \Cov(X,Y) \\ +\Cov(a\cdot X, b\cdot Y) &= ab\cdot\Cov(X,Y) \\ +\Cov(X, X) &= \Var(X) \\ +|\Cov(X,Y)| &\le \sqrt{\Var(X)\cdot\Var(Y)} \tag{Schwarz'sche Ungleichung} +\end{align*} +\end{theorem} + + +\subsection{Korrelation} + +Varianz und Kovarianz können unter anderem als Maß für die Korrelation zwischen +zwei Zufallsvariablen verwendet werden (das heißt wie sehr sich die +Zufallsvariablen "`gleich"' verhalten): +\begin{definition}{Korrelationskoeffizient}{korr} +Sei $\zvec{X}=(X,Y)^\T$ ein Zufallsvektor. Dann heißt +\[ +f_{X,Y} = \frac{\Cov(X,Y)}{\sqrt{\Var(X)\cdot\Var(Y)}} +\] +\defw{Korrelationskoeffizient} von $X$ und $Y$. +\end{definition} + +\begin{theorem}{Rechenregeln Korrelation} +Seien $X$ und $Y$ Zufallsvariablen mit Korrelationskoeffizient $f_{X,Y}$. +Dann gelten folgende Rechenregeln: +\begin{align*} +|f_{X,Y}| &\le 1 \\ +X,Y \text{unabhängig} &\implies f_{X,Y} = 0 \\ +|f_{X,Y}| = 1 &\implies \exists a,b\in\R, b\ne0: Y=a\cdot X + b \tag{Perfekter +linearer Zusammenhang} +\end{align*} +\end{theorem} + +\subsection{Standardisierung} + \begin{definition}{Standardisierte Zufallsvariable}{std} Sei $X$ eine Zufallsvariable mit $\E(X) = 0$ und $Var(X) = 1$. Dann heißt $Z$ \defw{standardisiert}. diff --git a/src/img/normal-2d.png b/src/img/normal-2d.png new file mode 100644 index 0000000..8fddc7b Binary files /dev/null and b/src/img/normal-2d.png differ diff --git a/src/ref/zufallszahlen.bib b/src/ref/zufallszahlen.bib index 4e8d3fc..3f304b8 100644 --- a/src/ref/zufallszahlen.bib +++ b/src/ref/zufallszahlen.bib @@ -6,3 +6,7 @@ @online{wolfram-polar title = "Polar coordinates", url = "https://mathworld.wolfram.com/PolarCoordinates.html" } +@online{wiki-matrixwurzel, + title = "Matrixwurzel", + url = "https://de.wikipedia.org/wiki/Quadratwurzel_einer_Matrix" +} diff --git a/src/verteilungen.tex b/src/verteilungen.tex index 3359147..3c2a156 100644 --- a/src/verteilungen.tex +++ b/src/verteilungen.tex @@ -1,5 +1,30 @@ \section{Diskrete Verteilungen} +\begin{definition}{Verteilungsfunktion}{vertf-disk} +Sei $X$ eine diskrete \link{def:zvar}{Zufallsvariable} mit Zustandsraum $x_0, +x_1, \ldots$. Die Funktion +\[ +F_X:\R\to\R,\ F_X(z) = P(X \le z) +\] +heißt \defw{Verteilungsfunktion} der Zufallsvariable $X$. Die +Verteilungsfunktion eine Treppenfunktion, die an den Stellen $x_k$ um +$p_k = P(X=x_k)$ springt. Darum gilt: +\[ +F_X(z) = \sum_{x_k\le z}P(X=x_k) = \sum_{x_k\le z} p_k +\] +\end{definition} + +Eine Art Umkehrfunktion der Verteilungsfunktion ist die Quantilfunktion: +\begin{definition}{Quantilfunktion}{quantilf} +Sei $F_X(z) = P(X\le z)$ die Verteilungsfunktion einer diskreten Zufallsvariable +$X$. Dann heißt +\[ +F_X^{-1}(z) = \mathrm{min}\{x\in\R: F(x) \ge z\},\quad z\in(0,1) +\] +die \defw{Quantilfunktion} von $X$. +\end{definition} + +\medskip Im Folgenden Abschnitt sei $X$ eine diskrete \link{def:zvar}{Zufallsvariable} mit Zustandsraum $S$, $A \in S$ und $P$ eine \link{def:verteilung}{Wahrscheinlichkeitsverteilung} dieser Zufallsvariable. diff --git a/src/wahrscheinlichkeitstheorie.tex b/src/wahrscheinlichkeitstheorie.tex index 5161431..ba25a7d 100644 --- a/src/wahrscheinlichkeitstheorie.tex +++ b/src/wahrscheinlichkeitstheorie.tex @@ -12,14 +12,12 @@ \section{Grundbegriffe} bezeichnet. \end{definition} - \begin{definition}{Grundraum}{grundraum} Alle möglichen Ausgänge eines \link{def:zufallsversuch}{Zufallsversuchs} bilden den \defw{Grundraum} $\Omega$ (auch: \defw{Ergebnismenge}). Die Elemente des Grundraums werden als \defw{Elementarereignisse} bezeichnet. \end{definition} - \begin{definition}{Ereignis}{ereignis} Eine Teilmenge $A$ von $\Omega$ wird als Ereignis bezeichnet. Dabei bezeichnet $A = \Omega$ das sichere Ereignis, dass immer eintritt und $A = \emptyset$ das @@ -33,7 +31,6 @@ \section{Grundbegriffe} eine Augenzahl $\ge 5$ gewürfelt wird. \end{example} - \begin{definition}{Ereignisalgebra}{ealg} Eine Menge von Ereignissen bezogen auf einen \link{def:grundraum}{Grundraum} $\Omega$ bildet eine \defw{Ereignisalgebra} oder \defw{Ereignissystem}, wenn gilt: diff --git a/src/zufallsvariablen-zufallsvektoren.tex b/src/zufallsvariablen-zufallsvektoren.tex index 65e1b60..6037597 100644 --- a/src/zufallsvariablen-zufallsvektoren.tex +++ b/src/zufallsvariablen-zufallsvektoren.tex @@ -39,7 +39,7 @@ \section{Zufallsvektoren} \begin{definition}{Zufallsvektor}{zvektor} Seien $X_1, ..., X_n$ \link{def:zvar}{Zufallsvariablen}. Die Zusammenfassung \[ -\underline{X} = (X_1, ..., X_n)^T +\zvec{X} = (X_1, ..., X_n)^\T \] zu einem Vektor heißt \defw{Zufallsvektor}. Sind alle Komponenten des Vektors diskret beziehungsweise stetig, heißt der Zufallsvektor diskret beziehungsweise @@ -52,20 +52,20 @@ \subsection{Gemeinsame Verteilung} zusammenfassen: \begin{definition}{Gemeinsame Verteilung eines Zufallsvektors}{vert-zvektor} -Sei $\underline{X} = (X, Y)^T$ ein diskreter Zufallsvektor, wobei die +Sei $\zvec{X} = (X, Y)^\T$ ein diskreter Zufallsvektor, wobei die Zufallsvariable $X$ die Werte $x_0, x_1, ..., x_n$ und $Y$ die Werte $y_0, y_1, ..., y_m$ annimmt. Dann bezeichnet die Matrix \[ (p_{ij})_{i=0,...,n;j=0,...,m} \qquad mit\ p_{ij} = P(X=x_i, Y=y_j) \] -die \defw{gemeinsame Verteilung} von $\underline{X}$. +die \defw{gemeinsame Verteilung} von $\zvec{X}$. -Die Verteilung eines stetigen Zufallsvektors $(X,Y)^T$ wird durch die gemeinsame +Die Verteilung eines stetigen Zufallsvektors $(X,Y)^\T$ wird durch die gemeinsame Dichte $\rho_{X,Y}(x,y)$ beschrieben. \end{definition} \begin{definition}{Randverteilung}{randv} -Sei $(X,Y)^T$ ein diskreter Zufallsvektor mit gemeinsamer Verteilung $p$. +Sei $(X,Y)^\T$ ein diskreter Zufallsvektor mit gemeinsamer Verteilung $p$. Die Summierung von Zeilen bzw. Spalten der Matrix werden als \defw{Randverteilung} bezeichnet: \begin{align*} @@ -76,7 +76,7 @@ \subsection{Gemeinsame Verteilung} Analog gilt für stetige Zufallsvektoren: \begin{definition}{Randdichte}{randd} -Sei $(X,Y)^T$ ein stetiger Zufallsvektor mit gemeinsamer \link{def:dichte}{Dichte} +Sei $(X,Y)^\T$ ein stetiger Zufallsvektor mit gemeinsamer \link{def:dichte}{Dichte} $\rho_{(X, Y)}$. Dann werden \begin{align*} \rho_X(x) = \int\rho_{(X,Y)}(x,y)\mathrm{d} y\quad x\in\R\\ @@ -86,7 +86,7 @@ \subsection{Gemeinsame Verteilung} \end{definition} \begin{theorem}{}{randd} -Sei $(X,Y)^T$ ein Zufallsvektor von unabhängigen Zufallsvariablen $X$ und $Y$ +Sei $(X,Y)^\T$ ein Zufallsvektor von unabhängigen Zufallsvariablen $X$ und $Y$ mit zugehörigen Randdichten $\rho_X$ und $\rho_Y$. Dann kann die gemeinsame Verteilung $\rho_{X,Y}$ berechnet werden durch: \[ @@ -100,7 +100,7 @@ \subsection{Bedingte Wahrscheinlichkeit} auch für Zufallsvektoren eine bedingte Wahrscheinlichkeit definieren: \begin{definition}{Bedingte Wahrscheinlichkeit}{bedwahr} -Sei $\underline{X} = (X, Y)^T$ ein diskreter Zufallsvektor mit +Sei $\zvec{X} = (X, Y)^\T$ ein diskreter Zufallsvektor mit \link{def:vert-zvektor}{gemeinsamer Verteilung} $(p_{ij})_{i,j=0,1,...}$. Dann ist mit \[ @@ -110,11 +110,11 @@ \subsection{Bedingte Wahrscheinlichkeit} \end{definition} \begin{definition}{Bedingte Dichte}{bedd} -Ist $\underline{X}$ ein stetiger Zufallsvektor mit gemeinsamer Dichte +Ist $\zvec{X}$ ein stetiger Zufallsvektor mit gemeinsamer Dichte $\rho_{(X,Y)}$, so bezeichnen die Funktionen \begin{align*} -\rho_{X|Y=y}(x) = \frac{\rho_{(X,Y)}(x,y)}{\rho_Y(y)}\\ -\rho_{Y|X=x}(y) = \frac{\rho_{(X,Y)}(x,y)}{\rho_X(x)} +\rho_{X|Y=y}(x) = \frac{\rho_{X,Y}(x,y)}{\rho_Y(y)}\\ +\rho_{Y|X=x}(y) = \frac{\rho_{X,Y}(x,y)}{\rho_X(x)} \end{align*} die \defw{bedingte Dichte} von $X$ unter $Y=y$ bzw. $Y$ unter $X=x$. \end{definition} @@ -124,5 +124,5 @@ \subsection{Bedingte Wahrscheinlichkeit} formuliert werden: \begin{align*} p_{ij} = P(Y=y_j|X=x_i)\cdot p_{i.}\\ -\rho_{(X,Y)} = \rho_{Y|X=x}(y)\cdot\rho_X(x) +\rho_{X,Y} = \rho_{Y|X=x}(y)\cdot\rho_X(x) \end{align*} diff --git a/src/zufallszahlengenerierung.tex b/src/zufallszahlengenerierung.tex index 6cb7a9a..eaa9842 100644 --- a/src/zufallszahlengenerierung.tex +++ b/src/zufallszahlengenerierung.tex @@ -1,6 +1,82 @@ -Dieses Kapitel behandelt Grundlagen und Methoden zur Generierung von beliebig -verteilten Zufallszahlen durch einen Zufallszahlengenerator mit gleichverteilten -Zufallszahlen. +Dieses Kapitel behandelt Methoden zur Generierung von diskreten und stetigen +mit beliebiger Verteilung Zufallszahlen. Wir nehmen an, mehrere +Pseudo-Zufallszahlengenerator (PRNG) $U_1, U_2, \ldots$ zur Verfügung zu haben, +die unabhängig voneinander $U(0,1)$ verteilte Zufallszahlen erzeugen. + +PRNG sind nicht "`echt"' zufällig, da eine Folge von Zufallszahlen durch den +Startwert des Generators bestimmt ist und damit auch reproduziert werden kann. +Zusätzlich ist ein PRNG periodisch, sodass sich die generierten Zahlen ab einem +bestimmten Punkt wiederholen. Trotz dieser Eigenschaften sind (gute) PRNG sehr +gut für praktische Anwendungen geeignet, da sie sehr schnell Zufallszahlen +erzeugen können und die erzeugten Zahlen bei einem zufälligen Startwert nicht +von tatsächlich zufälligen Zahlen (z.B. bestimmt durch einen physikalischen +Prozess) unterscheidbar sind. + +\section{Zufallszahlen mit diskreter Verteilung} + +Ziel ist es, zufällig Zahlen zu erzeugen, die wie die Zufallsvariable $X$ mit +Zustandsraum $S = \{x_0, x_1, \ldots\}$ und zugehörigen Wahrscheinlichkeiten +$p_k = P(X=x_k)$ verteilt sind. Wir bestimmen im Folgenden ein Verfahren, mit +dem wir die Zufallszahlen $U_1\sim U(0,1)$ in die Zielverteilung umformen +können. + +Das einfachste Vorgehen ist die proportionale Aufteilung des Intervalls $[0,1]$ +gemäß der Wahrscheinlichkeiten $p_k$. Jedem $p_k$ wird der Bereich von $s_{k-1}$ +bis $s_k$ zugewiesen, der genau $p_k$ breit ist: +\[ +s_{k} = \sum_{i=0}^k p_k +\] +Fällt die von $U_1$ generierte Zufallszahl in das Intervall $(s_{k-1}, s_k)$, so +wird $x_k$ ausgegeben. Damit werden Zufallszahlen in der Zielverteilung erzeugt. + +Folgender Algorithmus implementiert diese Methode und erzeugt $N$ wie $X$ +verteilte Zufallszahlen: + +\begin{algorithm}[h!] + +\For{$1$ \KwTo $N$}{ + Setze $k=0$, $s=p_k$\; + Erzeuge $u\sim U(0,1)$\; + \While{$u > s$}{ + Setze $k \leftarrow k+1$\; + Setze $s \leftarrow s+p_k$\; + } + Gib $x_k$ aus\; +} + +\caption{Erzeugung diskreter Zufallszahlen}\label{algo:zz-diskret} +\end{algorithm} + +Bei diesem Algorithmus sind in der inneren Schleife $\E(X)$ Durchläufe +notwendig (zumindest sofern $x_0 = 0$, $x_1=1$, usw. gilt) +um das $x_k$, in dessen Intervall $u$ fällt, zu finden. +Besitzt $X$ einen großen Zustandsraum, kann das die Geschwindigkeit des +Algorithmus erheblich verschlechtern. + +Man kann die Laufzeiteigenschaften jedoch +verbessern, indem man $X$ auf eine Zufallsvariable $\hat{X}$ abbildet, deren +Werte $\hat{x}_k$ nach $\hat{p}_k$ absteigend geordnet sind. Somit steigt die +Wahrscheinlichkeit, bereits nach wenigen Durchläufen der inneren Schleife das +richtige $\hat{x}_k$ gefunden zu haben. + +Die Idee hinter dem Algorithmus kann weiter verallgemeinert werden. Dafür +betrachten wir die \link{def:quantilf}{Quantilfunktion} von $X$, die die +\link{def:vertf-disk}{Verteilungsfunktion} umkehrt. Die Quantilfunktion gibt +uns also für Werte zwischen $0$ und $1$ zurück, was das $x_k$ zwischen $s_{k-1}$ +und $s_k$ ist. Wir nutzen also (implizit) in Algorithmus \ref{algo:zz-diskret} +bereits die Quantilfunktion. + +\begin{theorem}{Inversionsprinzip für diskrete Variablen}{invp} +Sei $X$ eine diskrete Zufallsvariable mit \link{def:vertf-disk}{Verteilungsfunktion} +$F_X$ und \link{def:quantilf}{Quantilfunktion} +$F_X^{-1}$. Weiterhin sei $U$ eine $U(0,1)$-verteilte Zufallsvariable. Dann +besitzt $F_X^{-1}(U)$ die gleiche Verteilung wie $X$, das heißt: +\[ +P\big(F_X^{-1}(U)\le z\big) = F_X(z) +\] +\end{theorem} +Das ist die Formalisierung von unserem Ansatz, die Wahrscheinlichkeiten $p_k$ +der Zufallsvariable $X$ proportional im Intervall $(0,1)$ zu betrachten. \section{Inversionsmethode} @@ -8,10 +84,14 @@ \section{Inversionsmethode} Sei $X$ eine stetige Zufallsvariable mit \link{def:dichte}{Dichte} $\rho_X$ und Zustandsraum $S$. Sind $a,b\in\R$ und $a \ne 0$, so besitzt die Zufallsvariable $Y = a\cdot X + b$ die Dichte -\[\rho_Y(z) = \rho_X\Big(\frac{z-b}{a}\Big)\] +\[ +\rho_Y(z) = \rho_X\Big(\frac{z-b}{a}\Big) +\] Ist die Funktion $g:S\to\R$ streng monoton, so hat die Zufallsvariable $Y=g(X)$ die Dichte -\[\rho_Y(z) = \rho_X\big(g^{-1}(z)\big)\cdot\big|\big(g^{-1}\big)^\prime(z)\big|\] +\[ +\rho_Y(z) = \rho_X\big(g^{-1}(z)\big)\cdot\big|\big(g^{-1}\big)^\prime(z)\big| +\] \end{theorem} Die Wahrscheinlichkeitsdichte einer verteilte Zufallsvariable $Y$ kann auf die @@ -26,7 +106,9 @@ \section{Inversionsmethode} Sei $U\sim U(0,1)$ eine gleichverteilte Zufallsvariable und $Y$ eine beliebige stetige Zufallsvariable mit \link{def:vertf}{Verteilungsfunktion} $F_Y$. Dann gilt: -\[F_Y^{-1}(U) \sim Y\] +\[ +F_Y^{-1}(U) \sim Y +\] \end{theorem} \begin{example}{Exponentialverteilung}{exp} @@ -46,15 +128,18 @@ \section{Inversionsmethode} \] Bei Einschränkung der Verteilungsfunktion auf den Zustandsraum $(0, \infty)$ von $X$ ergibt sich: -\[F_X: (0,\infty)\to(0,1):x\mapsto1-\e^{-\alpha x}\] - +\[ +F_X: (0,\infty)\to(0,1):x\mapsto1-\e^{-\alpha x} +\] Durch Umstellen ergibt sich folgende Vorschrift für die Umkehrfunktion: -\[F_X^{-1}(y) = -\frac{1}{\alpha} \mathrm{ln}(1-y)\] - +\[ +F_X^{-1}(y) = -\frac{1}{\alpha} \mathrm{ln}(1-y) +\] Damit können wir mit der Inversionsmethode aus einer gleichverteilten Zufallsvariable $U$ Zufallszahlen erzeugen, die wie $X$ verteilt sind: -\[F_X^{-1}(U) = -\frac{1}{\alpha} \mathrm{ln}(1-U) \sim X\] - +\[ +F_X^{-1}(U) = -\frac{1}{\alpha} \mathrm{ln}(1-U) \sim X +\] \end{example} Die Inversionsmethode ist ein effizientes Verfahren, um beliebig verteilte @@ -79,14 +164,12 @@ \section{Annahme-Verwerfungs-Methode} bestimmter Wert als Zufallszahl ausgegeben wird, genau dem Wert der Wahrscheinlichkeitsdichte an diesem Punkt. -Der folgende Algorithmus gibt eine Folge von Zufallszahlen in der gewünschten +Der folgende Algorithmus gibt eine Folge von $N$ Zufallszahlen mit der gewünschten Verteilung aus: \begin{algorithm}[h!] -\DontPrintSemicolon -\LinesNumbered -\While{1}{ +\For{$1$ \KwTo $N$}{ Erzeuge $x\sim U(a,b)$\; Erzeuge $y\sim U(0,1)$\; \If{$y\cdot c \le \rho(x)$}{ @@ -127,10 +210,8 @@ \subsection{Importance-Sampling} Der entsprechende Algorithmus sieht dann so aus: \begin{algorithm}[h!] -\DontPrintSemicolon -\LinesNumbered -\While{1}{ +\For{$1$ \KwTo $N$}{ Erzeuge $u\sim U(a,b)$\; Setze $x = H^{-1}(u)$\; Erzeuge $y\sim U(0,1)$\; @@ -142,10 +223,10 @@ \subsection{Importance-Sampling} \caption{Annahme-Verwerfungs-Methode mit Importance Sampling}\label{algo:av-methode-is} \end{algorithm} -\section{Erzeugung normalverteilter Zufallszahlen} +\section{Normalverteilte Zufallszahlen} \begin{theorem}{Transformationssatz (2D)}{trafo-2d} -Seien $\underline{X} = (X, Y)^T$ und $\underline{Z} = (S,T)^T$ +Seien $\zvec{X} = (X, Y)^\T$ und $\zvec{Z} = (S,T)^\T$ \link{def:zvektor}{Zufallsvektoren} mit gemeinsamer Dichte $\rho_{X,Y}$ bzw. $\rho_{S,T}$. Weiterhin sei $g$ eine bijektive Funktion mit Umkehrfunktion $g^{-1}$, die beide Zufallsvektoren aufeinander @@ -158,7 +239,7 @@ \section{Erzeugung normalverteilter Zufallszahlen} \begin{pmatrix}h_1(s,t)\\h_2(s, t)\end{pmatrix} = \begin{pmatrix}x\\y\end{pmatrix} \end{align*} -Dann gilt für die Wahrscheinlichkeitsdichte von $\underline{Z}$: +Dann gilt für die Wahrscheinlichkeitsdichte von $\zvec{Z}$: \[ \rho_{S,T}(s,t) = \rho_{X,Y}\big(g^{-1}(s,t)\big)\cdot\Det(J) = \rho_{X,Y}(h_1(s,t), h_2(s,t)) \cdot \Det(J) @@ -243,13 +324,11 @@ \subsection{Box-Muller-Methode} \medskip Damit ergibt sich folgender Algorithmus zur Erzeugung von unabhängigen, normalverteilten Zufallszahlen $X~N(\mu, \sigma^2)$. Der Algorithmus erzeugt -immer Paare von normalverteilten Zufallszahlen: +$N$ Paare von normalverteilten Zufallszahlen: \begin{algorithm}[h!] -\DontPrintSemicolon -\LinesNumbered -\While{1}{ +\For{$1$ \KwTo $N$}{ Erzeuge $u\sim U(0,1)$\; Erzeuge $v\sim U(0,1)$\; Setze $z_1 = \sqrt{-2\,\ln(1-u)}\cdot\cos(2\pi\cdot v)$\; @@ -269,13 +348,11 @@ \subsection{Methode von Box, Muller, Marsaglia (Polarmethode)} Zufallszahlen, die die Auswertung von trigonometrischen Funktionen und des Logarithmus vermeidet und daher schneller als die Box-Muller-Methode ist. -Der folgende Algorithmus implementiert die Polarmethode: +Der folgende Algorithmus beschreibt die Polarmethode: \begin{algorithm}[h!] -\DontPrintSemicolon -\LinesNumbered \SetKw{Continue}{continue} -\While{1}{ +\For{$1$ \KwTo $N$}{ Erzeuge $u\sim U(0,1)$\; Erzeuge $v\sim U(0,1)$\; Setze $x=2u-1$\; @@ -296,6 +373,86 @@ \subsection{Methode von Box, Muller, Marsaglia (Polarmethode)} \label{algo:box-muller-marsaglia} \end{algorithm} -\section{Erzeugung mehrdimensionaler Zufallszahlen} +\section{Mehrdimensionale Zufallszahlen} + +Bei der Erzeugung von Zufallsvektoren müssen die bedingte Abhängigkeiten +zwischen den jeweiligen Zufallsvariablen berücksichtigt werden. + +Zufallsvektoren können in mehreren Schritten komponentenweise erzeugt werden. + +Sei $\zvec{X} = (X,Y)^\T$ ein \link{def:zvektor}{Zufallsvektor} mit +\link{def:vert-zvektor}{Einzelwahrscheinlichkeiten} $p_{ij}$. Zuerst erzeugen +wir die erste Komponente des Vektors gemäß der \link{def:randv}{Randverteilung} +von $X$. Entsprechend dieser Verteilung wird mit einer geeigneten Methode +(Inversionsmethode, Annahme-Verwerfungs-Methode o.Ä.) ein $x$ ermittelt. + +Durch die Randverteilung von $X$ können wir die \link{def:bedd}{bedingte +Einzelwahrscheinlichkeit} von $Y$, also $P(Y=y_i|x)$ bestimmt werden und ein +$y$ gemäß der Verteilung zufällig ermittelt werden. + +Auf diese Weise können n-dimensionale Zufallszahlen erzeugt werden. + +\subsection{Mehrdimensional normalverteilte Zufallszahlen} + +\begin{figure}[h!] +\centering +\includegraphics[width=10cm]{normal-2d} +\caption{Visualisierung einer zweidimensionalen Normalverteilung} +\end{figure} + +\begin{definition}{Mehrdimensionale Normalverteilung}{ndim-normal} +Sei $\zvec{X} = (X_1, \ldots,X_d)^\T$ ein Zufallsvektor, +$\vec{\mu} = (\mu_1, \ldots, \mu_d)^\T \in\R^d$ ein Vektor der +Erwartungswerte und $\Sigma = (\sigma_{ij})_{i,j=1,\ldots,d}$ +\link{def:kovarianz-matr}{Kovarianzmatrix} von $\zvec{X}$. Besitzt der +Zufallsvektor die Dichte +\[ +\rho_{\zvec{X}} = \frac{1}{\sqrt{(2\pi)^d\cdot\det\Sigma}}\cdot + \exp\Big(-\frac{1}{2}(\vec{x} - \vec{\mu})^\T\ \Sigma^{-1}(\vec{x}-\vec{\mu})\Big) +\] +so heißt er $\zvec{X}$ \defw{normalverteilt} (Schreibweise: $\zvec{X}\sim +N_d(\vec\mu,\Sigma)$). Jede Komponente des Vektors ist normalverteilt, das heißt +es gilt $\forall 0\le i\le d: X_i \sim N(\mu_i,\sigma_{ii})$. +\end{definition} + +\begin{theorem}{Transformation einer mehrdimensionalen +Normalverteilung}{trafo-normal-ndim} +Sei $\zvec{X}$ ein normalverteilter Zufallsvektor von $d$ Komponenten mit +Erwartungswertvektor $\vec\mu$ und Kovarianzmatrix $\Sigma$. Sei $A$ eine +$n\times d$-Matrix ($n\in\N$). Dann ist die Transformation $\zvec{Y}= A\zvec{X}$ +wieder normalverteilt mit +\begin{align*} +\E(\zvec{Y}) &= A\vec\mu \\ +\Cov(\zvec{Y}) &= A\Sigma A^\T +\end{align*} +\end{theorem} + +Diesen Satz können wir für die Erzeugung mehrdimensionaler Normalverteilungen +verwenden. Dafür erzeugen wir einen Zufallsvektor $\zvec{X} \sim +N_d(\vec{0},\mathds{1})$, +den wir so mit einer zu bestimmenden Matrix $A$ transformieren, dass gilt: +\[ +\Cov(A\zvec{X}) = A\cdot \mathds{1}\cdot A^\T = A\cdot A^\T +\] + +Dadurch ergibt sich folgender Algorithmus für die Erzeugung von $N$ +wie $N_d(\vec\mu, \Sigma)$ verteilten Zufallsvektoren: +\begin{algorithm}[h!] + +Finde $A\in\R^{(d\times d)}$ sodass $A\cdot A^\T = \Sigma$\; + +\For{$1$ \KwTo $N$}{ + Erzeuge $z_1, \ldots,z_d$ unabhängig verteilt wie $N(0,1)$\; + Setze $(x_1, \ldots, x_d)^\T = \vec\mu + A\cdot (z_1, \ldots, z_d)^\T$\; + Gib $(x_1, \ldots, x_d)^\T$ aus\; +} + +\caption{Erzeugung von normalverteilten Zufallsvektoren} +\label{algo:zz-normal-ndim} +\end{algorithm} -TODO +Um $z_1, \ldots, z_d$ zu erzeugen kann zum Beispiel die +\link{algo:box-muller-marsaglia}{Polarmethode} verwendet werden. Die Bestimmung +der Matrix $A$ entspricht der sogenannten Matrixwurzel von $\Sigma$, die durch +die Orthonormalbasis der Eigenvektoren bestimmt werden +kann\more{wiki-matrixwurzel}.