Navigation

Tag 7: Statistik

Aktualisierte Version vom 27.8.2010! 

pdf-Version des Skripts: Tag7.pdf

Word-Version des Skripts: Tag7.docx,, Tag7.doc 

Downloads:

T7A4) und T7C1) [pellets.mat]

*T7A4b) und T7C1) [pellets2.mat]

T7B1) [rt_VP5.mat]

*T7B4) [rt_all.mat]

*T7B6)  [sbkerne.mat]

T7H1) [spikedaten_kurz.mat]

*T7H4) [vogelfang.m] [vogeltabelle_insa.m]

Themen: 

A) Standardfehler des Mittelwerts

B) Median und Quantile

C) Signifikanztest

D) Hausaufgabe
 

A) Standardfehler des Mittelwerts 

Die Berechnung von Mittelwert und Standardabweichung ist die wahrscheinlich am häufigsten benutzte Methode der Datenanalyse. Allerdings ist bei ihrer empirischen Berechnung Vorsicht geboten:

Man kennt nur eine begrenzte Stichprobe, die nicht unbedingt die gesamte Population repräsentieren muss. Je größer diese Stichprobe ist, desto sicherer kann man sich sein, den tatsächlichen Werten der ganzen Population nahe zu kommen.

Um abzuschätzen, wie gut verwendete Stichprobengrößen eine Population charakterisieren, verwendet man den Standardfehler des Mittelwerts (standard error of the mean, SEM). Dieses Maß gibt die Streuung der Mittelwerte von verschiedenen, zufällig aus der Population gezogenen gleich großen Stichproben um den Erwartungswert (den wahren Populationsmittelwert) an. Der Standardfehler der Mittelwerte ist definiert als

 Bild

Wobei n die Größe der Stichproben angibt (nicht die Anzahl der Stichproben!) und σ die Standardabweichung der Verteilung (diese ist normalerweise nicht bekannt und muss wie oben beschrieben empirisch geschätzt werden).

T7A1) Sie haben die Aufgabe, das Fressverhalten von Mäusen zu charakterisieren. Dazu  füttern Sie die Mäuse ausschließlich mit genormten Futterpellets und zählen täglich, wie viele Pellets aus dem Futterbehälter verschwinden. Schreiben Sie eine Funktion, die diese Datenerhebung simuliert, indem sie zufällig die Anzahl der von einer Maus gefressenen Pellets ermittelt und zurückgibt. Dabei soll der Mittelwert der gesamten Mäusepopulation 30 Pellets und die Standardabweichung 5  Pellets betragen.

T7A2) Benutzen Sie die Funktion aus T7A1 in einer weiteren Funktion, die als Eingabeargument die Stichprobengröße bekommt und als Ausgabe die errechneten Werte für Mittelwert und Standardabweichung zurückgibt. Außerdem soll diese Funktion die Verteilung der Werte grafisch als Histogramm darstellen.

Lassen Sie diese Funktion für verschiedene Stichprobengrößen laufen, z.B. N=1; N=3; N=5; N=10; N=20; N=50; N=100; N=1000. Wie wirkt sich die Stichprobengröße auf Mittelwert, Standardabweichung und Histogramm aus?

*T7A3) Programmieren Sie eine Funktion, die für Sie eine ganze Messreihe des Mäusefressverhaltens steuert. Die Funktion bekommt als Eingabeargumente die jeweilige Stichprobengröße (also wie viele Mäuse pro Tag beobachtet werden sollen) und die Anzahl der Stichproben (also an wie vielen Tagen gezählt werden soll) und liefert als Rückgabewert den Standardfehler des Mittelwerts. Außerdem zeigt sie die Verteilung der erzielten Mittelwerte als Histogramm grafisch an.

Probieren Sie diese Funktion für verschiedene Kombinationen aus Stichprobengröße und Anzahl der Stichproben aus, z.B. 3 Stichproben mit 3 Tieren, 10 Stichproben mit 3 Tieren, 3 Stichproben mit 10 Tieren, 10 Stichproben mit 10 Tieren, 10 Stichproben mit 100 Tieren, 100 Stichproben mit 10 Tieren, 100 Stichproben mit 100 Tieren, 1000 Stichproben mit 10 Tieren, 10 Stichproben mit 1000 Tieren. Wie wirken sich die beiden Parameter auf den Standardfehler des Mittelwerts aus? Wie auf die Verteilung der Mittelwerte?

T7A4) Die vorige Aufgabe war insofern unrealistisch, als alle Tiere statistisch gleich viel Hunger hatten. Natürlich gibt es aber bei echten Tieren individuelle Unterschiede. In folgender Matrix sind die Messungen von 30 Tieren an 30 Tagen dargestellt, wobei die Werte eines Tieres jeweils in der gleichen Zeile stehen: [pellets.mat]

Schreiben Sie ein Skript, das die Mittelwerte und Standardabweichungen einerseits zwischen den Tagen, andererseits zwischen den Tieren berechnet und diese in zwei Abbildungen grafisch darstellt. Der Befehl, um eine Kurve mit Fehlerbalken zu zeichnen heißt errorbar(x,mw,standabw), wobei mw der Vektor der Mittelwerte ist, der gegen den Vektor x aufgetragen wird und standabw ist der Vektor der Standardabweichungen, die als symmetrische Balken zu beiden Seiten des Mittelwerts aufgetragen werden. Inwiefern unterscheiden sich die Ergebnisse für die beiden Arten, Mittelwerte und Standardabweichungen zu berechnen (zwischen Tagen vs. zwischen Tieren)? Berechnen Sie für beide Wege den resultierenden Standardfehler des Mittelwerts.

T7A4b*)Führen Sie die gleichen Berechnungen noch einmal für folgende Messreihe durch [pellets2.mat], in der ebenfalls die Daten eines Tieres jeweils in einer Zeile stehen. Was sind die Unterschiede?

B) Median und Quantile

Zwar gibt es viele Datensätze, die sich gut durch Normalverteilungen erklären lassen. Aber bei manchen Datensätzen ist diese Bedingung eben doch nicht erfüllt, sondern man misst “schiefe” Verteilungen. Das kommt insbesondere dann zustande, wenn es im Datensatz Ausreißer gibt (also besonders große oder besonders kleine Werte). Diese verfälschen den Mittelwert. Deshalb ist es in diesen Fällen häufig ratsamer, statt des Mittelwertes den Median zu berechnen, um den “typischen“ Messwert zu betrachten. Der Median gibt denjenigen Wert an, bei dem die Hälfte der Messwerte kleiner und die andere Hälfte größer ist, unabhängig davon, wie groß oder klein die Werte sind. Diese Sortierung der Daten nach Größe und anschließende Unterteilung in Klassen mit gleich vielen Datenpunkten nennt man Quantile. Neben dem Median (Aufteilung in 50%-Stücke) spielen insbesondere die Quartile (Aufteilung in 25%-Stücke) und Perzentile (Aufteilung in 1%-Stücke) eine Rolle. Beispielsweise sind das 3% und das 97%-Perzentil übliche Größen für die Auswertung, um zu entscheiden, ob ein Messwert “ganz normal“ oder “auffällig“ ist.

In Matlab gibt es für den Median den Befehl m=median(x). Für allgemeine Perzentile ist die Syntax Z=prctile(x,p) mit Datenvektor x und gewünschter Prozentzahl p. Allerdings ist diese Funktion nicht im Standardumfang von Matlab enthalten, sondern in der Statistics Toolbox. (Sie lässt sich aber einfach selber schreiben, s.u.)

T7B1) Schiefe Verteilungen sieht man oft bei der Messung von Reaktionszeiten. Sehen Sie sich die Verteilung der Reaktionszeiten (in ms) dieser Versuchsperson an: [rt_VP5.mat] (Hinweis: wenn Sie ein Histogramm mit vielen Klassen nehmen, sehen Sie mehr!) Warum ist das keine Normalverteilung?

T7B2) Berechnen Sie für den gleichen Datensatz den Mittelwert und den Median der Reaktionszeiten. Warum unterscheiden sich diese so stark?

T7B3) Genauere Betrachtung der Daten wird ihnen zeigen, dass es einen einzelnen extrem großen Wert gibt. Löschen Sie diesen aus dem Datensatz und vergleichen Sie noch einmal Mittelwert und Median.

*T7B4) Wiederholen Sie die Betrachtung von Verteilung, Mittelwert und Median noch einmal für den gesamten Datensatz [rt_all.mat], bei dem jeweils 180 Reaktionszeiten von 24 Versuchspersonen gemessen wurden. Betrachten Sie dabei zunächst den gesamten Datensatz gemeinsam, ohne auf individuelle Unterschiede zwischen den Versuchspersonen zu achten.

*T7B5) Machen Sie eine Statistik darüber, wie stark sich Mittelwerte und Mediane für die Versuchspersonen unterscheiden. Sollte man hier mitteln?

*T7B6) Wie stark unterscheiden sich Mittelwerte und Mediane bei dem Beispiel der Sonnenblumenkerne [sbkerne.mat] ?

*T7B7) Schreiben Sie eine Funktion perzentil, die als Eingabeparameter einen Datenvektor und eine Zahl N bekommt und den Wert des N%-Perzentils des Datenvektors zurückgibt.

C) Signifikanztest

Sehr häufig ist bei der Auswertung biologischer Daten nach Signifikanz gefragt. Wir haben im Kurs leider keine Zeit dafür umfangreich auf Signifikanztests und ihren mathematischen Hintergrund einzugehen. Interessierte können aber mit zwei einfachen Beispielen die Anwendung von Signifikanztests in Matlab ausprobieren. Signifikanztests sind nicht im Standard-Programmumfang von Matlab enthalten, sondern finden sich in der Toolbox "statistics" (die hoffentlich auf allen Rechnern im Raum installiert sein sollte).

Das erste Beispiel ist der t-Test für den Erwartungswert einer normal verteilten Stichprobe. Bei diesem Test ist die Nullhypothese, dass eine Menge von Messwerten (unabhängige, normal verteilte Zufallsvariablen) einer Verteilung mit einem gegebenen Mittelwert μ0 und unbekannter Varianz entstammt, also dass μ0 = μ. Dafür wird mit dem empirischen Stichprobenmittelwert -Bild (s.o.)- und der empirischen Stichprobenstandardabweichung s (s.o., dort als sx bezeichnet) die Testprüfgröße t berechnet:

 Bild

Die Nullhypothese μ0 = μ wird zum Signifikanzniveau α abgelehnt wenn

 Bild

also der Betrag von t größer dem (1-α/2)-Quantil der t-Verteilung mit n−1 Freiheitsgraden (diese sind normalerweise in Tabellen abgelegt und Matlab natürlich bekannt). In Matlab wird dieser Test durch den Befehl ttest umgesetzt (die Interpretation nimmt Matlab einem allerdings nicht ab.)

Die Syntax lautet h=ttest(vektor,mittelwert) bzw. h=ttest(vektor,mittelwert,alpha), der Rückgabewert ist 1 wenn die Nullhypothese abgelehnt wird (also wenn der erwartete und der  empirische Mittelwert verschieden sind), sonst ist er 0.

Das zweite Beispiel ist ein t-Test für zwei unabhängige Stichproben, ttest2. Bei diesem lautet die Nullhypothese, dass zwei Stichproben x und y zwei Normalverteilungen mit gleichem Mittelwert (aber eventuell verschiedener Varianz) entstammen, also H0: μx = μy. Hierzu wird mit den empirischen Stichprobenvarianzen und Stichprobenmittelwerten die sogenannte gewichtete Varianz

Bild 

bestimmt, um damit die Prüfgröße

 Bild

zu berechnen. Mittels der Ungleichung

 Bild

wird überprüft, ob die Nullhypothese zum Signifikanzniveau α abgelehnt werden kann und somit von einem signifikanten Unterschied der beiden Stichproben ausgegangen werden kann.

Die Syntax lautet h=ttest2(vektor1,vektor2) für einen Test auf 5% Signifikanzniveau bzw. h=ttest2(vektor1,vektor2,alpha) für ein beliebiges Signifikanzniveau alpha.

 

T7C1) Ein superschlauer Futtermittelhersteller behauptet, dass eine Maus im Durchschnitt 32 Futterpellets am Tag frisst.

a) Überprüfen Sie diese Aussage für ein Signifikanzniveau von 5% für Ihre gesamte Mäusepopulation anhand der Messdaten [pellets] und [pellets2].

b) Wie sieht es bei einem Signifikanzniveau von 10% aus?

*c) Trifft die Behauptung auf irgendeine der Mäuse zu? Für welches Niveau?

T7C2) Untersuchen Sie für einen Ihrer beiden Datensätze:

a) Haben die ersten beiden Mäuse signifikant unterschiedliche Mengen gefressen?

b) Sind am ersten und am fünften Tag von der gesamten Mäusegruppe signifikant unterschiedlich viele Pellets gefressen worden?

*c) Gibt es Unterschiede zwischen irgendeinem Mäusepaar?

*d) Gibt es Unterschiede zwischen irgendeinem Paar von Tagen?

D) Hausaufgabe

T7H1) Folgende Daten wurden im Rahmen eines Fortgeschrittenen-Praktikums gewonnen: [spikedaten_kurz.mat]. Es handelt sich dabei um intrazelluläre Messungen des Membranpotentials eines Blutegelneurons. Es wurden 10 Antworten dieser Zelle auf einen jeweils gleichen Reiz aufgezeichnet, einen Strompuls, dessen Zeitverlauf (in nA) im gleichzeitig gespeicherten Vektor stimulus abgelegt ist. Das Neuron antwortet auf diesen Strompuls mit einer Depolarisation des Membranpotentials, die mit sogenannten "spikes" (Aktionspotentialen, immer ähnlich aussehenden Ausschlägen der Spannung) überlagert ist. Die Daten wurden mit einer Frequenz von 10000 Datenpunkten pro Sekunde aufgenommen.

a) Schreiben Sie ein Skript, um sich alle Antwortspuren gemeinsam mit dem Zeitverlauf der Reizung anzusehen (das darf auch nacheinander sein).

b) Legen Sie "per Augenmaß" eine Schwelle fest, mit der sich die Aktionspotentiale finden lassen. Achtung: jeweils am Ende des Strompulses gibt es in der Antwortspur ein Artefakt. Dieses wollen wir möglichst nicht als Aktionspotential erkennen.

**T7H2) Schreiben Sie eine Funktion, die als Eingabeargumente die Matrix mit den Messdaten der letzten Aufgabe und einen Schwellwert bekommt und als Ausgabe einen Vektor liefert, wie viele Spikes in den einzelnen Durchläufen jeweils ausgelöst wurden. (Die Schwierigkeit an dieser Aufgabe ist, dass Blutegel-spikes eine zeitliche Länge von mehreren Millisekunden besitzen aber jeweils nur einmal gezählt werden sollen). Bestimmen Sie damit Mittelwert und Standardabweichung der Spikeanzahlen.

*T7H3) Etwas für mathematisch Interessierte: Häufig sehen Messdaten zunächst recht kompliziert verteilt aus. Bei genauerer Untersuchung stellt sich dann manchmal heraus, dass sie aus zwei überlappenden Verteilungen stammen. Beispielsweise überlappen sich die Verteilungen der Körpergrößen von Männern und Frauen (denn es gibt Frauen, die größer sind als viele Männer).

a) Stellen Sie sich vor, Sie bekommen die Aufgabe, aus der Körpergröße auf das Geschlecht zurückzuschließen und kennen die Verteilungen der Körpergrößen. Für solche Aufgaben wird oft das Prinzip "Maximum Likelihood" verwendet: Tippe auf die Verteilung mit der höheren Wahrscheinlichkeit für den gegebenen Wert. Mit dieser Idee lässt sich ein Schwellwert bestimmen, unterhalb dessen man auf die Verteilung mit dem kleineren Mittelwert tippen sollte. Dieser Schwellwert ist der Schnittwert der Verteilungen. Erzeugen Sie sich zwei Zufallszahlen, die verschiedenen Normalverteilungen entstammen, die eine mit Mittelwert 5 und Standardabweichung 2, die andere mit Mittelwert 3 und Standardabweichung 1. Berechnen Sie mit der oben aufgeführten Formel für jede der beiden Zufallszahlen die Wahrscheinlichkeiten, dass sie der einen oder der anderen Verteilung entstammten. Erweitern Sie dieses Programm für zwei Vektoren aus Zufallszahlen aus den oben genannten Verteilungen. Berechnen Sie den Anteil der Zufallszahlen, die nach dem Maximum Likelihood Prinzip der falschen Verteilung zugeordnet würden. Schauen Sie sich die beiden Verteilungen grafisch an. Wo sollte man die Grenze ziehen? Variieren Sie Mittelwerte und Standardabweichungen der beiden Verteilungen. Wann gibt es mehr und wann weniger Fehler?

**b) Schreiben Sie eine Funktion, die für die Angabe von zwei Mittelwerten und zwei Standardabweichungen ausgibt, bei welchem Wert man die Grenze ziehen sollte.

*T7H4) Generieren Sie sich mit dem zu T4H7 entstandene Programm oder der Musterlösung vogeltabelle_insa.m 10 Vogelfang-Matrizen (dafür brauchen Sie zusätzlich das darin aufgerufene Unterprogramm [vogelfang.m]) und berechnen Sie für jede Kombination von Art und Geschlecht jeweils Mittelwerte und Standardabweichungen des Gewichts, sowie den Standardfehler Ihrer Gewichtsmessungen.
Ist das Gewicht der Arten signifikant verschieden?
Ist das Gewicht der Geschlechter einer der Arten signifikant verschieden?

 

Zum 8. Kurstag



Weqhbmaster:bkg Juznvtta Kknretzberg/jh (jutta.kkdrretzberg@uvsgol.dewaw7) (Stand: 07.11.2019)