108 lines
4.6 KiB
TeX
108 lines
4.6 KiB
TeX
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
\chapter{Simulations}
|
|
\label{simulationschapter}
|
|
\exercisechapter{Simulations}
|
|
|
|
The real power of computers for data analysis is the possibility to
|
|
run simulations. Experimental data of almost unlimited sample sizes
|
|
can be simulated in no time. This allows to explore basic concepts,
|
|
like the ones we introduce in the following chapters, with well
|
|
controlled data sets that are free of confounding pecularities of real
|
|
data sets. With simulated data we can also test our own analysis
|
|
functions. More importantly, by means of simulations we can explore
|
|
possible outcomes of our planned experiments before we even started
|
|
the experiment or we can explore possible results for regimes that we
|
|
cannot test experimentally. How dynamical systems, like for example
|
|
predator-prey interactions or the activity of neurons, evolve in time
|
|
is a central application for simulations. Computers becoming available
|
|
from the second half of the twentieth century on pushed the exciting
|
|
field of nonlinear dynamical systems forward. Conceptually, many kinds
|
|
of simulations are very simple and are implemented in a few lines of
|
|
code.
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
\section{Univariate data}
|
|
The most basic type of simulation is to draw random numbers from a
|
|
given distribution like, for example, the normal distribution. This
|
|
simulates repeated measurements of some quantity (e.g., weight of
|
|
tigers or firing rate of neurons). Doing so we must specify from which
|
|
probability distribution the data should originate from and what are
|
|
the parameters (mean, standard deviation, shape parameters, etc.)
|
|
that distribution. How to illuastrate and quantify univariate data, no
|
|
matter whether they have been actually measured or whether they are
|
|
simulated as described in the following, is described in
|
|
chapter~\ref{descriptivestatisticschapter}.
|
|
|
|
\subsection{Normally distributed data}
|
|
For drawing numbers $x_i$ from a normal distribution we use the
|
|
\code{randn()} function. This function returns normally distributed
|
|
numbers $\xi_i$ with zero mean and unit standard deviation. For
|
|
changing the standard deviation we need to multiply the returned data
|
|
values with the required standard deviation $\sigma$. For changing the
|
|
mean we just add the desired mean $\mu$ to the random numbers:
|
|
\begin{equation}
|
|
x_i = \sigma \xi_i + \mu
|
|
\end{equation}
|
|
|
|
\begin{figure}[t]
|
|
\includegraphics[width=1\textwidth]{normaldata}
|
|
\titlecaption{\label{normaldatafig} Generating normally distributed
|
|
data.}{With the help of a computer the weight of 300 tigers can be
|
|
measured in no time using the \code{randn()} function (left). We
|
|
then even now the population distribution, its mean and standard
|
|
deviation from which the simulated data values were drawn (red
|
|
line, right).}
|
|
\end{figure}
|
|
|
|
\begin{exercise}{normaldata.m}{normaldata.out}
|
|
First, read the documentation of the \varcode{randn()} function and
|
|
check its output for some (small) input arguments. Write a little
|
|
script that generates $n=100$ normally distributed data simulating
|
|
the weight of Bengal tiger males with mean 220\,kg and standard
|
|
deviation 30\,kg. Check the actual mean and standard deviation of
|
|
the generated data. Do this, let's say, five times using a
|
|
for-loop. Then increase $n$ to 10\,000 and run the code again. It is
|
|
so simple to measure the weight of 10\,000 tigers for getting a
|
|
really good estimate of their mean weight, isn't it? Finally plot
|
|
from the last generated data set of tiger weights the first 1000
|
|
values as a function of their index.
|
|
\end{exercise}
|
|
|
|
\subsection{Uniformly distributed data}
|
|
\code{rand()}
|
|
|
|
\subsection{Other distributions}
|
|
|
|
\subsection{Random integers}
|
|
\code{randi()}
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
\section{Static nonlinearities}
|
|
|
|
Example: mechanotransduciton!
|
|
|
|
draw (and plot) random functions (in statistics chapter?)
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
\section{Dynamical systems}
|
|
|
|
\begin{itemize}
|
|
\item euler forward, odeint
|
|
\item introduce derivatives which are also needed for fitting (move box from there here)
|
|
\item Passive membrane
|
|
\item Add passive membrane to mechanotransduction!
|
|
\item Integrate and fire
|
|
\item Fitzugh-Nagumo
|
|
\item Two coupled neurons? Predator-prey?
|
|
\end{itemize}
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
\section{Summary}
|
|
with outook to other simulations (cellular automata, monte carlo, etc.)
|
|
|
|
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
\printsolutions
|