T-test bei Gammaverteilung?!

T-test bei Gammaverteilung?!

Beitragvon Ednukru » Di 23. Mai 2017, 14:43

Hallo zusammen,

Ich hoffe ich bin hier mehr oder weniger im richtigen Forenbereich.
Ich hatte auf mein Problem zunächst einen T-Test angewandt, was sich aber im Nachhinein als falsch herausstellte, da die Daten nicht normalverteilt sondern in einer Gammaverteilung vorliegen. Ich versuche mal alles aufzudröseln, damit verständlich ist, was ich überhaupt möchte.

Ich habe zunächst einen Random Forest Datensatz trainiert. Dieser soll dazu dienen, Daten aus neuen Datensätzen zu klassifizieren. Bei dem Training mit dem Datensatz ergeben sich für jede Klasse Wahrscheinlichkeiten der Zuordnung zu der richtigen Klasse, die zwischen Null und Eins liegen wobei eine Tendenz in richtung Eins vorliegt.
Nun war die Idee, Daten zu identifizieren, die wahrscheinlich nicht in eine der trainierten Klassen gehören - also in eine neue, unbekannt Klasse. Versucht wurde das über die Wahrscheinlichkeit zur Zuordnung zu einer bestimmten Klasse. Durch den Trainingsdatensatz habe ich eine natürliche Bandbreite an Wahrscheinlichkeiten ermittelt, mit der Daten als Korrekt klassifiziert gelten. Über den T Test wollten wir nun die Daten identifizieren, die signifikant von den natürlichen Wahrscheinlichkeiten abweichen und somit als falsch klassifiziert gelten.
Das Problem an der Sache ist, dass dadurch auch Daten rausfallen, die eine Wahrscheinlichkeit der Zuordnung haben, die höher ist, als die natürlich erhobene Wahrscheinlichkeit. Der Trainingsdatensatz ist einer natürlichen Variabilität unterworfen, weshalb eine Zuordnungswahrscheinlichkeit von Eins, schlicht nicht vorkommt. Im Testdatensatz sind aber durchaus Daten enthalten, die so gut passen, dass der Wert über der natürlichen Bandbreite liegt. Der T-Test hat in diesen Fällen dann ergeben, dass eine signifikante Abweichung vorliegt und es sich nach unserer Auslegung, nicht um die klassifiziert Art handelt.
Somit haben wir festgestellt, dass es sich bei dem T-Test um den falschen Test für unsere Zwecke handelt - oder liege ich da falsch?
Gibt es eine Variante des T Tests (für Gammaverteilte Daten), der die Tatsache, dass es eine Tendenz zur oberen Grenze gibt mit einbezieht?

Ich hoffe man versteht was ich meine und, dass vielleicht jemand eine Lösung für mein Problem kennt.

Grüße
Sven
Ednukru
Grünschnabel
Grünschnabel
 
Beiträge: 3
Registriert: Fr 22. Jul 2016, 09:49
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: T-test bei Gammaverteilung?!

Beitragvon bele » Di 23. Mai 2017, 16:10

Hallo Sven,

ich verstehe nicht alles, was Du da schreibst. Ich meine aber herauszuhören, dass Du unüberwachtest Lernen versuchst: Dein Random Forest ergibt die Wahrscheinlichkeit einer Zuordnung als Wert zwischen 0 und 1 und Du glaubst nun, dass es dort eine Gruppe in der Nähe von 0, eine Gruppe in der Nähe von 1 und eine Gruppe in der Mitte dazwischen geben müsste. Die mittlere Gruppe heißt "unbekannte Klasse". Es geht darum, die Gruppe in der Mitte richtig zu beschreiben und sie von den andern beiden zu trennen.

Der natürliche Weg wäre dann nicht die Vergewaltigung eine Unterschiedstests als Mittel für unüberwachtes Lernen, sondern ein Verfahren des unüberwachten Lernens. Für mich klingt das so, als ob Du versuchst, mit dem t-Test eine Clusteranalyse zu imitieren. Hast Du mal an eine Cluster-Analyse gedacht?

LG,
Bernhard
----
`Oh, you can't help that,' said the Cat: `we're all mad here. I'm mad. You're mad.'
`How do you know I'm mad?' said Alice.
`You must be,' said the Cat, `or you wouldn't have come here.'
(Lewis Carol, Alice in Wonderland)
bele
Schlaflos in Seattle
Schlaflos in Seattle
 
Beiträge: 5743
Registriert: Do 2. Jun 2011, 23:16
Danke gegeben: 15
Danke bekommen: 1339 mal in 1326 Posts

Re: T-test bei Gammaverteilung?!

Beitragvon Ednukru » Mi 24. Mai 2017, 08:16

Guten Morgen Bernhard,

Ich versuch es nochmal ein wenig anders zu erklären und aufzuzeigen wo das Problem liegt.

Ich arbeite mit Tieren aus der Natur und habe einen großen Datensatz, der Bereits viele Arten enthält und nutze diese fürs supervised learning mit Random Forest. Nun kommt es in meinen Proben aber auch mal vor, dass ich Arten darin habe, die nicht im Originaldatensatz enthalten sind weil ich sie vorher schlicht noch nicht gefunden habe. Wenn ich nun aber mein Random Forest Model zum klassifizieren eines neuen Datensatzes nutze, der eben auch unbekannte Arten enthält, werden diese unbekannten Arten einer Art aus dem Model zugeordnet. Ich erhalte damit eine falsch positive Klassifizierung. Generell ist das natürlich etwas womit man umgehen muss, aber ich wäre gern in der Lage zumindest die Arten, die sich vollkommen von denen aus dem Model unterscheiden, zu erkennen. Und dafür wollte ich gern die Wahrscheinlichkeit der Zuordnung zu einer Klasse nutzen. Die Idee ist, dass neue Arten zwar einer Klasse zugeordnet werden, dies aber mit einer geringeren Wahrscheinlichkeit der klassifizierung. In einem automatisch generierten Datensatz hat das mit dem T-test auch sehr gut geklappt (weil dieser zufällig normalverteilt war). Beim wiederholen mit einem natürlichen Datensatz, hat es dann halt aus oben genannten Gründen nicht mehr geklappt.
Clusteranalysen habe ich ebenfalls genutzt. Diese sind aber für meine Daten aber einfach nichtmehr geeignet. Ich arbeite mit Datensätzen, die mehrere tausend Tiere enthalten. Die Random Forest Analyse hat sich einfach als weniger Fehleranfällig gezeigt, weil sie auch mit der natürlichen Variabilität aufgrund des supervised learnings besser umgehen kann. Außerdem ist der rechnerische Aufwand deutlich geringer. Obwohl ich Zugriff auf ein ganz guten externen Server habe, dauert eine Clusteranalyse mit einem solche großen Datensatz + Bootstrapping unheimlich lange.


Grüße
Sven
Ednukru
Grünschnabel
Grünschnabel
 
Beiträge: 3
Registriert: Fr 22. Jul 2016, 09:49
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: T-test bei Gammaverteilung?!

Beitragvon bele » Mi 24. Mai 2017, 08:45

Hallo Sven,

ich versuche nochmal, was ich bis jetzt verstanden habe: Du steckst eine Menge Tiere in einen Random Forest, der Dir am Schluss für jedes Tier eine Wahrscheinlichkeit zwischen 0 und 1 liefert, dass das Tier zu einer bestimmten Gruppe gehört. Diese Wahrscheinlichkeiten nimmst Du als gammaverteilt an und zwar so, dass für die bekannten Arten, der Gipfel der Gammaverteilung recht nahe an 1 liegt. Du suchst nun einen Grenzwert unterhalb dieses Gipfels, ab dem Wahrscheinlichkeiten atypisch sind, so atypisch, dass sie als Ausreißer gelten können.

Dazu könnte man an die Wahrscheinlichkeiten eine Gamma-Funktion anpassen. Für diese Gammafunktion gibt es kummulierte Wahrscheinlichkeiten (Fläche unter der Kurve) und man könnte den Grenzwert bestimmen, unterhalb dem nur noch 1% der gammaverteilten Werte liegen, wenn man mit 1% unberücksichtigter Tierarten rechnet.

Was ich nicht verstehe: Dein Random-Forest soll doch manchmal Werte nahe 0 und manchmal Werte nahe 1 ergeben - ich dachte, dass es nur um die mittleren Werte zwischen 0 und 1 geht. Wie Du das mit einem t-Test erledigt hast, kann ich mir gerade nicht vorstellen. Zuletzt hast Du nur von den richtig-positiv klassifizierten und den falsch-positiv klassifizierten aber nicht über die richtig-negativ klassifizierten gesprochen. Kannst Du die erkennen, oder müssen die auch abgegrenzt werden?


LG,
Bernhard
----
`Oh, you can't help that,' said the Cat: `we're all mad here. I'm mad. You're mad.'
`How do you know I'm mad?' said Alice.
`You must be,' said the Cat, `or you wouldn't have come here.'
(Lewis Carol, Alice in Wonderland)
bele
Schlaflos in Seattle
Schlaflos in Seattle
 
Beiträge: 5743
Registriert: Do 2. Jun 2011, 23:16
Danke gegeben: 15
Danke bekommen: 1339 mal in 1326 Posts

Re: T-test bei Gammaverteilung?!

Beitragvon Ednukru » Mi 24. Mai 2017, 10:45

bele hat geschrieben:Hallo Sven,

ich versuche nochmal, was ich bis jetzt verstanden habe: Du steckst eine Menge Tiere in einen Random Forest, der Dir am Schluss für jedes Tier eine Wahrscheinlichkeit zwischen 0 und 1 liefert, dass das Tier zu einer bestimmten Gruppe gehört. Diese Wahrscheinlichkeiten nimmst Du als gammaverteilt an und zwar so, dass für die bekannten Arten, der Gipfel der Gammaverteilung recht nahe an 1 liegt. Du suchst nun einen Grenzwert unterhalb dieses Gipfels, ab dem Wahrscheinlichkeiten atypisch sind, so atypisch, dass sie als Ausreißer gelten können.


Genau das.
Zuvor hatten wir halt versucht mit dies mit dem T Test heraus zu finden. Signifikante Abweichung = Atypisch = Falsch positiv.

bele hat geschrieben:Dazu könnte man an die Wahrscheinlichkeiten eine Gamma-Funktion anpassen. Für diese Gammafunktion gibt es kummulierte Wahrscheinlichkeiten (Fläche unter der Kurve) und man könnte den Grenzwert bestimmen, unterhalb dem nur noch 1% der gammaverteilten Werte liegen, wenn man mit 1% unberücksichtigter Tierarten rechnet.

Ich glaube, dass das genau das ist, was ich suche. Den Grenzwert könnte man dann wahrscheinlich auch selbst wählen oder?

bele hat geschrieben:Was ich nicht verstehe: Dein Random-Forest soll doch manchmal Werte nahe 0 und manchmal Werte nahe 1 ergeben - ich dachte, dass es nur um die mittleren Werte zwischen 0 und 1 geht. Wie Du das mit einem t-Test erledigt hast, kann ich mir gerade nicht vorstellen. Zuletzt hast Du nur von den richtig-positiv klassifizierten und den falsch-positiv klassifizierten aber nicht über die richtig-negativ klassifizierten gesprochen. Kannst Du die erkennen, oder müssen die auch abgegrenzt werden?
LG,
Bernhard


Werte nahe 0 sollen dann herauskommen, wenn ein Tier zwar einer Klasse zugeordnet wird, dieses Tier aber garnicht zu dieser Klasse gehört.
Werte nahe 1 sollen dann herauskommen, wenn ein Tier tatsächlich einer der trainierten Klassen angehört.
Mit dem T test haben wir geschaut, ob der Wert, den wir für ein neues Tier erhalten haben (Also die wahrscheinlichkeit der Zuordnung zu einer Klasse) in die Grundgesamtheit der empirisch ermittelten Werte passt oder hiervon signifikant abweicht (so habe ich das verstanden).

bele hat geschrieben:Zuletzt hast Du nur von den richtig-positiv klassifizierten und den falsch-positiv klassifizierten aber nicht über die richtig-negativ klassifizierten gesprochen. Kannst Du die erkennen, oder müssen die auch abgegrenzt werden?
LG,
Bernhard


Die Falsch negative können wir nicht erkennen. In unseren Tests (mit durchweg bekannten Arten) kam sowas, meines Erachtens nach auch nicht vor. Falsch negative Klassifizierungen sollten durch einen guten Trainingsdatensatz ausgeschlossen werden.

Ich hänge mal noch zwei Histogramme an von der Verteilung der Zurodnungswahrscheinlichkeiten von zwei Arten in einem Testdatensatz an (die Histogramme zeigen die Wahrscheinlichkeiten der Zuordnung eines Testdatensatze gegen das trainiert Random Forest Model). Bei dem ersten Histogramm kann man sehr gut sehen, dass die Werte Richtung 1 tendieren (große Stichprobengröße im Model als auch im Testdatensatz). Während bei der Zweiten Art nur Zuordnungswahrscheinlichkeiten bis etwa 0.8 auftreten. Bei dieser Art könnte man eine Normalverteilung annehmen, die ja tatsächlich auch vorliegt (Shapiro-Wilk Test). Durch einen größeren Stichprobenumfang erkennt man dann aber, dass diese eigentlich nicht wirklich vorliegt, da das ganze ja richtung 1 tendieren muss, womit das Anwenden eines T-Tests einfach falsch wäre.

Ich bin in Statistik nicht so bewandert und hoffe, dass ich hier nicht vollkommenen Quatsch erzähle.

Grüße
Sven

Beim klicken öffnet sich die Bilder upload Seite. Ich weiß aber nicht, wie das Bild heir sonst in größer angezeigt werden kann.
Bild
Ednukru
Grünschnabel
Grünschnabel
 
Beiträge: 3
Registriert: Fr 22. Jul 2016, 09:49
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: T-test bei Gammaverteilung?!

Beitragvon bele » Mi 24. Mai 2017, 11:19

Ednukru hat geschrieben:Ich glaube, dass das genau das ist, was ich suche. Den Grenzwert könnte man dann wahrscheinlich auch selbst wählen oder?


Ich glaube, mir fehlt immer noch Kontext, aber letztlich musst Du ja ohnehin selbst prüfen, ob das jetzt so für Dein Problem passt.

Deine Histogramme sind mit R erstellt. Das Anpassen einer Gamma-Verteilung kannst Du in R mit dem Zusatzpaket "fitdistrplus" (darin die Funktion fitdist) vornehmen ( https://cran.r-project.org/web/packages ... er2JSS.pdf ). Verteilung und Quantile lassen sich in R erwartungsgemäß mit qgamma und dgamma abfragen.

LG,
Bernhard
----
`Oh, you can't help that,' said the Cat: `we're all mad here. I'm mad. You're mad.'
`How do you know I'm mad?' said Alice.
`You must be,' said the Cat, `or you wouldn't have come here.'
(Lewis Carol, Alice in Wonderland)
bele
Schlaflos in Seattle
Schlaflos in Seattle
 
Beiträge: 5743
Registriert: Do 2. Jun 2011, 23:16
Danke gegeben: 15
Danke bekommen: 1339 mal in 1326 Posts


Zurück zu t-Test

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast