Improved indices

This commit is contained in:
Jan Benda 2015-11-23 11:00:19 +01:00
parent 993ab5d8e7
commit 3225b28be4
12 changed files with 204 additions and 177 deletions

View File

@ -5,7 +5,7 @@
\lstset{inputpath=../code} \lstset{inputpath=../code}
\graphicspath{{figures/}} \graphicspath{{figures/}}
\setcounter{page}{77} \setcounter{page}{81}
\setcounter{chapter}{4} \setcounter{chapter}{4}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

View File

@ -2,7 +2,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\chapter{\tr{Bootstrap Methods}{Bootstrap Methoden}} \chapter{\tr{Bootstrap Methods}{Bootstrap Methoden}}
Beim Bootstrap erzeugt man sich die Verteilung von Statistiken durch Resampling Beim \determ{Bootstrap} erzeugt man sich die Verteilung von Statistiken durch Resampling
aus der Stichprobe. Das hat mehrere Vorteile: aus der Stichprobe. Das hat mehrere Vorteile:
\begin{itemize} \begin{itemize}
\item Weniger Annahmen (z.B. muss eine Stichprobe nicht normalverteilt sein). \item Weniger Annahmen (z.B. muss eine Stichprobe nicht normalverteilt sein).
@ -21,21 +21,22 @@ aus der Stichprobe. Das hat mehrere Vorteile:
\end{figure} \end{figure}
Zur Erinnerung: In der Statistik interessieren wir uns f\"ur Zur Erinnerung: In der Statistik interessieren wir uns f\"ur
Eigenschaften einer Grundgesamtheit. z.B. die mittlere L\"ange von Eigenschaften einer \determ{Grundgesamtheit}. z.B. die mittlere
sauren Gurken (\figref{statisticalpopulationfig}). Aus der L\"ange von sauren Gurken (\figref{statisticalpopulationfig}). Aus der
Grundgesamtheit wird eine Stichprobe (simple random sample, SRS) Grundgesamtheit wird eine \determ{Stichprobe} (\enterm{simple random
gezogen, da niemals die gesamte Grundgesamtheit gemessen werden kann. sample}, \enterm[SRS|see{simple random sample}]{SRS}) gezogen, da
Dann wird aus dieser einzigen Stichprobe die gew\"unschte Gr\"o{\ss}e niemals die gesamte Grundgesamtheit gemessen werden kann. Dann wird
berechnet (die mittlere Gr\"o{\ss}e der sauren Gurken) und man hofft, aus dieser einzigen Stichprobe die gew\"unschte Gr\"o{\ss}e berechnet
dass die erhaltene Zahl an der entsprechenden unbekannten Gr\"o{\ss}e (die mittlere Gr\"o{\ss}e der sauren Gurken) und man hofft, dass die
der Grundgesamtheit (der Populationsparameter) m\"oglichst nah dran erhaltene Zahl an der entsprechenden unbekannten Gr\"o{\ss}e der
Grundgesamtheit (der \determ{Populationsparameter}) m\"oglichst nah dran
ist. Eine Aufgabe der Statistik ist es, herauszubekommen wie gut der ist. Eine Aufgabe der Statistik ist es, herauszubekommen wie gut der
Populationsparameter abgesch\"atzt worden ist. Populationsparameter abgesch\"atzt worden ist.
Wenn wir viele Stichproben ziehen w\"urden, dann k\"onnte man f\"ur Wenn wir viele Stichproben ziehen w\"urden, dann k\"onnte man f\"ur
jede Stichprobe den gew\"unschten Parameter berechnen, und von diesen jede Stichprobe den gew\"unschten Parameter berechnen, und von diesen
die Wahrscheinlichkeitsverteilung \"uber ein Histogramm bestimmen --- die Wahrscheinlichkeitsverteilung \"uber ein Histogramm bestimmen ---
die ``Stichprobenverteilung'' (sampling distribution, die \determ{Stichprobenverteilung} (\enterm{sampling distribution},
\subfigref{bootstrapsamplingdistributionfig}{a}). \subfigref{bootstrapsamplingdistributionfig}{a}).
\begin{figure}[tp] \begin{figure}[tp]
@ -68,9 +69,9 @@ Mittelwerte der Stichproben um den Populationsmittelwert streuen
\subfigref{bootstrapsamplingdistributionfig}{b}). \subfigref{bootstrapsamplingdistributionfig}{b}).
Wir k\"onnen aber auch aus der einen Stichprobe die wir haben durch Wir k\"onnen aber auch aus der einen Stichprobe die wir haben durch
Resampling viele neue Stichproben generieren (Bootstrap). Von diesen \determ{Resampling} viele neue Stichproben generieren (Bootstrap). Von diesen
k\"onnen wir jeweils die gew\"unschte Gr\"o{\ss}e berechnen und ihre k\"onnen wir jeweils die gew\"unschte Gr\"o{\ss}e berechnen und ihre
Verteilung bestimmen (Bootstrap Verteilung, Verteilung bestimmen (\determ{Bootstrapverteilung},
\subfigref{bootstrapsamplingdistributionfig}{c}). Diese Verteilung ist \subfigref{bootstrapsamplingdistributionfig}{c}). Diese Verteilung ist
interessanterweise in ihrer Breite und Form der Stichprobenverteilung interessanterweise in ihrer Breite und Form der Stichprobenverteilung
sehr \"ahnlich. Nur streut sie nicht um den Populationswert sonder um sehr \"ahnlich. Nur streut sie nicht um den Populationswert sonder um
@ -92,7 +93,7 @@ Stichprobe vorkommen.
Am besten l\"asst sich die Bootstrap Methode am Beispiel des Am besten l\"asst sich die Bootstrap Methode am Beispiel des
Standardfehlers des Mittelwertes veranschaulichen. Aus der Stichprobe Standardfehlers des Mittelwertes veranschaulichen. Aus der Stichprobe
k\"onnen wir den Mittelwert berechnen. Der Standardfehler des k\"onnen wir den Mittelwert berechnen. Der \determ{Standardfehler} des
Mittelwerts gibt die Standardabweichung an, mit der wir erwarten, dass Mittelwerts gibt die Standardabweichung an, mit der wir erwarten, dass
der gemessene Mittelwert um den Populationsmittelwert streut. der gemessene Mittelwert um den Populationsmittelwert streut.
@ -147,7 +148,7 @@ Nullhypothese aus den Daten selbst gewonnen werden. Dabei m\"ussen die
Daten entsprechend der Nullhypothese neu aus der Stichprobe gezogen Daten entsprechend der Nullhypothese neu aus der Stichprobe gezogen
werden. werden.
Diese ``Permutationstests'' haben den Vorteil, dass nur die Diese \determ{Permutationstests} haben den Vorteil, dass nur die
Eigenschaft von Interesse zerst\"ort wird, um die Nullhypothese zu Eigenschaft von Interesse zerst\"ort wird, um die Nullhypothese zu
generieren. Alle anderen Eigenschaften der Daten bleiben erhalten. generieren. Alle anderen Eigenschaften der Daten bleiben erhalten.
@ -166,16 +167,18 @@ generieren. Alle anderen Eigenschaften der Daten bleiben erhalten.
Sehr sch\"on lassen sich Permutationstest am Beispiel von Sehr sch\"on lassen sich Permutationstest am Beispiel von
Korrelationen veranschaulichen. Gegeben sind Datenpaare $(x_i, y_i)$. Korrelationen veranschaulichen. Gegeben sind Datenpaare $(x_i, y_i)$.
Daraus k\"onnen wir den Korrelationskoeffizienten berechnen. Wir Daraus k\"onnen wir den
wissen dann aber noch nicht, ob der berechnete Wert tats\"achlich eine \determ[Korrelationskoeffizient]{Korrelationskoeffizienten}
Korrelation anzeigt. Die Nullhypothese ist, dass die Daten nicht berechnen. Wir wissen dann aber noch nicht, ob der berechnete Wert
miteinander korreliert sind. Indem wir die $x$-Werte und die $y$-Werte tats\"achlich eine Korrelation anzeigt. Die Nullhypothese ist, dass
unabh\"angig voneinander permutieren (ihre Reihenfolge zuf\"allig neu die Daten nicht miteinander korreliert sind. Indem wir die $x$-Werte
anordnen), werden die Korrelationen der Datenpaare zerst\"ort. Wenn und die $y$-Werte unabh\"angig voneinander permutieren (ihre
wir das viele Male wiederholen, bekommen wir die Verteilung der Reihenfolge zuf\"allig neu anordnen), werden die Korrelationen der
Korrelationskoeffizienten f\"ur nichtkorrelierte Daten. Aus dieser Datenpaare zerst\"ort. Wenn wir das viele Male wiederholen, bekommen
Verteilung der Nullhypothese k\"onnen wir dann dann die Signifikanz wir die Verteilung der Korrelationskoeffizienten f\"ur
der tats\"achlich gemessenen Korrelation bestimmen. nichtkorrelierte Daten. Aus dieser Verteilung der Nullhypothese
k\"onnen wir dann dann die Signifikanz der tats\"achlich gemessenen
Korrelation bestimmen.
\begin{exercise}{correlationsignificance.m}{correlationsignificance.out} \begin{exercise}{correlationsignificance.m}{correlationsignificance.out}
Bestimme die Signifikanz eines Korrelationskoeffizienten. Bestimme die Signifikanz eines Korrelationskoeffizienten.

View File

@ -5,7 +5,7 @@
\lstset{inputpath=../code} \lstset{inputpath=../code}
\graphicspath{{figures/}} \graphicspath{{figures/}}
\setcounter{page}{125} \setcounter{page}{129}
\setcounter{chapter}{8} \setcounter{chapter}{8}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

View File

@ -191,7 +191,7 @@
%%%%% english, german, code and file terms: %%%%%%%%%%%%%%% %%%%% english, german, code and file terms: %%%%%%%%%%%%%%%
\usepackage{ifthen} \usepackage{ifthen}
\newcommand{\enterm}[2][]{``#2''\ifthenelse{\equal{#1}{}}{\protect\sindex[enterm]{#2}}{\protect\sindex[term]{#1}}} \newcommand{\enterm}[2][]{``#2''\ifthenelse{\equal{#1}{}}{\protect\sindex[enterm]{#2}}{\protect\sindex[enterm]{#1}}}
\newcommand{\determ}[2][]{\textit{#2}\ifthenelse{\equal{#1}{}}{\protect\sindex[term]{#2}}{\protect\sindex[term]{#1}}} \newcommand{\determ}[2][]{\textit{#2}\ifthenelse{\equal{#1}{}}{\protect\sindex[term]{#2}}{\protect\sindex[term]{#1}}}
\newcommand{\codeterm}[2][]{\textit{#2}\ifthenelse{\equal{#1}{}}{\protect\sindex[term]{#2}}{\protect\sindex[term]{#1}}} \newcommand{\codeterm}[2][]{\textit{#2}\ifthenelse{\equal{#1}{}}{\protect\sindex[term]{#2}}{\protect\sindex[term]{#1}}}
\newcommand{\file}[1]{\texttt{#1}} \newcommand{\file}[1]{\texttt{#1}}

View File

@ -5,7 +5,7 @@
\lstset{inputpath=../code} \lstset{inputpath=../code}
\graphicspath{{figures/}} \graphicspath{{figures/}}
\setcounter{page}{99} \setcounter{page}{101}
\setcounter{chapter}{6} \setcounter{chapter}{6}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

View File

@ -7,7 +7,8 @@
In vielen Situationen wollen wir einen oder mehrere Parameter $\theta$ In vielen Situationen wollen wir einen oder mehrere Parameter $\theta$
einer Wahrscheinlichkeitsverteilung sch\"atzen, so dass die Verteilung einer Wahrscheinlichkeitsverteilung sch\"atzen, so dass die Verteilung
die Daten $x_1, x_2, \ldots x_n$ am besten beschreibt. die Daten $x_1, x_2, \ldots x_n$ am besten beschreibt.
Maximum-Likelihood-Sch\"atzer (maximum likelihood estimate, mle) \determ{Maximum-Likelihood-Sch\"atzer} (\enterm{maximum likelihood
estimator}, \determ[mle|see{Maximum-Likelihood-Sch\"atzer}]{mle})
w\"ahlen die Parameter so, dass die Wahrscheinlichkeit, dass die Daten w\"ahlen die Parameter so, dass die Wahrscheinlichkeit, dass die Daten
aus der Verteilung stammen, am gr\"o{\ss}ten ist. aus der Verteilung stammen, am gr\"o{\ss}ten ist.
@ -31,8 +32,10 @@ Auftretens der Werte $x_1, x_2, \ldots x_n$ gegeben ein bestimmtes $\theta$
p(x_1,x_2, \ldots x_n|\theta) = p(x_1|\theta) \cdot p(x_2|\theta) p(x_1,x_2, \ldots x_n|\theta) = p(x_1|\theta) \cdot p(x_2|\theta)
\ldots p(x_n|\theta) = \prod_{i=1}^n p(x_i|\theta) \; . \ldots p(x_n|\theta) = \prod_{i=1}^n p(x_i|\theta) \; .
\end{equation} \end{equation}
Andersherum gesehen ist das die Likelihood (deutsch immer noch ``Wahrscheinlichleit'') Andersherum gesehen ist das die \determ{Likelihood}
den Parameter $\theta$ zu haben, gegeben die Me{\ss}werte $x_1, x_2, \ldots x_n$, (\enterm{likelihood}, deutsch immer noch ``Wahrscheinlichleit'') den
Parameter $\theta$ zu haben, gegeben die Me{\ss}werte $x_1, x_2,
\ldots x_n$,
\begin{equation} \begin{equation}
{\cal L}(\theta|x_1,x_2, \ldots x_n) = p(x_1,x_2, \ldots x_n|\theta) {\cal L}(\theta|x_1,x_2, \ldots x_n) = p(x_1,x_2, \ldots x_n|\theta)
\end{equation} \end{equation}
@ -55,7 +58,7 @@ An der Stelle eines Maximums einer Funktion \"andert sich nichts, wenn
man die Funktionswerte mit einer streng monoton steigenden Funktion man die Funktionswerte mit einer streng monoton steigenden Funktion
transformiert. Aus numerischen und gleich ersichtlichen mathematischen transformiert. Aus numerischen und gleich ersichtlichen mathematischen
Gr\"unden wird meistens das Maximum der logarithmierten Likelihood Gr\"unden wird meistens das Maximum der logarithmierten Likelihood
(``Log-Likelihood'') gesucht: (\determ{log-Likelihood}, \enterm{log-likelihood}) gesucht:
\begin{eqnarray} \begin{eqnarray}
\theta_{mle} & = & \text{argmax}_{\theta}\; {\cal L}(\theta|x_1,x_2, \ldots x_n) \nonumber \\ \theta_{mle} & = & \text{argmax}_{\theta}\; {\cal L}(\theta|x_1,x_2, \ldots x_n) \nonumber \\
& = & \text{argmax}_{\theta}\; \log {\cal L}(\theta|x_1,x_2, \ldots x_n) \nonumber \\ & = & \text{argmax}_{\theta}\; \log {\cal L}(\theta|x_1,x_2, \ldots x_n) \nonumber \\
@ -73,7 +76,7 @@ $\theta$ maximiert dessen Likelhood?
\begin{figure}[t] \begin{figure}[t]
\includegraphics[width=1\textwidth]{mlemean} \includegraphics[width=1\textwidth]{mlemean}
\titlecaption{\label{mlemeanfig} Maximum Likelihood Estimation des \titlecaption{\label{mlemeanfig} Maximum Likelihood Sch\"atzung des
Mittelwerts.}{Oben: Die Daten zusammen mit drei m\"oglichen Mittelwerts.}{Oben: Die Daten zusammen mit drei m\"oglichen
Normalverteilungen mit unterschiedlichen Mittelwerten (Pfeile) aus Normalverteilungen mit unterschiedlichen Mittelwerten (Pfeile) aus
denen die Daten stammen k\"onnten. Unteln links: Die Likelihood denen die Daten stammen k\"onnten. Unteln links: Die Likelihood
@ -121,7 +124,7 @@ diesem Mittelwert gezogen worden sind (\figref{mlemeanfig}).
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Kurvenfit als Maximum-Likelihood Sch\"atzung} \section{Kurvenfit als Maximum-Likelihood Sch\"atzung}
Beim Kurvenfit soll eine Funktion $f(x;\theta)$ mit den Parametern Beim \determ{Kurvenfit} soll eine Funktion $f(x;\theta)$ mit den Parametern
$\theta$ an die Datenpaare $(x_i|y_i)$ durch Anpassung der Parameter $\theta$ an die Datenpaare $(x_i|y_i)$ durch Anpassung der Parameter
$\theta$ gefittet werden. Wenn wir annehmen, dass die $y_i$ um die $\theta$ gefittet werden. Wenn wir annehmen, dass die $y_i$ um die
entsprechenden Funktionswerte $f(x_i;\theta)$ mit einer entsprechenden Funktionswerte $f(x_i;\theta)$ mit einer
@ -210,21 +213,21 @@ zur\"uckzugreifen \matlabfun{lsqcurvefit()}.
\section{Fits von Wahrscheinlichkeitsverteilungen} \section{Fits von Wahrscheinlichkeitsverteilungen}
Jetzt betrachten wir noch den Fall, bei dem wir die Parameter einer Jetzt betrachten wir noch den Fall, bei dem wir die Parameter einer
Wahrscheinlichkeitsdichtefunktion (z.B. den shape-Parameter einer Wahrscheinlichkeitsdichtefunktion (z.B. den shape-Parameter einer
Gamma-Verteilung) an ein Datenset fitten wollen. \determ{Gamma-Verteilung}) an ein Datenset fitten wollen.
Ein erster Gedanke k\"onnte sein, die Ein erster Gedanke k\"onnte sein, die
Wahrscheinlichkeitsdichtefunktion durch Minimierung des quadratischen \determ[Wahrscheinlichkeitsdichte]{Wahrscheinlichkeitsdichtefunktion}
Abstands an ein Histogramm der Daten zu fitten. Das ist aber aus durch Minimierung des quadratischen Abstands an ein Histogramm der
folgenden Gr\"unden nicht die Methode der Wahl: (i) Daten zu fitten. Das ist aber aus folgenden Gr\"unden nicht die
Wahrscheinlichkeitsdichten k\"onnen nur positiv sein. Darum k\"onnen Methode der Wahl: (i) Wahrscheinlichkeitsdichten k\"onnen nur positiv
insbesondere bei kleinen Werten die Daten nicht symmetrisch streuen, sein. Darum k\"onnen insbesondere bei kleinen Werten die Daten nicht
wie es bei normalverteilten Daten der Fall ist. (ii) Die Datenwerte symmetrisch streuen, wie es bei normalverteilten Daten der Fall
sind nicht unabh\"angig, da das normierte Histogram sich zu Eins ist. (ii) Die Datenwerte sind nicht unabh\"angig, da das normierte
aufintegriert. Die beiden Annahmen normalverteilte und unabh\"angige Histogram sich zu Eins aufintegriert. Die beiden Annahmen
Daten, die die Minimierung des quadratischen Abstands normalverteilte und unabh\"angige Daten, die die Minimierung des
\eqnref{chisqmin} zu einem Maximum-Likelihood Sch\"atzer machen, sind quadratischen Abstands \eqnref{chisqmin} zu einem Maximum-Likelihood
also verletzt. (iii) Das Histogramm h\"angt von der Wahl der Sch\"atzer machen, sind also verletzt. (iii) Das Histogramm h\"angt
Klassenbreite ab (\figref{mlepdffig}). von der Wahl der Klassenbreite ab (\figref{mlepdffig}).
\begin{figure}[t] \begin{figure}[t]
\includegraphics[width=1\textwidth]{mlepdf} \includegraphics[width=1\textwidth]{mlepdf}
@ -259,8 +262,9 @@ Aktivit\"at Eigenschaften von sensorischen Stimuli. z.B. im visuellen
Kortex V1 die Orientierung eines Balkens. Traditionell wird die Kortex V1 die Orientierung eines Balkens. Traditionell wird die
Antwort der Neurone f\"ur verschiedene Stimuli (z.B. verschiedene Antwort der Neurone f\"ur verschiedene Stimuli (z.B. verschiedene
Orientierungen des Balkens) gemessen. Die mittlere Antwort der Neurone Orientierungen des Balkens) gemessen. Die mittlere Antwort der Neurone
als Funktion eines Stimulusparameters ist dann die ``Tuning-curve'' als Funktion eines Stimulusparameters ist dann die
(z.B. Feuerrate als Funktion des Orientierungswinkels). \enterm{Tuning-curve} (deutsch \determ{Abstimmkurve}, z.B. Feuerrate
als Funktion des Orientierungswinkels).
\begin{figure}[tp] \begin{figure}[tp]
\includegraphics[width=1\textwidth]{mlecoding} \includegraphics[width=1\textwidth]{mlecoding}

View File

@ -156,15 +156,15 @@ korrigiert werden musss, wird es schwierig und zeitaufwendig.
Plots in \matlab{} bestehen aus mehreren Elementen: Plots in \matlab{} bestehen aus mehreren Elementen:
\begin{enumerate} \begin{enumerate}
\item \enterm{Figure}: Dieses Element stellt die gesamte \item \enterm[figure]{Figure}: Dieses Element stellt die gesamte
Zeichenf\"ache, das Blatt Papier, dar. Zeichenf\"ache, das Blatt Papier, dar.
\item \enterm{Axes}: Das Koordinatensystem in welches gezeichnet wird. \item \enterm[axes]{Axes}: Das Koordinatensystem in welches gezeichnet wird.
\item \enterm{Lines}: Die gezeichneten Datenplots wie Linien, \item \enterm[lines]{Lines}: Die gezeichneten Datenplots wie Linien,
Fl\"achen, etc. Fl\"achen, etc.
\item \enterm{Annotations}: Annotationen wie Textboxen oder auch \item \enterm[annotations]{Annotations}: Annotationen wie Textboxen
Pfeile, die zum Hervorheben von Punkten, oder Abschnitten gedacht oder auch Pfeile, die zum Hervorheben von Punkten, oder Abschnitten
sind. gedacht sind.
\item \enterm{Legends}: Legenden der Datenplots. \item \enterm[legends]{Legends}: Legenden der Datenplots.
\end{enumerate} \end{enumerate}
Jedes dieser Elemente bietet eine Vielzahl von Jedes dieser Elemente bietet eine Vielzahl von
Einstellungsm\"oglichkeiten. Wie schon erw\"ahnt, k\"onnen diese Einstellungsm\"oglichkeiten. Wie schon erw\"ahnt, k\"onnen diese
@ -355,7 +355,7 @@ der gerade aktiven Achse.
\subsection{Ver\"andern von Figure-Einstellungen} \subsection{Ver\"andern von Figure-Einstellungen}
\begin{table}[tp] \begin{table}[tp]
\titlecaption{Ausgew\"ahlte Eigenschaften der \codeterm{Figure}.}{Alle Eigenschaften der Figure findet man in der Hilfe von \matlab{} oder im \codeterm{Property Editor} wenn die Abbildung ausgew\"ahlt wurde (\figref{ploteditorfig}).}\label{plotfigureprops} \titlecaption{Ausgew\"ahlte Eigenschaften der \enterm[figure]{Figure}.}{Alle Eigenschaften der Figure findet man in der Hilfe von \matlab{} oder im \codeterm{Property Editor} wenn die Abbildung ausgew\"ahlt wurde (\figref{ploteditorfig}).}\label{plotfigureprops}
\begin{tabular*}{1\textwidth}{lp{6.3cm}p{6cm}} \hline \begin{tabular*}{1\textwidth}{lp{6.3cm}p{6cm}} \hline
\textbf{Eigenschaft} & \textbf{Beschreibung} & \textbf{Optionen} \\ \hline \textbf{Eigenschaft} & \textbf{Beschreibung} & \textbf{Optionen} \\ \hline
\code{Color} & Hintergrundfarbe der Zeichenfl\"ache. & Beliebige RGB, CMYK ... Werte. \\ \code{Color} & Hintergrundfarbe der Zeichenfl\"ache. & Beliebige RGB, CMYK ... Werte. \\

View File

@ -2,7 +2,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\chapter{Analyse von Spiketrains} \chapter{Analyse von Spiketrains}
\determ[Aktionspotential]{Aktionspotentiale} (\enterm{Spikes}) sind die Tr\"ager der \determ[Aktionspotential]{Aktionspotentiale} (\enterm{spikes}) sind die Tr\"ager der
Information in Nervensystemen. Dabei ist in erster Linie nur der Information in Nervensystemen. Dabei ist in erster Linie nur der
Zeitpunkt des Auftretens eines Aktionspotentials von Bedeutung. Die Zeitpunkt des Auftretens eines Aktionspotentials von Bedeutung. Die
genaue Form des Aktionspotentials spielt keine oder nur eine genaue Form des Aktionspotentials spielt keine oder nur eine
@ -10,7 +10,7 @@ untergeordnete Rolle.
Nach etwas Vorverarbeitung haben elektrophysiologische Messungen Nach etwas Vorverarbeitung haben elektrophysiologische Messungen
deshalb Listen von Spikezeitpunkten als Ergebniss --- sogenannte deshalb Listen von Spikezeitpunkten als Ergebniss --- sogenannte
\enterm{Spiketrains}. Diese Messungen k\"onnen wiederholt werden und \enterm{spiketrains}. Diese Messungen k\"onnen wiederholt werden und
es ergeben sich mehrere \enterm{trials} von Spiketrains es ergeben sich mehrere \enterm{trials} von Spiketrains
(\figref{rasterexamplesfig}). (\figref{rasterexamplesfig}).
@ -79,8 +79,9 @@ Zeitpunkte der Ereignisse durch senkrechte Striche markiert werden.
Die Intervalle $T_i=t_{i+1}-t_i$ zwischen aufeinanderfolgenden Die Intervalle $T_i=t_{i+1}-t_i$ zwischen aufeinanderfolgenden
Ereignissen sind reelle, positive Zahlen. Bei Aktionspotentialen Ereignissen sind reelle, positive Zahlen. Bei Aktionspotentialen
heisen die Intervalle auch \enterm{Interspikeintervalle}. Deren Statistik heisen die Intervalle auch \determ{Interspikeintervalle}
kann mit den \"ublichen Gr\"o{\ss}en beschrieben werden. (\enterm{interspike intervals}). Deren Statistik kann mit den
\"ublichen Gr\"o{\ss}en beschrieben werden.
\begin{figure}[t] \begin{figure}[t]
\includegraphics[width=1\textwidth]{isihexamples}\hfill \includegraphics[width=1\textwidth]{isihexamples}\hfill
@ -104,9 +105,9 @@ kann mit den \"ublichen Gr\"o{\ss}en beschrieben werden.
\frac{1}{n}\sum\limits_{i=1}^n T_i$. \frac{1}{n}\sum\limits_{i=1}^n T_i$.
\item Standardabweichung der Intervalle: $\sigma_{ISI} = \sqrt{\langle (T - \langle T \item Standardabweichung der Intervalle: $\sigma_{ISI} = \sqrt{\langle (T - \langle T
\rangle)^2 \rangle}$\vspace{1ex} \rangle)^2 \rangle}$\vspace{1ex}
\item Variationskoeffizient (\enterm{coefficient of variation}): $CV_{ISI} = \item \determ{Variationskoeffizient} (\enterm{coefficient of variation}): $CV_{ISI} =
\frac{\sigma_{ISI}}{\mu_{ISI}}$. \frac{\sigma_{ISI}}{\mu_{ISI}}$.
\item Diffusions Koeffizient: $D_{ISI} = \item \determ{Diffusionskoeffizient} (\enterm{diffusion coefficient}): $D_{ISI} =
\frac{\sigma_{ISI}^2}{2\mu_{ISI}^3}$. \frac{\sigma_{ISI}^2}{2\mu_{ISI}^3}$.
\end{itemize} \end{itemize}
@ -139,9 +140,10 @@ sichtbar.
im Abstand des Lags $k$.} im Abstand des Lags $k$.}
\end{figure} \end{figure}
Solche Ab\"angigkeiten werden durch die serielle Korrelation der Solche Ab\"angigkeiten werden durch die \determ{serielle
Intervalle quantifiziert. Das ist der Korrelationskoeffizient Korrelationen} (\enterm{serial correlations}) der Intervalle
zwischen aufeinander folgenden Intervallen getrennt durch lag $k$: quantifiziert. Das ist der \determ{Korrelationskoeffizient} zwischen
aufeinander folgenden Intervallen getrennt durch lag $k$:
\[ \rho_k = \frac{\langle (T_{i+k} - \langle T \rangle)(T_i - \langle T \rangle) \rangle}{\langle (T_i - \langle T \rangle)^2\rangle} = \frac{{\rm cov}(T_{i+k}, T_i)}{{\rm var}(T_i)} \[ \rho_k = \frac{\langle (T_{i+k} - \langle T \rangle)(T_i - \langle T \rangle) \rangle}{\langle (T_i - \langle T \rangle)^2\rangle} = \frac{{\rm cov}(T_{i+k}, T_i)}{{\rm var}(T_i)}
= {\rm corr}(T_{i+k}, T_i) \] = {\rm corr}(T_{i+k}, T_i) \]
\"Ublicherweise wird die Korrelation $\rho_k$ gegen den Lag $k$ \"Ublicherweise wird die Korrelation $\rho_k$ gegen den Lag $k$
@ -170,10 +172,10 @@ durch folgende Sch\"atzer charakterisiert werden:
\item Histogramm der counts $n_i$. \item Histogramm der counts $n_i$.
\item Mittlere Anzahl von Ereignissen: $\mu_N = \langle n \rangle$. \item Mittlere Anzahl von Ereignissen: $\mu_N = \langle n \rangle$.
\item Varianz der Anzahl: $\sigma_n^2 = \langle (n - \langle n \rangle)^2 \rangle$. \item Varianz der Anzahl: $\sigma_n^2 = \langle (n - \langle n \rangle)^2 \rangle$.
\item Fano Faktor (Varianz geteilt durch Mittelwert): $F = \frac{\sigma_n^2}{\mu_n}$. \item \determ{Fano Faktor} (Varianz geteilt durch Mittelwert): $F = \frac{\sigma_n^2}{\mu_n}$.
\end{itemize} \end{itemize}
Insbesondere ist die mittlere Rate der Ereignisse $r$ (Spikes pro Insbesondere ist die mittlere Rate der Ereignisse $r$ (Spikes pro
Zeit, \determ{Feuerrate}) gemessen in Hertz Zeit, \determ{Feuerrate}) gemessen in Hertz \sindex[term]{Feuerrate!mittlere Rate}
\begin{equation} \begin{equation}
\label{firingrate} \label{firingrate}
r = \frac{\langle n \rangle}{W} \; . r = \frac{\langle n \rangle}{W} \; .
@ -209,18 +211,18 @@ u.a. wegen dem Zentralen Grenzwertsatz die Standardverteilung. Eine
\"ahnliche Rolle spielt bei Punktprozessen der \determ{Poisson \"ahnliche Rolle spielt bei Punktprozessen der \determ{Poisson
Prozess}. Prozess}.
Beim homogenen Poisson Prozess treten Ereignisse mit einer festen Rate Beim \determ[Poisson Prozess!homogener]{homogenen Poisson Prozess}
$\lambda=\text{const.}$ auf und sind unabh\"angig von der Zeit $t$ und treten Ereignisse mit einer festen Rate $\lambda=\text{const.}$ auf
unabh\"angig von den Zeitpunkten fr\"uherer Ereignisse und sind unabh\"angig von der Zeit $t$ und unabh\"angig von den
(\figref{hompoissonfig}). Die Wahrscheinlichkeit zu irgendeiner Zeit Zeitpunkten fr\"uherer Ereignisse (\figref{hompoissonfig}). Die
ein Ereigniss in einem kleinen Zeitfenster der Breite $\Delta t$ zu Wahrscheinlichkeit zu irgendeiner Zeit ein Ereigniss in einem kleinen
bekommen ist Zeitfenster der Breite $\Delta t$ zu bekommen ist
\begin{equation} \begin{equation}
\label{hompoissonprob} \label{hompoissonprob}
P = \lambda \cdot \Delta t \; . P = \lambda \cdot \Delta t \; .
\end{equation} \end{equation}
Beim inhomogenen Poisson Prozess h\"angt die Rate $\lambda$ von der Beim \determ[Poisson Prozess!inhomogener]{inhomogenen Poisson Prozess}
Zeit ab: $\lambda = \lambda(t)$. h\"angt die Rate $\lambda$ von der Zeit ab: $\lambda = \lambda(t)$.
\begin{exercise}{poissonspikes.m}{} \begin{exercise}{poissonspikes.m}{}
Schreibe eine Funktion \code{poissonspikes()}, die die Spikezeiten Schreibe eine Funktion \code{poissonspikes()}, die die Spikezeiten
@ -253,14 +255,15 @@ Der homogene Poissonprozess hat folgende Eigenschaften:
\item Das mittlere Intervall ist $\mu_{ISI} = \frac{1}{\lambda}$ . \item Das mittlere Intervall ist $\mu_{ISI} = \frac{1}{\lambda}$ .
\item Die Varianz der Intervalle ist $\sigma_{ISI}^2 = \frac{1}{\lambda^2}$ . \item Die Varianz der Intervalle ist $\sigma_{ISI}^2 = \frac{1}{\lambda^2}$ .
\item Der Variationskoeffizient ist also immer $CV_{ISI} = 1$ . \item Der Variationskoeffizient ist also immer $CV_{ISI} = 1$ .
\item Die seriellen Korrelationen $\rho_k =0$ f\"ur $k>0$, da das \item Die \determ[serielle Korrelationen]{seriellen Korrelationen}
Auftreten der Ereignisse unabh\"angig von der Vorgeschichte ist. Ein $\rho_k =0$ f\"ur $k>0$, da das Auftreten der Ereignisse
solcher Prozess wird auch \determ{Erneuerungsprozess} genannt (\enterm{renewal unabh\"angig von der Vorgeschichte ist. Ein solcher Prozess wird
process}). auch \determ{Erneuerungsprozess} genannt (\enterm{renewal process}).
\item Die Anzahl der Ereignisse $k$ innerhalb eines Fensters der L\"ange W ist Poissonverteilt: \item Die Anzahl der Ereignisse $k$ innerhalb eines Fensters der
L\"ange W ist \determ[Poisson-Verteilung]{Poissonverteilt}:
\[ P(k) = \frac{(\lambda W)^ke^{\lambda W}}{k!} \] \[ P(k) = \frac{(\lambda W)^ke^{\lambda W}}{k!} \]
(\figref{hompoissoncountfig}) (\figref{hompoissoncountfig})
\item Der Fano Faktor ist immer $F=1$ . \item Der \determ{Fano Faktor} ist immer $F=1$ .
\end{itemize} \end{itemize}
\begin{exercise}{hompoissonspikes.m}{} \begin{exercise}{hompoissonspikes.m}{}
@ -322,18 +325,20 @@ Abbildung \ref{psthfig} n\"aher erl\"autert.
\end{figure} \end{figure}
Ein sehr einfacher Weg, die zeitabh\"angige Feuerrate zu bestimmen ist Ein sehr einfacher Weg, die zeitabh\"angige Feuerrate zu bestimmen ist
die sogenannte \determ{instantane Feuerrate}. Dabei wird die Feuerrate die sogenannte \determ[Feuerrate!instantane]{instantane Feuerrate}
aus dem Kehrwert der Interspikeintervalle, der Zeit zwischen zwei (\enterm[firing rate!instantaneous]{instantaneous firing rate}). Dabei
aufeinander folgenden Aktionspotentialen (\figref{instrate} A), wird die Feuerrate aus dem Kehrwert der Interspikeintervalle, der Zeit
bestimmt. Die abgesch\"atzte Feuerrate (\figref{instrate} B) ist zwischen zwei aufeinander folgenden Aktionspotentialen
g\"ultig f\"ur das gesammte Interspikeintervall. Diese Methode hat den (\figref{instrate} A), bestimmt. Die abgesch\"atzte Feuerrate
Vorteil, dass sie sehr einfach zu berechnen ist und keine Annahme (\figref{instrate} B) ist g\"ultig f\"ur das gesammte
\"uber eine relevante Zeitskala (der Kodierung oder des Interspikeintervall. Diese Methode hat den Vorteil, dass sie sehr
Auslesemechanismus der postsynaptischen Zelle) macht. $r(t)$ ist einfach zu berechnen ist und keine Annahme \"uber eine relevante
allerdings keine kontinuierliche Funktion, die Spr\"unge in der Zeitskala (der Kodierung oder des Auslesemechanismus der
Feuerrate k\"onnen f\"ur manche Analysen nachteilig sein. Au{\ss}erdem postsynaptischen Zelle) macht. $r(t)$ ist allerdings keine
wird die Feuerrate nie gleich Null, auch wenn lange keine Aktionspotentiale kontinuierliche Funktion, die Spr\"unge in der Feuerrate k\"onnen
generiert wurden. f\"ur manche Analysen nachteilig sein. Au{\ss}erdem wird die Feuerrate
nie gleich Null, auch wenn lange keine Aktionspotentiale generiert
wurden.
\begin{exercise}{instantaneousRate.m}{} \begin{exercise}{instantaneousRate.m}{}
Implementiere die Absch\"atzung der Feuerrate auf Basis der Implementiere die Absch\"atzung der Feuerrate auf Basis der
@ -378,9 +383,9 @@ Bei der Binning-Methode wird die Zeitachse in gleichm\"aßige
Abschnitte (Bins) eingeteilt und die Anzahl Aktionspotentiale, die in Abschnitte (Bins) eingeteilt und die Anzahl Aktionspotentiale, die in
die jeweiligen Bins fallen, gez\"ahlt (\figref{binpsth} A). Um diese die jeweiligen Bins fallen, gez\"ahlt (\figref{binpsth} A). Um diese
Z\"ahlungen in die Feuerrate umzurechnen muss noch mit der Binweite Z\"ahlungen in die Feuerrate umzurechnen muss noch mit der Binweite
normiert werden. Das ist fast so, wie beim Absch\"atzen einer normiert werden. Das ist \"aquivalent zur Absch\"atzung einer
Wahrscheinlichkeitsdichte. Es kann auch die \code{hist()} Funktion zur Wahrscheinlichkeitsdichte. Es kann auch die \code{hist()} Funktion zur
Bestimmung des PSTHs verwendet werden. Bestimmung des PSTHs verwendet werden. \sindex[term]{Feuerrate!Binningmethode}
Die bestimmte Feuerrate gilt f\"ur das gesamte Bin (\figref{binpsth} Die bestimmte Feuerrate gilt f\"ur das gesamte Bin (\figref{binpsth}
B). Das so berechnete PSTH hat wiederum eine stufige Form, die von der B). Das so berechnete PSTH hat wiederum eine stufige Form, die von der
@ -422,7 +427,7 @@ wobei $\omega(\tau)$ der Filterkern und $\rho(t)$ die bin\"are Antwort
ist. Bildlich geprochen wird jede 1 in $\rho(t)$ durch den Filterkern ist. Bildlich geprochen wird jede 1 in $\rho(t)$ durch den Filterkern
ersetzt (Abbildung \ref{convrate} A). Wenn der Kern richtig normiert ersetzt (Abbildung \ref{convrate} A). Wenn der Kern richtig normiert
wurde (Integral gleich Eins), ergibt sich die Feuerrate direkt aus der wurde (Integral gleich Eins), ergibt sich die Feuerrate direkt aus der
\"Uberlagerung der Kerne (Abb. \ref{convrate} B). \"Uberlagerung der Kerne (Abb. \ref{convrate} B). \sindex[term]{Feuerrate!Faltungsmethode}
Die Faltungsmethode f\"uhrt, anders als die anderen Methoden, zu einer Die Faltungsmethode f\"uhrt, anders als die anderen Methoden, zu einer
stetigen Funktion was insbesondere f\"ur spektrale Analysen von stetigen Funktion was insbesondere f\"ur spektrale Analysen von
@ -439,8 +444,9 @@ Spiketrains.
\section{Spike-triggered Average} \section{Spike-triggered Average}
Die graphischer Darstellung der Feuerrate allein reicht nicht aus um Die graphischer Darstellung der Feuerrate allein reicht nicht aus um
den Zusammenhang zwischen neuronaler Antwort und einem Stimulus zu den Zusammenhang zwischen neuronaler Antwort und einem Stimulus zu
analysieren. Eine Methode um mehr \"uber diesen Zusammenhang zu erfahren, analysieren. Eine Methode um mehr \"uber diesen Zusammenhang zu
ist der \enterm{Spike-triggered average} (\enterm[STA|see{Spike-triggered average}]{STA}). Der STA erfahren, ist der \enterm{spike-triggered average}
(\enterm[STA|see{spike-triggered average}]{STA}). Der STA
\begin{equation} \begin{equation}
STA(\tau) = \langle s(t - \tau) \rangle = \frac{1}{N} \sum_{i=1}^{N} s(t_i - \tau) STA(\tau) = \langle s(t - \tau) \rangle = \frac{1}{N} \sum_{i=1}^{N} s(t_i - \tau)
\end{equation} \end{equation}

View File

@ -913,17 +913,18 @@ Abschnitte wiederholt ausf\"uhren will.
\subsubsection{Die \code{for} -- Schleife} \subsubsection{Die \code{for} -- Schleife}
Der am h\"aufigsten benutzte Vertreter der Schleifen ist die Der am h\"aufigsten benutzte Vertreter der Schleifen ist die
\codeterm{for-Schleife}. Sie besteht aus dem \codeterm{Schleifenkopf} und \codeterm{for-Schleife}. Sie besteht aus dem
dem \codeterm{Schleifenk\"orper}. Der Kopf regelt, wie h\"aufig der Code \codeterm[Schleife!Schleifenkopf]{Schleifenkopf} und dem
im K\"orper ausgef\"uhrt wird. Der Schleifenkopf beginnt mit dem \codeterm[Schleife!Schleifenk{\"o}rper]{Schleifenk\"orper}. Der Kopf
Schl\"usselwort \code{for} auf welches folgend die regelt, wie h\"aufig der Code im K\"orper ausgef\"uhrt wird. Der
\codeterm{Laufvariable} definiert wird. In \matlab ``l\"auft''/iteriert Schleifenkopf beginnt mit dem Schl\"usselwort \code{for} auf welches
eine for-Schleife immer(!) \"uber einen Vektor. Die folgend die \codeterm{Laufvariable} definiert wird. In \matlab
\codeterm{Laufvariable} nimmt mit jeder Iteration einen Wert dieses ``l\"auft''/iteriert eine for-Schleife immer(!) \"uber einen
Vektors an. Im Schleifenk\"orper k\"onnen beliebige Anweisungen Vektor. Die \codeterm{Laufvariable} nimmt mit jeder Iteration einen
ausgef\"uhrt werden. Die Schleife wird durch das Schl\"usselwort Wert dieses Vektors an. Im Schleifenk\"orper k\"onnen beliebige
\code{end} beendet. Listing \ref{looplisting} zeigt das Anweisungen ausgef\"uhrt werden. Die Schleife wird durch das
Grundger\"ust einer for-Schleife. Schl\"usselwort \code{end} beendet. Listing \ref{looplisting} zeigt
das Grundger\"ust einer for-Schleife.
\begin{lstlisting}[caption={Beispiel einer \varcode{for} Schleife. Die Laufvariable \varcode{x} nimmt mit jeder Iteration der Schleife einen Wert des Vektors \varcode{1:5} an.}, label=looplisting] \begin{lstlisting}[caption={Beispiel einer \varcode{for} Schleife. Die Laufvariable \varcode{x} nimmt mit jeder Iteration der Schleife einen Wert des Vektors \varcode{1:5} an.}, label=looplisting]
for x = 1:5 for x = 1:5
@ -1143,12 +1144,12 @@ wird, dann wird es Zeile f\"ur Zeile von oben nach unten ausgef\"uhrt.
\matlab{} kennt drei Arten von Programmen: \matlab{} kennt drei Arten von Programmen:
\begin{enumerate} \begin{enumerate}
\item Skripte \item \codeterm[Skript]{Skripte}
\item Funktionen \item \codeterm[Funktion]{Funktionen}
\item Objekte (werden wir ignorieren) \item \codeterm[Objekt]{Objekte} (werden wir hier nicht behandeln)
\end{enumerate} \end{enumerate}
Alle Programme werden in den sogenannten \codeterm{m-files} gespeichert Alle Programme werden in den sogenannten \codeterm{m-files} gespeichert
(z.B. \emph{meinProgramm.m}). Um sie zu benutzen werden sie von der (z.B. \file{meinProgramm.m}). Um sie zu benutzen werden sie von der
Kommandozeile aufgerufen oder in anderen Programmen Kommandozeile aufgerufen oder in anderen Programmen
verwendet. Programme erh\"ohen die Wiederverwertbarkeit von verwendet. Programme erh\"ohen die Wiederverwertbarkeit von
Programmcode. Bislang haben wir ausschlie{\ss}lich Skripte Programmcode. Bislang haben wir ausschlie{\ss}lich Skripte
@ -1161,7 +1162,7 @@ definierte Variable und weist ihr einen neuen Wert zu, dann kann das
erw\"unscht und praktisch sein. Wenn es aber unbeabsichtigt passiert erw\"unscht und praktisch sein. Wenn es aber unbeabsichtigt passiert
kann es zu Fehlern kommen, die nur sehr schwer erkennbar sind, da ja kann es zu Fehlern kommen, die nur sehr schwer erkennbar sind, da ja
jedes Skript f\"ur sich enwandtfrei arbeitet. Eine L\"osung f\"ur jedes Skript f\"ur sich enwandtfrei arbeitet. Eine L\"osung f\"ur
dieses Problem bieten die \codeterm{Funktionen}. dieses Problem bieten die \codeterm[Funktion]{Funktionen}.
\subsection{Funktionen} \subsection{Funktionen}
@ -1254,18 +1255,20 @@ hei{\ss}en soll, (ii) welche Information sie ben\"otigt und (iii)
welche Daten sie zur\"uckliefern soll. welche Daten sie zur\"uckliefern soll.
\begin{enumerate} \begin{enumerate}
\item \codeterm{Name}: der Name sollte beschreiben, was die Funktion \item \codeterm[Funktion!Name]{Name}: der Name sollte beschreiben, was
tut. In diesem Fall berechnet sie einen Sinus. Ein geeigneter Name die Funktion tut. In diesem Fall berechnet sie einen Sinus. Ein
w\"are also \code{calculate\_sinewave()}. geeigneter Name w\"are also \code{calculate\_sinewave()}.
\item \codeterm{Argumente}: die zu brechnende Sinusschwingung sei durch \item \codeterm[Funktion!Argumente]{Argumente}: die zu brechnende
ihre Frequenz und die Amplitude bestimmt. Des Weiteren soll noch Sinusschwingung sei durch ihre Frequenz und die Amplitude
festgelegt werden, wie lang der Sinus sein soll und mit welcher bestimmt. Des Weiteren soll noch festgelegt werden, wie lang der
zeitlichen Aufl\"osung gerechnet werden soll. Es werden also vier Sinus sein soll und mit welcher zeitlichen Aufl\"osung gerechnet
Argumente ben\"otigt, sie k\"onnten hei{\ss}en: \varcode{varamplitude}, werden soll. Es werden also vier Argumente ben\"otigt, sie k\"onnten
\varcode{frequency}, \varcode{t\_max}, \varcode{t\_step}. hei{\ss}en: \varcode{varamplitude}, \varcode{frequency},
\item \codeterm{R\"uckgabewerte}: Um den Sinus korrekt darstellen zu k\"onnen brauchen wir die \varcode{t\_max}, \varcode{t\_step}.
Zeitachse und die entsprechenden Werte. Es werden also zwei \item \codeterm[Funktion!R{\"u}ckgabewerte]{R\"uckgabewerte}: Um den
Variablen zur\"uckgegeben: \varcode{time}, \varcode{sine} Sinus korrekt darstellen zu k\"onnen brauchen wir die Zeitachse und
die entsprechenden Werte. Es werden also zwei Variablen
zur\"uckgegeben: \varcode{time}, \varcode{sine}
\end{enumerate} \end{enumerate}
Mit dieser Information ist es nun gut m\"oglich die Funktion zu Mit dieser Information ist es nun gut m\"oglich die Funktion zu
implementieren (Listing \ref{sinefunctionlisting}). implementieren (Listing \ref{sinefunctionlisting}).
@ -1309,7 +1312,7 @@ function plot_sinewave(x_data, y_data, name)
\paragraph{III. Erstellen eines Skriptes zur Koordinierung} \paragraph{III. Erstellen eines Skriptes zur Koordinierung}
Die letzte Aufgabe ist die Koordinierung der Berechung und des Die letzte Aufgabe ist die Koordinierung der Berechung und des
Plottens f\"ur mehrere Amplituden. Das ist die klassische Aufgabe Plottens f\"ur mehrere Amplituden. Das ist die klassische Aufgabe
f\"ur ein Skript. Auch hier gilt es einen ausdrucksvollen Name zu f\"ur ein \codeterm{Skript}. Auch hier gilt es einen ausdrucksvollen Name zu
finden. Da es keine Argumente und R\"uckgabewerte gibt, m\"ussen die finden. Da es keine Argumente und R\"uckgabewerte gibt, m\"ussen die
ben\"otigten Informationen direkt in dem Skript defniniert werden. Es ben\"otigten Informationen direkt in dem Skript defniniert werden. Es
werden ben\"otigt: ein Vektor f\"ur die Amplituden, je eine Variable werden ben\"otigt: ein Vektor f\"ur die Amplituden, je eine Variable

View File

@ -302,7 +302,7 @@ ob dieser Teil des Programms nicht in eine eigene Funktion ausgelagert
werden sollte. Fast immer kann dies bejaht werden. werden sollte. Fast immer kann dies bejaht werden.
Abschnitte nicht auszulagern f\"uhrt zu sehr langen Abschnitte nicht auszulagern f\"uhrt zu sehr langen
\codeterm{m-Files}, die leicht un\"ubersichtlich werden. Diese Art von \codeterm{m-files}, die leicht un\"ubersichtlich werden. Diese Art von
Code wird \codeterm{Spaghetticode} genannt. Es ist h\"ochste Zeit Code wird \codeterm{Spaghetticode} genannt. Es ist h\"ochste Zeit
\"uber Auslagerung in Funktionen nachzudenken. \"uber Auslagerung in Funktionen nachzudenken.
@ -318,25 +318,28 @@ Code wird \codeterm{Spaghetticode} genannt. Es ist h\"ochste Zeit
\subsection{Lokale Funktionen und geschachtelte Funktionen} \subsection{Lokale Funktionen und geschachtelte Funktionen}
Das Auslagern von Funktionalit\"at in eigene Funktionen f\"uhrt Das Auslagern von Funktionalit\"at in eigene Funktionen f\"uhrt dazu,
dazu, dass eine F\"ulle von Dateien erzeugt wird, die die dass eine F\"ulle von Dateien erzeugt wird, die die
\"Ubersichtlichkeit nicht unbedingt erh\"oht. Wenn die auszulagernde \"Ubersichtlichkeit nicht unbedingt erh\"oht. Wenn die auszulagernde
Funktionalit\"at an vielen Stellen ben\"otigt wird ist es Funktionalit\"at an vielen Stellen ben\"otigt wird ist es dennoch
dennoch sinnvoll dies zu tun. Wenn nicht, dann bietet \matlab{} die sinnvoll dies zu tun. Wenn nicht, dann bietet \matlab{} die
M\"oglichkeit sogenannte \codeterm{lokale Funktionen} oder auch M\"oglichkeit sogenannte \codeterm[Funktion!lokale]{lokale Funktionen}
\codeterm{geschachtelte Funktionen} (\enterm{nested functions}) zu oder auch \codeterm[Funktion!geschachtelte|see{lokale}]{geschachtelte
erstellen. Listing \ref{localfunctions} zeigt ein Beispiel f\"ur eine Funktionen} (\enterm{nested functions}) zu erstellen. Listing
lokale Funktion. \ref{localfunctions} zeigt ein Beispiel f\"ur eine lokale Funktion.
\lstinputlisting[label=localfunctions, caption={Lokale Funktionen erh\"ohen die Lesbarkeit sind aber nur innerhalb der definierenden Datei verf\"ugbar.}]{calculate_sines.m} \lstinputlisting[label=localfunctions, caption={Lokale Funktionen
erh\"ohen die Lesbarkeit sind aber nur innerhalb der definierenden
Datei verf\"ugbar.}]{calculate_sines.m}
Lokale Funktionen existieren in der gleichen Datei und sind nur dort Lokale Funktionen existieren in der gleichen Datei und sind nur dort
verf\"ugbar. Jede Funktion hat ihren eigenen G\"ultigkeitsbereich, das verf\"ugbar. Jede Funktion hat ihren eigenen G\"ultigkeitsbereich, das
hei{\ss}t, dass Variablen aus den aufrufenden Funktionen nicht hei{\ss}t, dass Variablen aus den aufrufenden Funktionen nicht
sichtbar sind. Bei sogenannten \codeterm[geschachtelte Funktionen]{geschachtelten Funktionen} sichtbar sind. Bei sogenannten
ist das anders. Diese werden innerhalb eines Funktionsk\"orpers \codeterm[Funktion!geschachtelte|see{lokale}]{geschachtelten
(zwischen den Schl\"usselworten \code{function} und dem Funktionen} ist das anders. Diese werden innerhalb eines
\code{end} definiert und k\"onnen auf alle Variablen der Funktionsk\"orpers (zwischen den Schl\"usselworten \code{function} und
dem \code{end} definiert und k\"onnen auf alle Variablen der
``Mutterfunktion'' zugreifen und diese auch ver\"andern. Folglich ``Mutterfunktion'' zugreifen und diese auch ver\"andern. Folglich
sollten sie nur mit Bedacht eingesetzt werden. sollten sie nur mit Bedacht eingesetzt werden.
@ -403,8 +406,11 @@ diese sollten dann beachtet werden.
Wiederholte Programmabschnitte sollten in Funktionen ausgelagert Wiederholte Programmabschnitte sollten in Funktionen ausgelagert
werden. Wenn diese nicht von globalem Interesse sind, kann mit werden. Wenn diese nicht von globalem Interesse sind, kann mit
\codeterm{lokalen} oder \codeterm{geschachtelten Funktionen} die \codeterm[Funktion!lokale]{lokalen} oder
\"Ubersichtlichkeit erh\"oht werden. \codeterm[Funktion!geschachtelte|see{lokale}]{geschachtelten
Funktionen} die \"Ubersichtlichkeit erh\"oht werden.
\noindent Es lohnt sich auf den eigenen Programmierstil zu achten!\footnote{Literatur zum Programmierstil: z.B. Robert C. Martin: \textit{Clean
Code: A Handbook of Agile Software Craftmanship}, Prentice Hall} \noindent Es lohnt sich auf den eigenen Programmierstil zu
achten!\footnote{Literatur zum Programmierstil: z.B. Robert C. Martin:
\textit{Clean Code: A Handbook of Agile Software Craftmanship},
Prentice Hall}

View File

@ -68,9 +68,9 @@ Summe k\"onnen wir genauso gut fordern, dass der \emph{mittlere} Abstand
der Menge der $N$ Datenpaare $(x_i, y_i)$ gegeben die Modellvorhersagen der Menge der $N$ Datenpaare $(x_i, y_i)$ gegeben die Modellvorhersagen
$y_i^{est}$ klein sein soll. $y_i^{est}$ klein sein soll.
Am h\"aufigsten wird jedoch bei einem Kurvenfit der \determ{mittlere Am h\"aufigsten wird jedoch bei einem Kurvenfit der \determ[mittlerer
quadratische Abstand} (\enterm{mean squared distance} oder quadratische Abstand]{mittlere quadratische Abstand} (\enterm{mean
\enterm{mean squared error}) squared distance} oder \enterm{mean squared error})
\begin{equation} \begin{equation}
\label{meansquarederror} \label{meansquarederror}
f_{mse}(\{(x_i, y_i)\}|\{y^{est}_i\}) = \frac{1}{N} \sum_{i=1}^N (y_i - y^{est}_i)^2 f_{mse}(\{(x_i, y_i)\}|\{y^{est}_i\}) = \frac{1}{N} \sum_{i=1}^N (y_i - y^{est}_i)^2
@ -130,7 +130,8 @@ f\"ur die Zielfunktion
den mittleren quadratischen Abstand der Datenpaare $(x_i, y_i)$ den mittleren quadratischen Abstand der Datenpaare $(x_i, y_i)$
gegeben die Parameterwerte $m$ und $b$ der Geradengleichung. Ziel des gegeben die Parameterwerte $m$ und $b$ der Geradengleichung. Ziel des
Kurvenfits ist es, die Werte f\"ur $m$ und $b$ so zu optimieren, dass Kurvenfits ist es, die Werte f\"ur $m$ und $b$ so zu optimieren, dass
der Fehler \eqnref{mseline} minimal wird. der Fehler \eqnref{mseline} minimal wird (\determ{Methode der
kleinsten Quadrate}, \enterm{least square error}).
\begin{exercise}{lsqError.m}{} \begin{exercise}{lsqError.m}{}
Implementiere die Zielfunktion f\"ur die Optimierung mit der Implementiere die Zielfunktion f\"ur die Optimierung mit der
@ -160,7 +161,7 @@ $f_{cost}(m,b)$, die die beiden Variablen $m$ und $b$ auf einen
Fehlerwert abbildet. Fehlerwert abbildet.
Es gibt also f\"ur jeden Punkt in der sogenannten Es gibt also f\"ur jeden Punkt in der sogenannten
\emph{Fehlerfl\"ache} einen Fehlerwert. In diesem Beispiel eines \determ{Fehlerfl\"ache} einen Fehlerwert. In diesem Beispiel eines
2-dimensionalen Problems (zwei freie Parameter) kann die 2-dimensionalen Problems (zwei freie Parameter) kann die
Fehlerfl\"ache graphisch durch einen 3-d \enterm{surface-plot} Fehlerfl\"ache graphisch durch einen 3-d \enterm{surface-plot}
dargestellt werden. Dabei werden auf der $x$- und der $y$-Achse die dargestellt werden. Dabei werden auf der $x$- und der $y$-Achse die
@ -278,7 +279,7 @@ Kostenfunktion verwenden. Da die Kugel immer entlang des steilsten
Gef\"alles rollt, ben\"otigen wir Information \"uber die Richtung des Gef\"alles rollt, ben\"otigen wir Information \"uber die Richtung des
Gef\"alles an der jeweils aktuellen Position. Gef\"alles an der jeweils aktuellen Position.
Der Gradient (Box~\ref{partialderivativebox}) der Kostenfunktion Der \determ{Gradient} (Box~\ref{partialderivativebox}) der Kostenfunktion
\[ \nabla f_{cost}(m,b) = \left( \frac{\partial e(m,b)}{\partial m}, \[ \nabla f_{cost}(m,b) = \left( \frac{\partial e(m,b)}{\partial m},
\frac{\partial f(m,b)}{\partial b} \right) \] bzgl. der beiden \frac{\partial f(m,b)}{\partial b} \right) \] bzgl. der beiden
Parameter $m$ und $b$ der Geradengleichung ist ein Vektor, der in Parameter $m$ und $b$ der Geradengleichung ist ein Vektor, der in
@ -327,7 +328,7 @@ partielle Ableitung nach $m$ durch
\section{Gradientenabstieg} \section{Gradientenabstieg}
Zu guter Letzt muss nur noch der Gradientenabstieg implementiert Zu guter Letzt muss nur noch der \determ{Gradientenabstieg} implementiert
werden. Die daf\"ur ben\"otigten Zutaten haben wir aus den werden. Die daf\"ur ben\"otigten Zutaten haben wir aus den
vorangegangenen \"Ubungen bereits vorbereitet. Wir brauchen: 1. Die Fehlerfunktion vorangegangenen \"Ubungen bereits vorbereitet. Wir brauchen: 1. Die Fehlerfunktion
(\code{meanSquareError()}), 2. die Zielfunktion (\code{lsqError()}) (\code{meanSquareError()}), 2. die Zielfunktion (\code{lsqError()})

View File

@ -34,10 +34,10 @@ der Daten eingesetzt:
nicht unbedingt identsich mit dem Modus.} nicht unbedingt identsich mit dem Modus.}
\end{figure} \end{figure}
Der Modus ist der h\"aufigste Wert, d.h. die Position des Maximums Der \determ{Modus} ist der h\"aufigste Wert, d.h. die Position des Maximums
einer Wahrscheinlichkeitsverteilung. einer Wahrscheinlichkeitsverteilung.
Der Median teilt eine Liste von Messwerten so in zwei H\"alften, dass Der \determ{Median} teilt eine Liste von Messwerten so in zwei H\"alften, dass
die eine H\"alfte der Daten nicht gr\"o{\ss}er und die andere H\"alfte die eine H\"alfte der Daten nicht gr\"o{\ss}er und die andere H\"alfte
nicht kleiner als der Median ist (\figref{medianfig}). nicht kleiner als der Median ist (\figref{medianfig}).
@ -61,10 +61,11 @@ nicht kleiner als der Median ist (\figref{medianfig}).
\end{exercise} \end{exercise}
Eine Wahrscheinlichkeitsverteilung kann weiter durch die Position Eine Wahrscheinlichkeitsverteilung kann weiter durch die Position
ihrere Quartile charakterisiert werden. Zwischen den Quartilen liegen ihrere \determ[Quartil]{Quartile} charakterisiert werden. Zwischen den
jeweils 25\,\% der Daten (\figref{quartilefig}). Perzentile erlauben Quartilen liegen jeweils 25\,\% der Daten
eine feinere Einteilung. Das 3. Quartil ist das 75. Perzentil, da (\figref{quartilefig}). Perzentile erlauben eine feinere
75\,\% der Daten unterhalb des 3. Quartils liegen. Einteilung. Das 3. Quartil ist das 75. Perzentil, da 75\,\% der Daten
unterhalb des 3. Quartils liegen.
\begin{figure}[t] \begin{figure}[t]
\includegraphics[width=1\textwidth]{quartile} \includegraphics[width=1\textwidth]{quartile}
@ -90,11 +91,11 @@ eine feinere Einteilung. Das 3. Quartil ist das 75. Perzentil, da
normalverteilte Zufallszahlen.} normalverteilte Zufallszahlen.}
\end{figure} \end{figure}
Box-Whisker Plots sind eine h\"aufig verwendete Darstellung um die \determ{Box-Whisker Plots} sind eine h\"aufig verwendete Darstellung
Verteilung unimodaler Daten zu visualisieren und vergleichbar zu um die Verteilung unimodaler Daten zu visualisieren und vergleichbar
machen mit anderen Daten. Dabei wird um den Median eine Box vom 1. zum zu machen mit anderen Daten. Dabei wird um den Median eine Box vom
3. Quartil gezeichnet. Die Whiskers deuten den minimalen und den 1. zum 3. Quartil gezeichnet. Die Whiskers deuten den minimalen und
maximalen Datenwert an (\figref{boxwhiskerfig}). den maximalen Datenwert an (\figref{boxwhiskerfig}).
\begin{exercise}{boxwhisker.m}{} \begin{exercise}{boxwhisker.m}{}
\tr{Generate eine $40 \times 10$ matrix of random numbers and \tr{Generate eine $40 \times 10$ matrix of random numbers and
@ -111,11 +112,12 @@ maximalen Datenwert an (\figref{boxwhiskerfig}).
\section{\tr{Histogram}{Histogramm}} \section{\tr{Histogram}{Histogramm}}
Histogramme z\"ahlen die H\"aufigkeit $n_i$ des Auftretens von \determ[Histogramm]{Histogramme} z\"ahlen die H\"aufigkeit $n_i$ des
$N=\sum_{i=1}^M n_i$ Messwerten in $M$ Messbereichsklassen $i$ (Bins). Auftretens von $N=\sum_{i=1}^M n_i$ Messwerten in $M$
Die Klassen unterteilen den Wertebereich meist in angrenzende und Messbereichsklassen $i$ (Bins). Die Klassen unterteilen den
gleich gro{\ss}e Intervalle. Histogramme k\"onnen verwendet werden, um die Wertebereich meist in angrenzende und gleich gro{\ss}e Intervalle.
Wahrscheinlichkeitsverteilung der Messwerte abzusch\"atzen. Histogramme k\"onnen verwendet werden, um die
\determ{Wahrscheinlichkeitsverteilung} der Messwerte abzusch\"atzen.
\begin{exercise}{rollthedie.m}{} \begin{exercise}{rollthedie.m}{}
\tr{Write a function that simulates rolling a die $n$ times.} \tr{Write a function that simulates rolling a die $n$ times.}
@ -171,7 +173,7 @@ Im Grenzwert zu sehr kleinen Bereichen $\Delta x$ ist die Wahrscheinlichkeit
eines Wertes $x$ zwischen $x_0$ und $x_0+\Delta x$ eines Wertes $x$ zwischen $x_0$ und $x_0+\Delta x$
\[ P(x_0<x<x_0+\Delta x) \approx p(x) \cdot \Delta x \; . \] \[ P(x_0<x<x_0+\Delta x) \approx p(x) \cdot \Delta x \; . \]
Die Gr\"o{\ss}e $p(x)$ ist eine sogenannte Die Gr\"o{\ss}e $p(x)$ ist eine sogenannte
``Wahrscheinlichkeitsdichte''. Sie ist keine einheitenlose \determ{Wahrscheinlichkeitsdichte}. Sie ist keine einheitenlose
Wahrscheinlichkeit mit Werten zwischen Null und Eins, sondern kann Wahrscheinlichkeit mit Werten zwischen Null und Eins, sondern kann
jeden positiven Wert annehmen und hat als Einheit den Kehrwert der jeden positiven Wert annehmen und hat als Einheit den Kehrwert der
Einheit von $x$. Einheit von $x$.
@ -192,12 +194,14 @@ Da die Wahrscheinlichkeit irgendeines Wertes $x$ Eins ergeben muss gilt die Norm
\end{equation} \end{equation}
Die gesamte Funktion $p(x)$, die jedem Wert $x$ einen Die gesamte Funktion $p(x)$, die jedem Wert $x$ einen
Wahrscheinlichkeitsdichte zuordnet wir auch Wahrscheinlichkeitsdichte zuordnet wir auch
Wahrscheinlichkeitsdichtefunktion (``probability density function'', \determ{Wahrscheinlichkeitsdichtefunktion} (\enterm{probability
``pdf'', oder kurz ``density'') genannt. Die bekannteste density function}, \enterm[pdf|see{probability density
Wahrscheinlichkeitsdichtefunktion ist die der Normalverteilung function}]{pdf}, oder kurz \enterm[density|see{probability density
function}]{density}) genannt. Die bekannteste
Wahrscheinlichkeitsdichtefunktion ist die der \determ{Normalverteilung}
\[ p_g(x) = \[ p_g(x) =
\frac{1}{\sqrt{2\pi\sigma^2}}e^{-\frac{(x-\mu)^2}{2\sigma^2}} \] \frac{1}{\sqrt{2\pi\sigma^2}}e^{-\frac{(x-\mu)^2}{2\sigma^2}} \]
--- die Gau{\ss}sche-Glockenkurve mit Mittelwert $\mu$ und --- die \determ{Gau{\ss}sche-Glockenkurve} mit Mittelwert $\mu$ und
Standardabweichung $\sigma$. Standardabweichung $\sigma$.
\newpage \newpage
@ -266,13 +270,13 @@ $\Delta x$ der Klassen geteilt werden (\figref{pdfhistogramfig}).
Bisher haben wir Eigenschaften einer einzelnen Me{\ss}gr\"o{\ss}e Bisher haben wir Eigenschaften einer einzelnen Me{\ss}gr\"o{\ss}e
angeschaut. Bei mehreren Me{\ss}gr\"o{\ss}en, kann nach angeschaut. Bei mehreren Me{\ss}gr\"o{\ss}en, kann nach
Abh\"angigkeiten zwischen den beiden Gr\"o{\ss}en gefragt werden. Der Abh\"angigkeiten zwischen den beiden Gr\"o{\ss}en gefragt werden. Der
Korrelations\-koeffizient \determ[Korrelationskoeffizient]{Korrelations\-koeffizient}
\[ r_{x,y} = \frac{Cov(x,y)}{\sigma_x \sigma_y} = \frac{\langle \[ r_{x,y} = \frac{Cov(x,y)}{\sigma_x \sigma_y} = \frac{\langle
(x-\langle x \rangle)(y-\langle y \rangle) \rangle}{\sqrt{\langle (x-\langle x \rangle)(y-\langle y \rangle) \rangle}{\sqrt{\langle
(x-\langle x \rangle)^2} \rangle \sqrt{\langle (y-\langle y (x-\langle x \rangle)^2} \rangle \sqrt{\langle (y-\langle y
\rangle)^2} \rangle} \] \rangle)^2} \rangle} \]
quantifiziert einfache lineare Zusammenh\"ange \matlabfun{corr()}. Der quantifiziert einfache lineare Zusammenh\"ange \matlabfun{corr()}. Der
Korrelationskoeffizient ist die Covarianz normiert durch die Korrelationskoeffizient ist die \determ{Kovarianz} normiert durch die
Standardabweichungen. Perfekt korrelierte Variablen ergeben einen Standardabweichungen. Perfekt korrelierte Variablen ergeben einen
Korrelationskoeffizienten von $+1$, antikorrelierte Daten einen Korrelationskoeffizienten von $+1$, antikorrelierte Daten einen
Korrelationskoeffizienten von $-1$ und nicht korrelierte Daten einen Korrelationskoeffizienten von $-1$ und nicht korrelierte Daten einen