Navigation

A) Kurvenanpassung

Kurvenanpassung dient dazu, Messdaten durch eine Kurve - also einen mathematisch beschreibbare Funktion - zu beschreiben. Die Idee dabei ist, dass die Messdaten systematisch von einem vorgegebenen Parameter abhaengen, aber statistisch um die zu erwartenden Werte streuen.

Graphisch traegt man die Werte des Parameters (z.B. Zeit, Duengemittelmenge, Sonnenscheindauer etc) auf der x-Achse auf, die Messwerte und die theoretischen Werte in Abhaengigkeit von diesem Parameter auf der y-Achse. Haeufig werden dabei die Messwerte als Punkte (oder andere Symbole) dargestellt, die theoretischen Werte als durchgezogene Kurve.

Diese Darstellung hilft dabei, die Idee der Interpolation zu verstehen:  Durch sie laesst sich abschaetzen, welche Messwerte zu erwarten gewesen waeren, wenn man zwischen den gewaehlten Paramerwerten weitere Messpunkte ermittelt haette.

Ausserdem ermoeglicht Kurvenanpassung auch Extrapolation, die Vorhersage, wie sich die Messwerte ausserhalb des getesteten Parameterbereichs verhalten.

Um eine Funktion zu finden, die die Abhaengigkeit der vorhandenen Messdaten vom variierten Parameter moeglichst gut beschreibt, moechte man eine Kurve finden, die moeglichst nah an den Messdaten liegt. Hierfuer (oder generell wenn man man versucht, Messdaten durch eine Bildungsregel (also ein Modell) zu beschreiben), braucht man ein Maß dafuer, wie gut das Modell die Daten widerspiegelt. Dadurch kann man verschiedene Modelle miteinander vergleichen und sich fuer das passendste entscheiden. Ein Standardverfahren, um die optimale Funktion (bzw das optimale Modell) zu bestimmen, ist die mittlere quadratische Abweichung zwischen den Messwerten und den geschaetzten Werten zu minimieren. (Prinzipiell gibt es aber noch viele andere Moeglichkeiten, die Guete eines Modells zu messen.) 

Hierzu wird zunaechst fuer jeden Datenpunkt das Residuum bestimmt, also die Differenz zwischen dem empirisch ermittelten Wert yi und der Schaetzung fuer diesen Wert (Schaetzwerte macht man gerne mit einem Dach kenntlich):

Bild

Die mittlere quadratische Abweichung zwischen allen Datenpunkten und der Schaetzung wird ermittelt als Summe der quadrierten Residuen, geteilt durch die Anzahl der Datenpunkte n:

 Bild

Was bewirkt das Quadrat?

  In diesem Kurs benutzen wir Polynome der Form

p(x)=p1xn+p2xn-1+...pnx+pn+1

 um den empirischen Daten eine Funktion anzupassen.
Wie sieht in dieser Darstellung eine Gerade mit Steigung 2.5 und y-Achsenabschnitt 7 aus?

Natuerlich lassen sich nicht alle Abhaengigkeiten durch Polynome adaequat darstellen. Welche Gegenbeispiele fallen Ihnen ein?

T8A1) Als Vorbereitung beschaeftigen wir uns zuerst mal mit dem Fehlermaß, der mittleren quadratischen Abweichung: Schreiben Sie eine Funktion, die einen Vektor gemessener und einen gleichlangen Vektor geschaetzter y-Werte bekommt und den mittleren quadratische Fehler zurueckgibt. 

*T8A2) Erweitern Sie Ihre Funktion so, dass Sie auch fuer eine Matrix von Messwerten (bei der jedem x-Wert mehrere y-Werte zugeordnet sind) und einen Vektor der geschaetzten y-Werte (fuer jeden x-Wert  einer) den mittleren quadratischen Fehler berechnet. 

T8A3) Jetzt zur eigentlichen Kurvenanpassung:
Wenn man Nervenzellen mit Strom reizt, reagieren sie darauf mit einer Folge von Aktionspotentialen.
Stellen Sie sich ein Neuron vor, das auf einen Stromimpuls von 1 nA mit einer Frequenz von 32 Sp/s reagiert, bei 2 nA produziert es 60 Sp/s.
a) Welche Antwortfrequenz erwarten Sie bei einer Strominjektion von 1.5 nA?
b) Wie lautet die lineare Gleichung fuer die Gerade, die beide Punkte verbindet?
c) Plotten Sie die Gerade und die beiden Datenpunkte

T8A4) Sie fuehren jetzt eine weitere Messung durch und stellen fest, dass bei 1.5 nA Strominjektion 44 Sp/s erzeugt werden.
a) Erweitern Sie Ihren plot um den neuen Datenpunkt.
b) Berechnen Sie den quadratischen vertikalen Abstand des Datenpunkts von der Geraden.
c) Schaetzen Sie "per Auge" eine Gerade, die alle drei Punkte gut annaehert und plotten sie zusammen mit den Datenpunkten.
d) Berechnen Sie Ihren mittleren quadratischen Fehler.
f) Benutzen Sie jetzt den Befehl polyfit, um die beste lineare Naeherung zu finden und polyval um den Fehler zu berechnen und die Gerade zu plotten.
[p,S]=polyfit(x,y,n) gibt im Vektor p=[p1 p2... pn pn+1] diejenigen Koeffizienten fuer die Gleichung

p(x)=p1xn+p2xn-1+...pnx+pn+1

zurueck, die den quadratischen Fehler zwischen Messwerten und geschaetzten Werten minimiert.
S ist eine Struktur, die polyval als Eingabe braucht (Strukturen behandeln wir morgen ausfuehrlicher).
y_schaetz = polyval(p,x,S) bekommt als Eingabe den von polyfit zurueckgegebenen Vektor p und die Struktur S, sowie einen Vektor von x-Werten. Fuer diese x-Werte berechnet polyval die gemaess der gefundenen Gleichung vorhergesagten y-Werte.
Versieht man die Funktion polyval mit einem zweiten Ausgabeparameter [y_schaetz,delta] = polyval(p,x,S) wird im Vektor delta mit angegeben, wie sicher diese Schaetzung ist. Im Bereich y_schaetz-delta bis y_schaetz+delta liegen 50% der Messpunkte.
Plotten Sie die von Matlab berechnete Kurve und deren delta-Werte als Fehlerbalken gemeinsam mit den Datenpunkten in eine Abbildung.
Wie gut war Ihre Schaetzung?
*g) Eigentlich braucht man die Funktion polyval nicht unbedingt fuer unsere Anwendung. Schreiben Sie eine Funktion, die Vektor p der Koeffizienten und den x-Vektor als Eingangsargumente bekommt und den resultierenden Vektor der Schaetzwerte zurueckgibt. Testen Sie, ob ihre Schaetzungen denjenigen der Funktion polyval entsprechen.

T8A5) Um das Neuron besser zu charakterisieren wurde eine Messreihe mit Stromreizen zwischen 0 und 3.5nA durchgefuehrt und jeweils 10 mal die Antwortrate gemessen. Die Reize sind unter [reizT8.mat] die resultierenden Raten unter [ratenT8.mat] abgespeichert.
a) Laden Sie Reize und Raten ein und plotten diese als einzelne Datenpunkte.
b) Finden Sie die beste lineare Naeherung fuer die Daten und plotten sie dazu.
c) Welche Rate erwarten Sie in Antwort auf einen 5nA starken Reiz? Welche
bei -2nA?

T8A6) Um unsere Extrapolation zu pruefen wurde die Messreihe erweitert, unter
[allereizeT8.mat] und [alleratenT8.mat] sind die entsprechenden Ergebnisse
gespeichert.
a) Plotten Sie alleraten gegen allereize als Einzelpunkte zusammen mit der bereits erstellten linearen Naeherung fuer den in T8A3) bearbeiteten Teil der Daten.
b) Erstellen Sie eine neue lineare Naeherung fuer alle Datenpunkte.
c) Wird die Naeherung besser, wenn man ein Polynom zweiten Gerades verwendet?
Wie sieht sie fuer Polynome hoeheren Gerades aus? Verwenden Sie zur Abschaetzyung der Guete der Naeherung
d) Eine alternative Moeglichkeit zur Fehlerabschaetzung ist, sich nach dem Aufruf von [p,S]=polyfit(x,y,n) den Wert S.normr ausgeben zu lassen (was es mit dieser seltsamen Schreibweise auf sich hat, sehen wir morgen). Dieser Wert gibt den Betrag (euklidische Norm) der Residuen an. 
e) Wieviele Koeffizienten werden gebraucht, um die Daten mit polyfit zufriedenstellend anzunaehern? Wann wird die Schaetzung nicht mehr besser, wenn man zusaetzliche Koeffizienten hinzunimmt?

T8A7) Berechnen Sie fuer jeden der Stromwerte, mit dem Messungen durchgefuehrt wurden, Mittelwert und Standardabweichung und plotten diesen mit errorbar in eine Abbildung. (Hinweis: fuer diese Aufgabe ist es guenstiger, aus dem langen Vektor der Messwerte eine Matrix zu machen. Das geht mit reshape.)

*T8A8) Mathematisch Interessierte koennten sich unter dem Stichwort "least squares fitting" ansehen, wie die Datenanpassung in Matlab vorgenommen wird und welche Moeglichkeiten die Curve Fitting Toolbox noch bietet.



B) Variation von Modellparametern

Das Ziel vieler Experimente ist es, eine Abhaengigkeit zwischen Parameterwerten und einer Messgroesse zu finden. Man versucht, diese Abhaengigkeit mathematisch durch eine Formel zu beschreiben. Dadurch kann man fuer gegebene Parameterwerte vorhersagen, welche Messwerte man erwartet. Dieses Vorgehen bezeichnet man auch als Simulation. Im Experiment kann dann ueberprueft werden, ob die Vorhersagen den tatsaechlichen Messungen entsprechen. Wenn dies nicht der Fall ist, muss das Modell (also die Formel zur Beschreibung der Abhaengigkeit) entsprechend angepasst werden. 

T8C1) Tatsaechlich handelt es sich bei den gerade verwendeten Daten nicht um echte Messungen, sondern um mit Rauschen ueberlagerte Punkte auf einer Sigmoidfunktion.
Sigmodidfunktionen spielen in der Biologie eine wichtige Rolle, da es kaum Beispiele fuer unbegrenzt lineare Abhaengigkeiten gibt.
Sigmoidfunktionen kann man mit der Formel y=a./(1+(exp(b*(c-x)))) darstellen.
a) Erzeugen Sie einen Vektor x, der von -10 bis 10 in kleinen Schritten laeuft.
Setzen Sie die Parameter a=120; b=1; c=2. Berechnen Sie y entsprechend der Sigmoidformel.
b) Plotten Sie die Sigmoidfunktion zusammen mit alleraten und Ihrem besten Fit.
Wie aehnlich sind sich die beiden Linien?
*c) Mit welcher Standardabweichung habe ich die Datenpunkte erzeugt?

T8C2) Es lohnt sich, die Sigmoidfunktion genauer kennenzulernen. Schreiben Sie ein Skript, in dem Sie systematisch die drei Parameter der Sigmoidfunktion variieren und die Auswirkung grafisch als Kurvenscharen darstellen. Was bewirken die drei Parameter? (Tipp: gehen Sie von den Werten a=1, b=1, c=1 aus, um die Effekte gut zu sehen.)

**T8C3) Schreiben Sie ein Programm, das fuer eine gegebene Menge an Messwerten eine Sigmoidfunktion bestimmt, die den mittleren quadratischen Abstand zu den Messwerten minimiert.  

C) Simulation von Zeitreihen

Biologische Prozesse sind fast immer Ablaeufe in der Zeit, bei denen der augenblickliche Zustand von der Vergangenheit abhaengt. Ausserdem spielt normalerseise Zufall eine grosse Rolle. Leider haben wir in diesem Kurs keine Zeit, ausfuehrlich auf diese Thematik einzugehen. Deshalb hier nur ein Beispiel fuer eine einfache Simulation eines solchen zeitabhaengigen Zufallsprozesses:

T8C1) Fuenf Ratten leben in einem Kaefig. Bei unserer Beobachtung interessieren wir uns im Moment nur fuer die Frage, wieviele der Ratten zu einem gegebenen Zeitpunkt schlafen und wieviele wach sind.

a) Schreiben Sie eine Simulation des schlaf-wach-Verhaltens der Ratten, in der sie jeweils einmal in der Stunde bestimmen, wieviele Ratten wach sind, basierend auf folgenden Regeln:

  •  Ausgangszustand: 3 Ratten sind wach, 2 schlafen
  • Wenn zu einem gegebenen Zeitpunkt nur 0 oder 1 Ratte wach ist, ist die Wahrscheinlichkeit fuer jede der Ratten 80%, dass sie bei der naechsten Messung schlaeft.
  • Wenn 2 oder mehr Ratten wach sind, ist die Wahrscheinlichkeit fuer jede Ratte nur 20%, dass sie bei der naechsten Messung schlaeft (denn die Tiere stoeren sich gegenseitig.)

b) Lassen Sie Ihre Simulation ueber einen langen Zeitraum laufen und protokollieren Sie die Anzahl der wachen Ratten. Wie gross ist der Prozentsatz der Zeit, den die Tiere schlafend verbringen?

**c) Jetzt machen wir die Sache mal etwas komplizierter: Die fuenf Ratten sind in Einzelkaefigen untergebracht, die nebeneinander stehen. Jetzt stoeren sich nur noch diejenigen Ratten gegenseitig, die direkt nebeneinander untergebracht sind. Nun sehen die Regeln so aus:

  • Ausgangszustand: Ratte 1, 3 und 5 sind wach, 2 und 4 schlafen
  • Wenn alle Nachbarn schlafen, ist die Wahrscheinlichkeit fuer jede Ratte 80%, dass sie bei der naechsten Messung schlaeft.
  • Wenn mindestens ein Nachbar wach ist, ist die Wahrscheinlichkeit fuer jede Ratte nur 20%, dass sie bei der naechsten Messung schlaeft

Lassen Sie Ihre Simulation ueber einen langen Zeitraum laufen und protokollieren Sie, welche der Ratten wann wach ist.
Wie gross ist der Prozentsatz der Zeit, den die einzelnen Tiere schlafend verbringen?
Gibt es Unterschiede zwischen den Tieren? Sind diese signifikant?
Stellen Sie den Verlauf des Schlaf-Wach-Musters der Tiere grafisch dar.

D) Hausaufgaben

T8H1) Sie impfen 20 Petrischalen jeweils mit 100 Einzellern und zaehlen 10 Stunden lang 10 mal pro Stunde,  wieviele Einzeller sich in der Petrischale befinden. Dadurch erhalten Sie folgende Matrix [populationen.mat]. Schauen Sie sich die Messpunkte grafisch an. Ermitteln Sie das Polynom, das das Wachstum der Population am besten beschreibt.

*T8H2) In den Neurowissenschaften ist es eine verbreitete Herangehensweise, die Zeitpunkte des Auftretens einzelner Aktionspotentiale als unwichtig anzusehen und nur die Spikerate (also Anzahl aufgetretener Aktionspotentiale in einem gegebenen Zeitfenster) zu betrachten, so wir das im Aufgabenblock T8A auch getan haben. Wenn dann das Auftreten einzelner Spikes simuliert werden soll, wird dies mit einem Zufallsprozess getan, dem sogenannten Poissonprozess. Ein Poissonprozess hat die Eigenschaft, das zu jedem Zeitschritt unabhaengig von allen anderen Zeitschritten entschieden wird, ob ein Ereignis stattfindet oder nicht. Wenn z.B. ein Neuron mit 10 Spikes/s feuert und eine Sampelrate von 1000Hz benutzt wird, ist die Wahrscheinlichkeit fuer das Auftreten eines Spikes in jedem Zeitschritt 1%.

a) Schreiben Sie eine Funktion, die als Eingabewerte eine Spikerate, die Samplerate  und die Laenge der gewuenschten simulierten Antwortspur bekommt und einen Vektor mit  der simulierten Antworten des Neurons zurueckgibt.

b) Erweitern Sie Ihre Funktion so, dass sie nicht einen festen Wert fuer die Spikerate als Eingabe bekommt, sondern einen Vektor, der die Spikerate fuer jeden Zeitpunkt der zu simulierenden Antwort angibt (die Laenge braucht man dann nicht mehr zu uebergeben, sie ergibt sich aus der Laenge des Vektors der Spikeraten).


 Zum 9. Kurstag


Webc+ybmafkwstetgxmvr: J4aggtuttxnnxua w2xKret1rzberg (ju6arttt5u7isa.k3kretzberg@uol.de) (Stand: 07.11.2019)