Tag 8
Modellbildung
A) Kurvenanpassung
B) Variation von Modellparametern
C) Fehlermasse
D) Hausaufgaben
A) Kurvenanpassung
T8A1) Wenn man Nervenzellen mit Strom reizt, reagieren sie darauf mit einer Folge von Aktionspotentiale.
Stellen Sie sich ein Neuron vor, das auf einen Stromimpuls von 1 nA mit einer Frequenz von 50 Sp/s reagiert, bei 2 nA produziert es 95 Sp/s.
a) Welche Antwortfrequenz erwarten Sie bei einer Strominjektion von 1.5 nA?
b) Wie lautet die lineare Gleichung, die beide Punkte verbindet?
c) Plotten Sie die Gerade und die beiden Datenpunkte
T8A2) Sie fuehren jetzt eine weitere Messung durch und stellen fest, dass bei 1.5 nA Strominjektion 70.5 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.
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.
Plotten Sie die von Matlab berechnete Kurve mit und deren Fehlerbalken zusammen mit den Daten.
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.
[ployersatz.m]
T8A3) 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?
[Loesung von Imke: T8A3_I.m]
T8A4) Um unsere Extrapolation zu pruefen wurde die Messreihe erweitert, unter
[allereize.mat] und [alleraten.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 Naehrung besser, wenn man ein Polynom zweiten Gerades verwendet?
Wie sieht sie fuer Polynome hoeheren Gerades aus?
d) Wieviele Koeffizienten werden gebraucht, um die Daten mit polyfit zufriedenstellend anzunaehren?
[polynomschleife.m]
[Hilfsfunktion fuer mittleren quadratischen Fehler: mitquadfehler.m]
T8A5) 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.)
[Loesung von Imke: T8A5_I.m]
B) Variation von Modellparametern
T8B2) 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+(b*exp(c-x))) darstellen.
a) Erzeugen Sie einen Vektor x, der von -10 bis 10 in kleinen Schritten laeuft.
Setzen Sie die Parameter a=200; b=0.5; c=0.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?
T8B1) 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.)
[sigmoidkurvenschar.m]
C) Fehlermasse
T8C1) Wenn man versucht, Messdaten durch eine Bildungsregel (also ein Modell) zu beschreiben, braucht man ein Mass dafuer, wie gut das Modell die Daten widerspiegelt. Dadurch kann man verschiedene Modelle miteinander vergleichen und sich fuer das passendste entscheiden. Wenn man als Kriterium fuer die Datenanpassung die quadrierte Differenz zwischen geschaetzten und tatsaechlichen Werten verwendet, ist es naheliegend, dieses Kriterium auch als Fehlermass anzugeben. Schreiben Sie eine Funktion, die einen Vektor der geschaetzten und einen Vektor der tatsaechlichen y-Werte als Eingabeargumente bekommt und den mittleren quadratischen Fehler zurueckgibt.
[mitquadfehler.m]
[Kurslosung: fehler_masse.m]
T8C2) Erweitern Sie Ihre Funktion so, dass Sie auch fuer eine Matrix von Messwerten, bei der jedem x-Wert mehrere y-Werte zugeordnet sind, den mittleren quadratischen Fehler berechnet.
[kursloesung: fehlermass_mm.m]
T8C3) Eine schnelle 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 die Norm der Abweichungen von tatsaechlichen und geschaetzten Werten an.
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 die Gleichung, die das Wachstum der Population am besten beschreibt.
[Kursloesung 1: T8H1_PS.m]
[Kursloesung 2: populationen_skript_katharina.m]
[Kursloesung 3: T8H1_Ma.m]
T8H2) Bei der Simulation biologischer Prozesse spielt Zufall oft eine grosse Rolle. 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 10Spikes/s feuert und eine Sampelrate von 1000Hz benutzt wird, ist die Wahrscheinlichkeit fuer das Auftreten eines Spikes in jedem Zeitschritt 1%.
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.
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).