Improved indices
This commit is contained in:
parent
993ab5d8e7
commit
3225b28be4
@ -5,7 +5,7 @@
|
||||
\lstset{inputpath=../code}
|
||||
\graphicspath{{figures/}}
|
||||
|
||||
\setcounter{page}{77}
|
||||
\setcounter{page}{81}
|
||||
\setcounter{chapter}{4}
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
@ -2,7 +2,7 @@
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\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:
|
||||
\begin{itemize}
|
||||
\item Weniger Annahmen (z.B. muss eine Stichprobe nicht normalverteilt sein).
|
||||
@ -21,21 +21,22 @@ aus der Stichprobe. Das hat mehrere Vorteile:
|
||||
\end{figure}
|
||||
|
||||
Zur Erinnerung: In der Statistik interessieren wir uns f\"ur
|
||||
Eigenschaften einer Grundgesamtheit. z.B. die mittlere L\"ange von
|
||||
sauren Gurken (\figref{statisticalpopulationfig}). Aus der
|
||||
Grundgesamtheit wird eine Stichprobe (simple random sample, SRS)
|
||||
gezogen, da niemals die gesamte Grundgesamtheit gemessen werden kann.
|
||||
Dann wird aus dieser einzigen Stichprobe die gew\"unschte Gr\"o{\ss}e
|
||||
berechnet (die mittlere Gr\"o{\ss}e der sauren Gurken) und man hofft,
|
||||
dass die erhaltene Zahl an der entsprechenden unbekannten Gr\"o{\ss}e
|
||||
der Grundgesamtheit (der Populationsparameter) m\"oglichst nah dran
|
||||
Eigenschaften einer \determ{Grundgesamtheit}. z.B. die mittlere
|
||||
L\"ange von sauren Gurken (\figref{statisticalpopulationfig}). Aus der
|
||||
Grundgesamtheit wird eine \determ{Stichprobe} (\enterm{simple random
|
||||
sample}, \enterm[SRS|see{simple random sample}]{SRS}) gezogen, da
|
||||
niemals die gesamte Grundgesamtheit gemessen werden kann. Dann wird
|
||||
aus dieser einzigen Stichprobe die gew\"unschte Gr\"o{\ss}e berechnet
|
||||
(die mittlere Gr\"o{\ss}e der sauren Gurken) und man hofft, dass die
|
||||
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
|
||||
Populationsparameter abgesch\"atzt worden ist.
|
||||
|
||||
Wenn wir viele Stichproben ziehen w\"urden, dann k\"onnte man f\"ur
|
||||
jede Stichprobe den gew\"unschten Parameter berechnen, und von diesen
|
||||
die Wahrscheinlichkeitsverteilung \"uber ein Histogramm bestimmen ---
|
||||
die ``Stichprobenverteilung'' (sampling distribution,
|
||||
die \determ{Stichprobenverteilung} (\enterm{sampling distribution},
|
||||
\subfigref{bootstrapsamplingdistributionfig}{a}).
|
||||
|
||||
\begin{figure}[tp]
|
||||
@ -68,9 +69,9 @@ Mittelwerte der Stichproben um den Populationsmittelwert streuen
|
||||
\subfigref{bootstrapsamplingdistributionfig}{b}).
|
||||
|
||||
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
|
||||
Verteilung bestimmen (Bootstrap Verteilung,
|
||||
Verteilung bestimmen (\determ{Bootstrapverteilung},
|
||||
\subfigref{bootstrapsamplingdistributionfig}{c}). Diese Verteilung ist
|
||||
interessanterweise in ihrer Breite und Form der Stichprobenverteilung
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
Korrelationen veranschaulichen. Gegeben sind Datenpaare $(x_i, y_i)$.
|
||||
Daraus k\"onnen wir den Korrelationskoeffizienten berechnen. Wir
|
||||
wissen dann aber noch nicht, ob der berechnete Wert tats\"achlich eine
|
||||
Korrelation anzeigt. Die Nullhypothese ist, dass die Daten nicht
|
||||
miteinander korreliert sind. Indem wir die $x$-Werte und die $y$-Werte
|
||||
unabh\"angig voneinander permutieren (ihre Reihenfolge zuf\"allig neu
|
||||
anordnen), werden die Korrelationen der Datenpaare zerst\"ort. Wenn
|
||||
wir das viele Male wiederholen, bekommen wir die Verteilung der
|
||||
Korrelationskoeffizienten f\"ur nichtkorrelierte Daten. Aus dieser
|
||||
Verteilung der Nullhypothese k\"onnen wir dann dann die Signifikanz
|
||||
der tats\"achlich gemessenen Korrelation bestimmen.
|
||||
Daraus k\"onnen wir den
|
||||
\determ[Korrelationskoeffizient]{Korrelationskoeffizienten}
|
||||
berechnen. Wir wissen dann aber noch nicht, ob der berechnete Wert
|
||||
tats\"achlich eine Korrelation anzeigt. Die Nullhypothese ist, dass
|
||||
die Daten nicht miteinander korreliert sind. Indem wir die $x$-Werte
|
||||
und die $y$-Werte unabh\"angig voneinander permutieren (ihre
|
||||
Reihenfolge zuf\"allig neu anordnen), werden die Korrelationen der
|
||||
Datenpaare zerst\"ort. Wenn wir das viele Male wiederholen, bekommen
|
||||
wir die Verteilung der Korrelationskoeffizienten f\"ur
|
||||
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}
|
||||
Bestimme die Signifikanz eines Korrelationskoeffizienten.
|
||||
|
@ -5,7 +5,7 @@
|
||||
\lstset{inputpath=../code}
|
||||
\graphicspath{{figures/}}
|
||||
|
||||
\setcounter{page}{125}
|
||||
\setcounter{page}{129}
|
||||
\setcounter{chapter}{8}
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
@ -191,7 +191,7 @@
|
||||
|
||||
%%%%% english, german, code and file terms: %%%%%%%%%%%%%%%
|
||||
\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{\codeterm}[2][]{\textit{#2}\ifthenelse{\equal{#1}{}}{\protect\sindex[term]{#2}}{\protect\sindex[term]{#1}}}
|
||||
\newcommand{\file}[1]{\texttt{#1}}
|
||||
|
@ -5,7 +5,7 @@
|
||||
\lstset{inputpath=../code}
|
||||
\graphicspath{{figures/}}
|
||||
|
||||
\setcounter{page}{99}
|
||||
\setcounter{page}{101}
|
||||
\setcounter{chapter}{6}
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
@ -7,7 +7,8 @@
|
||||
In vielen Situationen wollen wir einen oder mehrere Parameter $\theta$
|
||||
einer Wahrscheinlichkeitsverteilung sch\"atzen, so dass die Verteilung
|
||||
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
|
||||
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)
|
||||
\ldots p(x_n|\theta) = \prod_{i=1}^n p(x_i|\theta) \; .
|
||||
\end{equation}
|
||||
Andersherum gesehen ist das die Likelihood (deutsch immer noch ``Wahrscheinlichleit'')
|
||||
den Parameter $\theta$ zu haben, gegeben die Me{\ss}werte $x_1, x_2, \ldots x_n$,
|
||||
Andersherum gesehen ist das die \determ{Likelihood}
|
||||
(\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}
|
||||
{\cal L}(\theta|x_1,x_2, \ldots x_n) = p(x_1,x_2, \ldots x_n|\theta)
|
||||
\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
|
||||
transformiert. Aus numerischen und gleich ersichtlichen mathematischen
|
||||
Gr\"unden wird meistens das Maximum der logarithmierten Likelihood
|
||||
(``Log-Likelihood'') gesucht:
|
||||
(\determ{log-Likelihood}, \enterm{log-likelihood}) gesucht:
|
||||
\begin{eqnarray}
|
||||
\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 \\
|
||||
@ -73,7 +76,7 @@ $\theta$ maximiert dessen Likelhood?
|
||||
|
||||
\begin{figure}[t]
|
||||
\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
|
||||
Normalverteilungen mit unterschiedlichen Mittelwerten (Pfeile) aus
|
||||
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}
|
||||
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$ gefittet werden. Wenn wir annehmen, dass die $y_i$ um die
|
||||
entsprechenden Funktionswerte $f(x_i;\theta)$ mit einer
|
||||
@ -210,21 +213,21 @@ zur\"uckzugreifen \matlabfun{lsqcurvefit()}.
|
||||
\section{Fits von Wahrscheinlichkeitsverteilungen}
|
||||
Jetzt betrachten wir noch den Fall, bei dem wir die 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
|
||||
Wahrscheinlichkeitsdichtefunktion durch Minimierung des quadratischen
|
||||
Abstands an ein Histogramm der Daten zu fitten. Das ist aber aus
|
||||
folgenden Gr\"unden nicht die Methode der Wahl: (i)
|
||||
Wahrscheinlichkeitsdichten k\"onnen nur positiv sein. Darum k\"onnen
|
||||
insbesondere bei kleinen Werten die Daten nicht symmetrisch streuen,
|
||||
wie es bei normalverteilten Daten der Fall ist. (ii) Die Datenwerte
|
||||
sind nicht unabh\"angig, da das normierte Histogram sich zu Eins
|
||||
aufintegriert. Die beiden Annahmen normalverteilte und unabh\"angige
|
||||
Daten, die die Minimierung des quadratischen Abstands
|
||||
\eqnref{chisqmin} zu einem Maximum-Likelihood Sch\"atzer machen, sind
|
||||
also verletzt. (iii) Das Histogramm h\"angt von der Wahl der
|
||||
Klassenbreite ab (\figref{mlepdffig}).
|
||||
\determ[Wahrscheinlichkeitsdichte]{Wahrscheinlichkeitsdichtefunktion}
|
||||
durch Minimierung des quadratischen Abstands an ein Histogramm der
|
||||
Daten zu fitten. Das ist aber aus folgenden Gr\"unden nicht die
|
||||
Methode der Wahl: (i) Wahrscheinlichkeitsdichten k\"onnen nur positiv
|
||||
sein. Darum k\"onnen insbesondere bei kleinen Werten die Daten nicht
|
||||
symmetrisch streuen, wie es bei normalverteilten Daten der Fall
|
||||
ist. (ii) Die Datenwerte sind nicht unabh\"angig, da das normierte
|
||||
Histogram sich zu Eins aufintegriert. Die beiden Annahmen
|
||||
normalverteilte und unabh\"angige Daten, die die Minimierung des
|
||||
quadratischen Abstands \eqnref{chisqmin} zu einem Maximum-Likelihood
|
||||
Sch\"atzer machen, sind also verletzt. (iii) Das Histogramm h\"angt
|
||||
von der Wahl der Klassenbreite ab (\figref{mlepdffig}).
|
||||
|
||||
\begin{figure}[t]
|
||||
\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
|
||||
Antwort der Neurone f\"ur verschiedene Stimuli (z.B. verschiedene
|
||||
Orientierungen des Balkens) gemessen. Die mittlere Antwort der Neurone
|
||||
als Funktion eines Stimulusparameters ist dann die ``Tuning-curve''
|
||||
(z.B. Feuerrate als Funktion des Orientierungswinkels).
|
||||
als Funktion eines Stimulusparameters ist dann die
|
||||
\enterm{Tuning-curve} (deutsch \determ{Abstimmkurve}, z.B. Feuerrate
|
||||
als Funktion des Orientierungswinkels).
|
||||
|
||||
\begin{figure}[tp]
|
||||
\includegraphics[width=1\textwidth]{mlecoding}
|
||||
|
@ -156,15 +156,15 @@ korrigiert werden musss, wird es schwierig und zeitaufwendig.
|
||||
|
||||
Plots in \matlab{} bestehen aus mehreren Elementen:
|
||||
\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.
|
||||
\item \enterm{Axes}: Das Koordinatensystem in welches gezeichnet wird.
|
||||
\item \enterm{Lines}: Die gezeichneten Datenplots wie Linien,
|
||||
\item \enterm[axes]{Axes}: Das Koordinatensystem in welches gezeichnet wird.
|
||||
\item \enterm[lines]{Lines}: Die gezeichneten Datenplots wie Linien,
|
||||
Fl\"achen, etc.
|
||||
\item \enterm{Annotations}: Annotationen wie Textboxen oder auch
|
||||
Pfeile, die zum Hervorheben von Punkten, oder Abschnitten gedacht
|
||||
sind.
|
||||
\item \enterm{Legends}: Legenden der Datenplots.
|
||||
\item \enterm[annotations]{Annotations}: Annotationen wie Textboxen
|
||||
oder auch Pfeile, die zum Hervorheben von Punkten, oder Abschnitten
|
||||
gedacht sind.
|
||||
\item \enterm[legends]{Legends}: Legenden der Datenplots.
|
||||
\end{enumerate}
|
||||
Jedes dieser Elemente bietet eine Vielzahl von
|
||||
Einstellungsm\"oglichkeiten. Wie schon erw\"ahnt, k\"onnen diese
|
||||
@ -355,7 +355,7 @@ der gerade aktiven Achse.
|
||||
\subsection{Ver\"andern von Figure-Einstellungen}
|
||||
|
||||
\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
|
||||
\textbf{Eigenschaft} & \textbf{Beschreibung} & \textbf{Optionen} \\ \hline
|
||||
\code{Color} & Hintergrundfarbe der Zeichenfl\"ache. & Beliebige RGB, CMYK ... Werte. \\
|
||||
|
@ -2,7 +2,7 @@
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\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
|
||||
Zeitpunkt des Auftretens eines Aktionspotentials von Bedeutung. Die
|
||||
genaue Form des Aktionspotentials spielt keine oder nur eine
|
||||
@ -10,7 +10,7 @@ untergeordnete Rolle.
|
||||
|
||||
Nach etwas Vorverarbeitung haben elektrophysiologische Messungen
|
||||
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
|
||||
(\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
|
||||
Ereignissen sind reelle, positive Zahlen. Bei Aktionspotentialen
|
||||
heisen die Intervalle auch \enterm{Interspikeintervalle}. Deren Statistik
|
||||
kann mit den \"ublichen Gr\"o{\ss}en beschrieben werden.
|
||||
heisen die Intervalle auch \determ{Interspikeintervalle}
|
||||
(\enterm{interspike intervals}). Deren Statistik kann mit den
|
||||
\"ublichen Gr\"o{\ss}en beschrieben werden.
|
||||
|
||||
\begin{figure}[t]
|
||||
\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$.
|
||||
\item Standardabweichung der Intervalle: $\sigma_{ISI} = \sqrt{\langle (T - \langle T
|
||||
\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}}$.
|
||||
\item Diffusions Koeffizient: $D_{ISI} =
|
||||
\item \determ{Diffusionskoeffizient} (\enterm{diffusion coefficient}): $D_{ISI} =
|
||||
\frac{\sigma_{ISI}^2}{2\mu_{ISI}^3}$.
|
||||
\end{itemize}
|
||||
|
||||
@ -139,9 +140,10 @@ sichtbar.
|
||||
im Abstand des Lags $k$.}
|
||||
\end{figure}
|
||||
|
||||
Solche Ab\"angigkeiten werden durch die serielle Korrelation der
|
||||
Intervalle quantifiziert. Das ist der Korrelationskoeffizient
|
||||
zwischen aufeinander folgenden Intervallen getrennt durch lag $k$:
|
||||
Solche Ab\"angigkeiten werden durch die \determ{serielle
|
||||
Korrelationen} (\enterm{serial correlations}) der Intervalle
|
||||
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)}
|
||||
= {\rm corr}(T_{i+k}, T_i) \]
|
||||
\"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 Mittlere Anzahl von Ereignissen: $\mu_N = \langle n \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}
|
||||
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}
|
||||
\label{firingrate}
|
||||
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
|
||||
Prozess}.
|
||||
|
||||
Beim homogenen Poisson Prozess treten Ereignisse mit einer festen Rate
|
||||
$\lambda=\text{const.}$ auf und sind unabh\"angig von der Zeit $t$ und
|
||||
unabh\"angig von den Zeitpunkten fr\"uherer Ereignisse
|
||||
(\figref{hompoissonfig}). Die Wahrscheinlichkeit zu irgendeiner Zeit
|
||||
ein Ereigniss in einem kleinen Zeitfenster der Breite $\Delta t$ zu
|
||||
bekommen ist
|
||||
Beim \determ[Poisson Prozess!homogener]{homogenen Poisson Prozess}
|
||||
treten Ereignisse mit einer festen Rate $\lambda=\text{const.}$ auf
|
||||
und sind unabh\"angig von der Zeit $t$ und unabh\"angig von den
|
||||
Zeitpunkten fr\"uherer Ereignisse (\figref{hompoissonfig}). Die
|
||||
Wahrscheinlichkeit zu irgendeiner Zeit ein Ereigniss in einem kleinen
|
||||
Zeitfenster der Breite $\Delta t$ zu bekommen ist
|
||||
\begin{equation}
|
||||
\label{hompoissonprob}
|
||||
P = \lambda \cdot \Delta t \; .
|
||||
\end{equation}
|
||||
Beim inhomogenen Poisson Prozess h\"angt die Rate $\lambda$ von der
|
||||
Zeit ab: $\lambda = \lambda(t)$.
|
||||
Beim \determ[Poisson Prozess!inhomogener]{inhomogenen Poisson Prozess}
|
||||
h\"angt die Rate $\lambda$ von der Zeit ab: $\lambda = \lambda(t)$.
|
||||
|
||||
\begin{exercise}{poissonspikes.m}{}
|
||||
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 Die Varianz der Intervalle ist $\sigma_{ISI}^2 = \frac{1}{\lambda^2}$ .
|
||||
\item Der Variationskoeffizient ist also immer $CV_{ISI} = 1$ .
|
||||
\item Die seriellen Korrelationen $\rho_k =0$ f\"ur $k>0$, da das
|
||||
Auftreten der Ereignisse unabh\"angig von der Vorgeschichte ist. Ein
|
||||
solcher Prozess wird auch \determ{Erneuerungsprozess} genannt (\enterm{renewal
|
||||
process}).
|
||||
\item Die Anzahl der Ereignisse $k$ innerhalb eines Fensters der L\"ange W ist Poissonverteilt:
|
||||
\item Die \determ[serielle Korrelationen]{seriellen Korrelationen}
|
||||
$\rho_k =0$ f\"ur $k>0$, da das Auftreten der Ereignisse
|
||||
unabh\"angig von der Vorgeschichte ist. Ein solcher Prozess wird
|
||||
auch \determ{Erneuerungsprozess} genannt (\enterm{renewal process}).
|
||||
\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!} \]
|
||||
(\figref{hompoissoncountfig})
|
||||
\item Der Fano Faktor ist immer $F=1$ .
|
||||
\item Der \determ{Fano Faktor} ist immer $F=1$ .
|
||||
\end{itemize}
|
||||
|
||||
\begin{exercise}{hompoissonspikes.m}{}
|
||||
@ -322,18 +325,20 @@ Abbildung \ref{psthfig} n\"aher erl\"autert.
|
||||
\end{figure}
|
||||
|
||||
Ein sehr einfacher Weg, die zeitabh\"angige Feuerrate zu bestimmen ist
|
||||
die sogenannte \determ{instantane Feuerrate}. Dabei wird die Feuerrate
|
||||
aus dem Kehrwert der Interspikeintervalle, der Zeit zwischen zwei
|
||||
aufeinander folgenden Aktionspotentialen (\figref{instrate} A),
|
||||
bestimmt. Die abgesch\"atzte Feuerrate (\figref{instrate} B) ist
|
||||
g\"ultig f\"ur das gesammte Interspikeintervall. Diese Methode hat den
|
||||
Vorteil, dass sie sehr einfach zu berechnen ist und keine Annahme
|
||||
\"uber eine relevante Zeitskala (der Kodierung oder des
|
||||
Auslesemechanismus der postsynaptischen Zelle) macht. $r(t)$ ist
|
||||
allerdings keine kontinuierliche Funktion, die Spr\"unge in der
|
||||
Feuerrate k\"onnen f\"ur manche Analysen nachteilig sein. Au{\ss}erdem
|
||||
wird die Feuerrate nie gleich Null, auch wenn lange keine Aktionspotentiale
|
||||
generiert wurden.
|
||||
die sogenannte \determ[Feuerrate!instantane]{instantane Feuerrate}
|
||||
(\enterm[firing rate!instantaneous]{instantaneous firing rate}). Dabei
|
||||
wird die Feuerrate aus dem Kehrwert der Interspikeintervalle, der Zeit
|
||||
zwischen zwei aufeinander folgenden Aktionspotentialen
|
||||
(\figref{instrate} A), bestimmt. Die abgesch\"atzte Feuerrate
|
||||
(\figref{instrate} B) ist g\"ultig f\"ur das gesammte
|
||||
Interspikeintervall. Diese Methode hat den Vorteil, dass sie sehr
|
||||
einfach zu berechnen ist und keine Annahme \"uber eine relevante
|
||||
Zeitskala (der Kodierung oder des Auslesemechanismus der
|
||||
postsynaptischen Zelle) macht. $r(t)$ ist allerdings keine
|
||||
kontinuierliche Funktion, die Spr\"unge in der Feuerrate k\"onnen
|
||||
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}{}
|
||||
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
|
||||
die jeweiligen Bins fallen, gez\"ahlt (\figref{binpsth} A). Um diese
|
||||
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
|
||||
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}
|
||||
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
|
||||
ersetzt (Abbildung \ref{convrate} A). Wenn der Kern richtig normiert
|
||||
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
|
||||
stetigen Funktion was insbesondere f\"ur spektrale Analysen von
|
||||
@ -439,8 +444,9 @@ Spiketrains.
|
||||
\section{Spike-triggered Average}
|
||||
Die graphischer Darstellung der Feuerrate allein reicht nicht aus um
|
||||
den Zusammenhang zwischen neuronaler Antwort und einem Stimulus zu
|
||||
analysieren. Eine Methode um mehr \"uber diesen Zusammenhang zu erfahren,
|
||||
ist der \enterm{Spike-triggered average} (\enterm[STA|see{Spike-triggered average}]{STA}). Der STA
|
||||
analysieren. Eine Methode um mehr \"uber diesen Zusammenhang zu
|
||||
erfahren, ist der \enterm{spike-triggered average}
|
||||
(\enterm[STA|see{spike-triggered average}]{STA}). Der STA
|
||||
\begin{equation}
|
||||
STA(\tau) = \langle s(t - \tau) \rangle = \frac{1}{N} \sum_{i=1}^{N} s(t_i - \tau)
|
||||
\end{equation}
|
||||
|
@ -913,17 +913,18 @@ Abschnitte wiederholt ausf\"uhren will.
|
||||
\subsubsection{Die \code{for} -- Schleife}
|
||||
|
||||
Der am h\"aufigsten benutzte Vertreter der Schleifen ist die
|
||||
\codeterm{for-Schleife}. Sie besteht aus dem \codeterm{Schleifenkopf} und
|
||||
dem \codeterm{Schleifenk\"orper}. Der Kopf regelt, wie h\"aufig der Code
|
||||
im K\"orper ausgef\"uhrt wird. Der Schleifenkopf beginnt mit dem
|
||||
Schl\"usselwort \code{for} auf welches folgend die
|
||||
\codeterm{Laufvariable} definiert wird. In \matlab ``l\"auft''/iteriert
|
||||
eine for-Schleife immer(!) \"uber einen Vektor. Die
|
||||
\codeterm{Laufvariable} nimmt mit jeder Iteration einen Wert dieses
|
||||
Vektors an. Im Schleifenk\"orper k\"onnen beliebige Anweisungen
|
||||
ausgef\"uhrt werden. Die Schleife wird durch das Schl\"usselwort
|
||||
\code{end} beendet. Listing \ref{looplisting} zeigt das
|
||||
Grundger\"ust einer for-Schleife.
|
||||
\codeterm{for-Schleife}. Sie besteht aus dem
|
||||
\codeterm[Schleife!Schleifenkopf]{Schleifenkopf} und dem
|
||||
\codeterm[Schleife!Schleifenk{\"o}rper]{Schleifenk\"orper}. Der Kopf
|
||||
regelt, wie h\"aufig der Code im K\"orper ausgef\"uhrt wird. Der
|
||||
Schleifenkopf beginnt mit dem Schl\"usselwort \code{for} auf welches
|
||||
folgend die \codeterm{Laufvariable} definiert wird. In \matlab
|
||||
``l\"auft''/iteriert eine for-Schleife immer(!) \"uber einen
|
||||
Vektor. Die \codeterm{Laufvariable} nimmt mit jeder Iteration einen
|
||||
Wert dieses Vektors an. Im Schleifenk\"orper k\"onnen beliebige
|
||||
Anweisungen ausgef\"uhrt werden. Die Schleife wird durch das
|
||||
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]
|
||||
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:
|
||||
\begin{enumerate}
|
||||
\item Skripte
|
||||
\item Funktionen
|
||||
\item Objekte (werden wir ignorieren)
|
||||
\item \codeterm[Skript]{Skripte}
|
||||
\item \codeterm[Funktion]{Funktionen}
|
||||
\item \codeterm[Objekt]{Objekte} (werden wir hier nicht behandeln)
|
||||
\end{enumerate}
|
||||
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
|
||||
verwendet. Programme erh\"ohen die Wiederverwertbarkeit von
|
||||
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
|
||||
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
|
||||
dieses Problem bieten die \codeterm{Funktionen}.
|
||||
dieses Problem bieten die \codeterm[Funktion]{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.
|
||||
|
||||
\begin{enumerate}
|
||||
\item \codeterm{Name}: der Name sollte beschreiben, was die Funktion
|
||||
tut. In diesem Fall berechnet sie einen Sinus. Ein geeigneter Name
|
||||
w\"are also \code{calculate\_sinewave()}.
|
||||
\item \codeterm{Argumente}: die zu brechnende Sinusschwingung sei durch
|
||||
ihre Frequenz und die Amplitude bestimmt. Des Weiteren soll noch
|
||||
festgelegt werden, wie lang der Sinus sein soll und mit welcher
|
||||
zeitlichen Aufl\"osung gerechnet werden soll. Es werden also vier
|
||||
Argumente ben\"otigt, sie k\"onnten hei{\ss}en: \varcode{varamplitude},
|
||||
\varcode{frequency}, \varcode{t\_max}, \varcode{t\_step}.
|
||||
\item \codeterm{R\"uckgabewerte}: Um den 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}
|
||||
\item \codeterm[Funktion!Name]{Name}: der Name sollte beschreiben, was
|
||||
die Funktion tut. In diesem Fall berechnet sie einen Sinus. Ein
|
||||
geeigneter Name w\"are also \code{calculate\_sinewave()}.
|
||||
\item \codeterm[Funktion!Argumente]{Argumente}: die zu brechnende
|
||||
Sinusschwingung sei durch ihre Frequenz und die Amplitude
|
||||
bestimmt. Des Weiteren soll noch festgelegt werden, wie lang der
|
||||
Sinus sein soll und mit welcher zeitlichen Aufl\"osung gerechnet
|
||||
werden soll. Es werden also vier Argumente ben\"otigt, sie k\"onnten
|
||||
hei{\ss}en: \varcode{varamplitude}, \varcode{frequency},
|
||||
\varcode{t\_max}, \varcode{t\_step}.
|
||||
\item \codeterm[Funktion!R{\"u}ckgabewerte]{R\"uckgabewerte}: Um den
|
||||
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}
|
||||
Mit dieser Information ist es nun gut m\"oglich die Funktion zu
|
||||
implementieren (Listing \ref{sinefunctionlisting}).
|
||||
@ -1309,7 +1312,7 @@ function plot_sinewave(x_data, y_data, name)
|
||||
\paragraph{III. Erstellen eines Skriptes zur Koordinierung}
|
||||
Die letzte Aufgabe ist die Koordinierung der Berechung und des
|
||||
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
|
||||
ben\"otigten Informationen direkt in dem Skript defniniert werden. Es
|
||||
werden ben\"otigt: ein Vektor f\"ur die Amplituden, je eine Variable
|
||||
|
@ -302,7 +302,7 @@ ob dieser Teil des Programms nicht in eine eigene Funktion ausgelagert
|
||||
werden sollte. Fast immer kann dies bejaht werden.
|
||||
|
||||
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
|
||||
\"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}
|
||||
|
||||
Das Auslagern von Funktionalit\"at in eigene Funktionen f\"uhrt
|
||||
dazu, dass eine F\"ulle von Dateien erzeugt wird, die die
|
||||
Das Auslagern von Funktionalit\"at in eigene Funktionen f\"uhrt dazu,
|
||||
dass eine F\"ulle von Dateien erzeugt wird, die die
|
||||
\"Ubersichtlichkeit nicht unbedingt erh\"oht. Wenn die auszulagernde
|
||||
Funktionalit\"at an vielen Stellen ben\"otigt wird ist es
|
||||
dennoch sinnvoll dies zu tun. Wenn nicht, dann bietet \matlab{} die
|
||||
M\"oglichkeit sogenannte \codeterm{lokale Funktionen} oder auch
|
||||
\codeterm{geschachtelte Funktionen} (\enterm{nested functions}) zu
|
||||
erstellen. Listing \ref{localfunctions} zeigt ein Beispiel f\"ur eine
|
||||
lokale Funktion.
|
||||
Funktionalit\"at an vielen Stellen ben\"otigt wird ist es dennoch
|
||||
sinnvoll dies zu tun. Wenn nicht, dann bietet \matlab{} die
|
||||
M\"oglichkeit sogenannte \codeterm[Funktion!lokale]{lokale Funktionen}
|
||||
oder auch \codeterm[Funktion!geschachtelte|see{lokale}]{geschachtelte
|
||||
Funktionen} (\enterm{nested functions}) zu erstellen. Listing
|
||||
\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
|
||||
verf\"ugbar. Jede Funktion hat ihren eigenen G\"ultigkeitsbereich, das
|
||||
hei{\ss}t, dass Variablen aus den aufrufenden Funktionen nicht
|
||||
sichtbar sind. Bei sogenannten \codeterm[geschachtelte Funktionen]{geschachtelten Funktionen}
|
||||
ist das anders. Diese werden innerhalb eines Funktionsk\"orpers
|
||||
(zwischen den Schl\"usselworten \code{function} und dem
|
||||
\code{end} definiert und k\"onnen auf alle Variablen der
|
||||
sichtbar sind. Bei sogenannten
|
||||
\codeterm[Funktion!geschachtelte|see{lokale}]{geschachtelten
|
||||
Funktionen} ist das anders. Diese werden innerhalb eines
|
||||
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
|
||||
sollten sie nur mit Bedacht eingesetzt werden.
|
||||
|
||||
@ -403,8 +406,11 @@ diese sollten dann beachtet werden.
|
||||
|
||||
Wiederholte Programmabschnitte sollten in Funktionen ausgelagert
|
||||
werden. Wenn diese nicht von globalem Interesse sind, kann mit
|
||||
\codeterm{lokalen} oder \codeterm{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}
|
||||
\codeterm[Funktion!lokale]{lokalen} oder
|
||||
\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}
|
||||
|
@ -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
|
||||
$y_i^{est}$ klein sein soll.
|
||||
|
||||
Am h\"aufigsten wird jedoch bei einem Kurvenfit der \determ{mittlere
|
||||
quadratische Abstand} (\enterm{mean squared distance} oder
|
||||
\enterm{mean squared error})
|
||||
Am h\"aufigsten wird jedoch bei einem Kurvenfit der \determ[mittlerer
|
||||
quadratische Abstand]{mittlere quadratische Abstand} (\enterm{mean
|
||||
squared distance} oder \enterm{mean squared error})
|
||||
\begin{equation}
|
||||
\label{meansquarederror}
|
||||
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)$
|
||||
gegeben die Parameterwerte $m$ und $b$ der Geradengleichung. Ziel des
|
||||
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}{}
|
||||
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.
|
||||
|
||||
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
|
||||
Fehlerfl\"ache graphisch durch einen 3-d \enterm{surface-plot}
|
||||
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 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},
|
||||
\frac{\partial f(m,b)}{\partial b} \right) \] bzgl. der beiden
|
||||
Parameter $m$ und $b$ der Geradengleichung ist ein Vektor, der in
|
||||
@ -327,7 +328,7 @@ partielle Ableitung nach $m$ durch
|
||||
|
||||
\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
|
||||
vorangegangenen \"Ubungen bereits vorbereitet. Wir brauchen: 1. Die Fehlerfunktion
|
||||
(\code{meanSquareError()}), 2. die Zielfunktion (\code{lsqError()})
|
||||
|
@ -34,10 +34,10 @@ der Daten eingesetzt:
|
||||
nicht unbedingt identsich mit dem Modus.}
|
||||
\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.
|
||||
|
||||
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
|
||||
nicht kleiner als der Median ist (\figref{medianfig}).
|
||||
|
||||
@ -61,10 +61,11 @@ nicht kleiner als der Median ist (\figref{medianfig}).
|
||||
\end{exercise}
|
||||
|
||||
Eine Wahrscheinlichkeitsverteilung kann weiter durch die Position
|
||||
ihrere Quartile charakterisiert werden. Zwischen den Quartilen liegen
|
||||
jeweils 25\,\% der Daten (\figref{quartilefig}). Perzentile erlauben
|
||||
eine feinere Einteilung. Das 3. Quartil ist das 75. Perzentil, da
|
||||
75\,\% der Daten unterhalb des 3. Quartils liegen.
|
||||
ihrere \determ[Quartil]{Quartile} charakterisiert werden. Zwischen den
|
||||
Quartilen liegen jeweils 25\,\% der Daten
|
||||
(\figref{quartilefig}). Perzentile erlauben eine feinere
|
||||
Einteilung. Das 3. Quartil ist das 75. Perzentil, da 75\,\% der Daten
|
||||
unterhalb des 3. Quartils liegen.
|
||||
|
||||
\begin{figure}[t]
|
||||
\includegraphics[width=1\textwidth]{quartile}
|
||||
@ -90,11 +91,11 @@ eine feinere Einteilung. Das 3. Quartil ist das 75. Perzentil, da
|
||||
normalverteilte Zufallszahlen.}
|
||||
\end{figure}
|
||||
|
||||
Box-Whisker Plots sind eine h\"aufig verwendete Darstellung um die
|
||||
Verteilung unimodaler Daten zu visualisieren und vergleichbar zu
|
||||
machen mit anderen Daten. Dabei wird um den Median eine Box vom 1. zum
|
||||
3. Quartil gezeichnet. Die Whiskers deuten den minimalen und den
|
||||
maximalen Datenwert an (\figref{boxwhiskerfig}).
|
||||
\determ{Box-Whisker Plots} sind eine h\"aufig verwendete Darstellung
|
||||
um die Verteilung unimodaler Daten zu visualisieren und vergleichbar
|
||||
zu machen mit anderen Daten. Dabei wird um den Median eine Box vom
|
||||
1. zum 3. Quartil gezeichnet. Die Whiskers deuten den minimalen und
|
||||
den maximalen Datenwert an (\figref{boxwhiskerfig}).
|
||||
|
||||
\begin{exercise}{boxwhisker.m}{}
|
||||
\tr{Generate eine $40 \times 10$ matrix of random numbers and
|
||||
@ -111,11 +112,12 @@ maximalen Datenwert an (\figref{boxwhiskerfig}).
|
||||
|
||||
\section{\tr{Histogram}{Histogramm}}
|
||||
|
||||
Histogramme z\"ahlen die H\"aufigkeit $n_i$ des Auftretens von
|
||||
$N=\sum_{i=1}^M n_i$ Messwerten in $M$ Messbereichsklassen $i$ (Bins).
|
||||
Die Klassen unterteilen den Wertebereich meist in angrenzende und
|
||||
gleich gro{\ss}e Intervalle. Histogramme k\"onnen verwendet werden, um die
|
||||
Wahrscheinlichkeitsverteilung der Messwerte abzusch\"atzen.
|
||||
\determ[Histogramm]{Histogramme} z\"ahlen die H\"aufigkeit $n_i$ des
|
||||
Auftretens von $N=\sum_{i=1}^M n_i$ Messwerten in $M$
|
||||
Messbereichsklassen $i$ (Bins). Die Klassen unterteilen den
|
||||
Wertebereich meist in angrenzende und gleich gro{\ss}e Intervalle.
|
||||
Histogramme k\"onnen verwendet werden, um die
|
||||
\determ{Wahrscheinlichkeitsverteilung} der Messwerte abzusch\"atzen.
|
||||
|
||||
\begin{exercise}{rollthedie.m}{}
|
||||
\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$
|
||||
\[ P(x_0<x<x_0+\Delta x) \approx p(x) \cdot \Delta x \; . \]
|
||||
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
|
||||
jeden positiven Wert annehmen und hat als Einheit den Kehrwert der
|
||||
Einheit von $x$.
|
||||
@ -192,12 +194,14 @@ Da die Wahrscheinlichkeit irgendeines Wertes $x$ Eins ergeben muss gilt die Norm
|
||||
\end{equation}
|
||||
Die gesamte Funktion $p(x)$, die jedem Wert $x$ einen
|
||||
Wahrscheinlichkeitsdichte zuordnet wir auch
|
||||
Wahrscheinlichkeitsdichtefunktion (``probability density function'',
|
||||
``pdf'', oder kurz ``density'') genannt. Die bekannteste
|
||||
Wahrscheinlichkeitsdichtefunktion ist die der Normalverteilung
|
||||
\determ{Wahrscheinlichkeitsdichtefunktion} (\enterm{probability
|
||||
density function}, \enterm[pdf|see{probability density
|
||||
function}]{pdf}, oder kurz \enterm[density|see{probability density
|
||||
function}]{density}) genannt. Die bekannteste
|
||||
Wahrscheinlichkeitsdichtefunktion ist die der \determ{Normalverteilung}
|
||||
\[ p_g(x) =
|
||||
\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$.
|
||||
|
||||
\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
|
||||
angeschaut. Bei mehreren Me{\ss}gr\"o{\ss}en, kann nach
|
||||
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
|
||||
(x-\langle x \rangle)(y-\langle y \rangle) \rangle}{\sqrt{\langle
|
||||
(x-\langle x \rangle)^2} \rangle \sqrt{\langle (y-\langle y
|
||||
\rangle)^2} \rangle} \]
|
||||
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
|
||||
Korrelationskoeffizienten von $+1$, antikorrelierte Daten einen
|
||||
Korrelationskoeffizienten von $-1$ und nicht korrelierte Daten einen
|
||||
|
Reference in New Issue
Block a user