PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Statistikfrage



Sebastian1
01.11.2006, 21:53
Hoi,

kleines Problem bei einer statistischen Aufgabe in meiner Diss:

Ich habe die Erkrankungsschwere von Patienten in Scores (APACHE- und SAPS II) erfasst, dies ist ein Punktwert, der typischerweise einen Wert zwischen 0 und ca 100 annimmt.
Desweiteren wurde das Überleben protokolliert, der Wert nimmt entweder 0 oder 1 an.

Jetzt möchte ich berechnen, inwiefern die Erkrankungsschwere mit der Überlebenswahrscheinlichkeit korreliert.

Welchen test verwende ich hier am geschicktesten? Da die Streuungsbreite der Scores recht hoch ist, dürfte der Chi-Quadrat-Test wenig hilfreich sein, eine lineare Regression kommt nicht in Frage da der Tod eines Patienten eine 0/1-Variable ist und mit kreuzkorrelationen bin ich auch nicht so richtig weiter gekommen.
Welcher Test ist für dieses Setting der richtige?
Danke für eure Hilfe.

frieda
02.11.2006, 00:05
wenn die Variablen einzeln untersucht werden sollen, kann man einfache Produkt-Moment-Korrelationen rechnen.

Denn:
"ist ein Merkmal dichotom und das andere intervallskaliert, entspricht r der punkt-biserialen Korrelation. rpb = ......
(z.B. http://www.psy.unibe.ch/~ballina/Corrbem.pdf)


Friederike Stephan

Tombow
02.11.2006, 00:14
Auch Resampling-Methoden würden sich gut für den Fall eignen. Bin leider zu müde, um jetzt noch eine detailierte Anleitung zu schreiben, morgen mehr.

EDIT: Könnte es doch nicht lassen, daher hier eine Anregung, wie du in deinem Fall verfahren kannst. Das Vorgehen kannst Du Dir mit einem Excel-Script oder jedem resampling-fähigem Statistikprogramm (SPSS, Statistics101, etc.) erleichtern:

-Zwei "Urnen" (Pools, Arrays) bilden. In dem einen kommen alle Schweregrade (als Score-Wert), in dem anderen entweder "0" (oder "verstorben") und "1"("überlebt").

-Zufällig aus jeder Urne ein Wert ziehen und notieren (Schweregrad, überlebt oder nicht). Anschließend werden die gezogenen Werte NICHT ins Pool zurückgelegt (Sampling OHNE Replacement - bei der konkreten Fragestellung ist Sampling mit Replacement nicht angesagt). Die Prozedur so lange wiederholen, bis beide Urnen leer sind und jedem Schweregrad zufällig ein (Nicht)/Überleben zugeordnet wurde.

-Das ganze vielleicht 1000mal (wenn du eine Genauigkeit von p<=0,001 wünschst) wiederholen.

-Anschließend ein Histogramm bilden, wieviele der Patienten je nach Schweregrad in dieser Zufallssimulation "überlebt" haben. Das dürfte fürs erste ausreichen. Anhand solcher Daten kannst Du ruhig die Aussage machen: "anhand der vorliegenden Daten läßt sich schließen, daß bei einem Schweregrad von XYZ ZYX % der Patienten überleben).

Und wer sich noch denkt, Resampling-Statistiken wären Quacksalberei, bitte hier entlang:

http://www.resample.com

Sebastian1
11.11.2006, 01:18
Hoi ihr beiden, danke zunächst einmal für eure Antworten.
Leider muss ich gestehen, dass Mathematik sich zu meiner Person in etwa so verhält wie Feuer und Wasser ;) Ich hab mal versucht aus euren Links schlau zu werden und das ganze dann in SPSS umzusetzen. Leider ist mir das nicht so ganz gelungen... was ich bräuchte wäre vielmehr eine Schritt-für-Schritt-Anleitung....jemand in der Lage zu helfen? :-)

(Naja, ich hab den Ergebnisteil trotzdem schon mal ohne die betreffende Statistik beim meinem Betreuer eingereicht, vielleicht erledigt es sich ja auch ;)

Tombow
11.11.2006, 07:56
Heya,

Gerade Deine Antwort gelesen, kurz nachgeschaut, es gibt mehrere Wege, wie Deine Frage beantwortet werden kann. Habe im Moment leider keine Zeit, eine Step-by-Step-Anleitung zu schreiben, mehr gibt es später heute oder spätestens bis morgen abend.

frieda
11.11.2006, 18:45
Hoi ihr beiden, danke zunächst einmal für eure Antworten.
Leider muss ich gestehen, dass Mathematik sich zu meiner Person in etwa so verhält wie Feuer und Wasser ;) Ich hab mal versucht aus euren Links schlau zu werden und das ganze dann in SPSS umzusetzen. Leider ist mir das nicht so ganz gelungen... was ich bräuchte wäre vielmehr eine Schritt-für-Schritt-Anleitung....jemand in der Lage zu helfen? :-)
Also:
Im SPSS sollten die drei Variablen APACHE-, SAPS II, "Überleben" in drei Spalten stehen.
SPSS --> Datei öffnen --> Datendatei aufrufen --> SPSS: Statistik --> Korrelation --> bivariat.. --> links die Variablen aussuchen und rechts in das Feld "Variablen" ziehen --> auf "ok" klicken.

Das ist die einfachste Variante. Jedoch sind eigentlich immer irgendwelche Voraussetzungen oder Besonderheiten zu beachten, so dass anzuraten ist, das Problem mit jemandem zu besprechen, der sich damit auskennt. Auch, um die erhaltenen Korrelationen zu interpretieren.

Friederike Stephan

Tombow
11.11.2006, 19:48
Das wird etwas länger zu schreiben, dennoch...

Erst einmal danke an Frieda, daß sie den punkt-biserialen Korrelationskoeffizient ins Gespräch gebracht hat. Was ist das? Kurz gesagt, ein Korrelationskoeffizient, was den Grad des Zusammenhangs zwischen einer dichotomen (nur Werte Ja/Nein oder 1 und 0) und einer intervallskalierten Variablen. Und wie Frieda auch gemerkt hat, kann man es als Einzelfall der Produkt-Moment-Korrelation sehen. Hier sind zwei gute Websites, wo erklärt wird, was es ist, wie es errechnet wird und wie es zu interpretieren ist:

http://www.childrens-mercy.org/stats/definitions/biserial.htm
http://jalt.org/test/bro_12.htm

Das Koeffizient kann Werte zwischen -1 und +1 haben, die genauso zu interpretieren sind wie andere Korrelationskoeffiziente.

Soweit ich Frieda richtig verstanden habe, kannst du in deinem Fall auch ganz einfach für die entsprechenden Daten das Pearson's r (Produktmoment-Korrelationskoeffizient) errechnen, das bietet ja jedes Statistkikprogramm. Das Ergebnis wäre das gleiche wie wenn man mit der entsprechenden Formel den Punkt-biserialen Korrelationskoeffizient errechnen würde.

Damit wäre aber eine Sache nicht bewiesen, nämlich, daß die beobachtete Korrelation einfach ein Zufallsbefund ist. Und hier ist es, wo Resampling ganz nütlzlich sein kann. Sehr gute Beispiele, wie man das überprüft und Links zur weiterführenden Literatur finden sich hier:

http://www.resample.com/content/text/27-Chap-23.pdf

Einige der Beispiele aus dem Buch lassen sich soweit umarbeiten, so daß sie in deinem Fall verwendbar wären. Also arbeiten wir die "Checkliste" von Julian Simon ab, wie sie im Kapitel 19 von "Resampling - The New Statistics" zu finden ist:

1. Was ist die Frage? - Besteht ein Zusammenhang zwischen der Überlebenswahrscheinlichkeit und dem Schweregrad der Erkrankung?

2. Um was für eine Fragestellung handelt es sich, Wahrscheinlichkeitsrechnung oder Statistik? - Statistik

2a. Welche Form von statistischer Fragestellung (Hypothesentest oder Konfidenzintervall) - Hypothesentest.

3. Wie viele Stichproben hat man? - eine (Alle erfaßten Patienten in Ihrer Gesamtheit in diesem Fall)

4. Welche Parameter/Charakteristiken sind von Interesse? - Schweregrad der Erkrankung und Überleben des Patienten.

5. Was für ein Vergleich ist zu machen, Stichproben untereinander oder Stichproben zu einer (hypothetischen?) Referenzstichsprobe ("null universe" nach J. Simon)? - Stichproben zum "null universe". Das bedarf eine ERklärung - hier wird mit "null universe" ein "Universum" (Stichprobe, Grundgesamtheit) definiert, in dem die Nullhypothese richtig ist. Also liefert uns die Antwort auf die Frage auch die Nullhypothese zu unserem Test. In diesem Fall lautet sie, daß KEIN Zusammenhang zwischen Überleben und Schweregrad der Erkrankung besteht.

6. (lassen wir diese Frage aus, nicht relevant...für die Statistik-Cracks - es handelt sich um die Frage ob das Alternativuniversum in diesem Fall ein Neymann-Pearson-Universum ist und wenn ja, was es ist).

7. Wie sind die Daten skaliert? (Antwort haben wir schon - Überleben dichotom, Schweregrad intervallskaliert)

8. Was für "Stichproben" (gut, in diesem Fall Resamples) werden mit dem Nulluniversum verglichen? - Stichproben gleicher Größe.

9. Wie werden die Resamples gezogen? - Einfache Ziehung (keine "wenn"-Ziehungen)

10. Welche Prozeduren zum erstellen des Resamples (mehrere Unterfragen):
-Aus welchem "Universum" werden sie gezogen? - aus den vorhandenen Daten, die unser vermeintliches "Nulluniversum" bilden.
-Mit oder ohne Replacement (werden die gezogenen Werte nachher zurückgetan, so daß sie erneut gezogen werden können oder nicht) - ohne Replacement. Sonst hätte man in den gezogenen Resamples die Gefahr, daß Patienten mit dem gleichen Wert sowohl überleben als auch nicht.
-Wie groß soll ein Resample sein? Gleich groß wie die ursprüngliche Stichprobe.
-Wie viele Resample-Trials? Ich mache immer 1000 oder 10000.

So, und jetzt zum Test selbst und ein wenig zur Theorie des Resampling. Resampling-Statistiken bauen (um es gaaanz einfach zu erklären) darauf, daß der Zufall simuliert wird, anstatt mit mathematisch abgeleiteten Eigenschaften gearbeitet wird. Man legt einfach alle Daten, die man hat (z.B. die Ergebnisse von Kontroll- und Versuchsgruppe) zusammen und zieht einfach zufälligerweise Daten daraus und bildet dadurch zufällige Stichproben (Resamples). So werden durch zufällige Zuordnung der vorhandenen Daten eine Resample-Kontrollgruppe und eine Resample-Versuchsgruppe gebildet. Die Methode ist auch als "bootstrap resampling" bekannt, da sie anhand der vorhandenen Stichprobe die (hypothetische) Grundgesamtheit simuliert. Man kann entweder nach Ziehung eines Wertes ihn zurück zu den anderen Werten tun (Sampling mit Replacement), so daß er erneut gezogen werden kann oder auch zur Seite legen (Sampling ohne Replacement). Fast immer wird Sampling mit Replacement praktiziert, die einzige Ausnahme, wo strikt ein Sampling OHNE Replacement verwendet werden muß, sind Rangtransformierte Daten (da es nur einen ersten, einen zweiten usw. Rang) gibt. In deinem Fall bräuchten wir aber ein Resample mit gleich vielen überlebten und nicht überlebten Patienten, also ziehen wir auch ohne Replacement.

Wie wird in Resampling-Statistiken ermittelt, ob der beobachtete Unterschied statistisch signifikant oder nicht ist? Herrkömmliche Statistiken haben meistens eine "Prüfgröße", für die die kritischen Werte bekannt sind. Bei Resampling-Statistiken ist die Prüfgröße fast direkt von den vorhandenen Daten und der Nullhypothese gegeben. Man braucht nur die Resamples zu zählen, wo die (auf die gleiche Art wie in den ursprünglichen Daten ermittelte) Prüfgröße kleiner oder größer ist als die ursprünglich ermittelte. Da die Samples zufällig gezogen sind, ergibt uns der Anteil solcher Ergebnisse an allen Resamples, mit welcher Wahrscheinlichkeit die in den "realen" Daten beobachtete Differenz ein Zufallsprodukt ist oder nicht. Was direkt dem p-Wert bei herrkömmlichen Tests entspricht. Nehmen wir also an, in 1000 resamples wurde zwischen der Resample-kontrolle und der Resample-versuchsgruppe 995 mal ein kleinerer Unterschied in den Mittelwerten beobachtet als bei den echten Versuchsgruppen. Also wäre in diesem hypothetischen Beispiel die Wahrscheinlichkeit, daß ein Unterschied wie der beobachtete oder größer durch Zufall entstehen kann, 5/1000=0,005. Und diese Wahrscheinlichkeit entspricht direkt der Irrtumswahrscheinlichkeit (p-Wert bei herrkömmlichen Tests).

Soviel zur Theorie, jetzt zur Praxis. Woran wollen wir festmachen, ob die beobachtete Korrelation zwischen Schweregrad und Überleben ein Zufallsprodukt ist? Eigentlich eine Frage, die gleich die Antwort liefert - Man errechne für die ursprünglich erhobenen Daten entweder den Punkt-biserialen Koeffizient oder das Pearson's r. Wenn ein Zusammenhang zwischen diesen zwei Variablen besteht, dann dürfte man in den gezogenen Resamples nur einen kleinen Anteil Resamples haben, die ein gleich großes oder größeres Koeffizient haben.

Das Verfahren kann man mit mehreren Programmen machen. Ich denke, SPSS ist Resampling/Bootstrap-fähig, bin mir aber nicht sicher. Programme, die es mit Sicherheit beherrschen, sind:

Statistics101 - http://www.statistics101.net (Freeware)
R - http://www.r-project.org/

Wie sieht dann die Resampling-Prozedur aus:

-Es werden zwei Urnen gebildet, in die eine kommen alle Schweregrade, in der anderen einser oder nullen (für überlebt oder nicht).

-Es wird aus jeder Urne ein Wert gezogen und dann notiert (Schweregrad, überlebt/nicht überlebt) und die Werte zur Seite gelegt.

-Alle Werte in beiden Urnen werden so zufällig miteinander gepaart.

-Für den so erstellten Resample wird der gewählte Korrelationskoeffizient errechnet und notiert.

-Die obigen Schritte werden 1000 oder 10000 (oder so oft du willst) mal wiederholt.

-Es werden alle Resamples gezählt, die ein gleich großes oder größeres Korrelationskoeffizient zwischen Schweregrad und Überleben hatten wie die "echte" Stichprobe. Die Anzahl dieser Resamples, dividiert durch die Gesamtanzahl Resamples ergibt dann die Wahrscheinlichkeit, mit der ein Unterschied so groß oder größer wie der tatsächlich beobachtete, durch Zufall entstehen kann.

Falls Du magst, kann ich dir einige meiner Statistics101-Skripte auch mitgeben, vielleicht ist was dabei, was sich schnell und problemlos an deine Fragestellung anpassen läßt. Oder direkt ein Skript anpassen.

Tombow
12.11.2006, 16:23
Sooo...und wieder bin ich. Das Problem hat mich einfach interessiert, also habe ich ein Statistics101-Skript geschrieben, was die im vorherigen Posting vorgeschlagene Methode anwendet. Es ist eine Routine zur Berechnung des Punkt-biserialen Korrelationskoeffizients enthalten, zusammen mit einer Implementierung der vorgeschlagenen Methode zum Test, ob der für die Originaldaten berechnete Koeffizient ein Zufallsprodukt ist. Die Scores der Überlebenden und Verstorbenen habe ich mit Phantasiewerten ersetzt, um das Programm zu testen. Der Quellcode in der Form ist funktionsfähig, kannst Du auch (Wenn du Statistics101 heruntergeladen und installiert hast) sofort anwenden, brauchst in dem Fall nur die in den ersten 2 Zeilen vorhandenen Scores mit Deinen Daten ersetzen. Zu jeder Zeile habe ich Kommentare hinzugefügt, was die Anweisung macht. Die Kommentare sind in dem Standardstil /*Kommentar*/ gehalten:



COPY 30 20 64 17 25 100 50 43 78 62 Survivors /*hier kommen alle Scores der Überlebenden*/
COPY 13 45 23 71 52 37 12 43 27 35 Nonsurvivors /*hier kommen alle Scores der Verstorbenen*/
NEWCMD POINTBISERIAL SurvivorScores NonsurvivorScores Correlation /*Subroutine zur Berechnung des Punkt-Biserialen Koeffizients*/
MEAN SurvivorScores MeanSrv
MEAN NonsurvivorScores MeanNonsrv
SUBTRACT MeanSrv MeanNonsrv MeanDifference
SIZE SurvivorScores SrvCount
SIZE NonsurvivorScores NonsrvCount
ADD SrvCount NonsrvCount TotalNumber
DIVIDE SrvCount TotalNumber SrvProportion
SUBTRACT 1 SrvProportion SrvMinusOne
MULTIPLY SrvProportion SrvMinusOne Radicant
SQRT Radicant Rooted
Multiply MeanDifference Rooted IndexCoeff
STDEV SurvivorScores SrvDev
Divide IndexCoeff SrvDev Correlation
END /*Ende der Subroutine*/
POINTBISERIAL Survivors Nonsurvivors OriginalCorrelation
/*Berechnung des Punkt-biserialen Korrelationskoeffizients für die Originaldaten */
PRINT OriginalCorrelation /*Ausgabe des Ergebnisses*/
SIZE Survivors ResampleSrv /*Wie viele Überlebenden*/
SIZE Nonsurvivors ResampleNonsrv /*Wie viele Verstorbene*/
ADD SrvCount NonsrvCount TotalNumber /*wird für die Resample-Routine gebraucht*/
ADD ResampleSrv 1 StartPosition /*Startposition für die Resample-Prozedur*/
CONCAT Survivors Nonsurvivors ScoreOverall /*Scores werden zusammengelegt*/
REPEAT 1000 /*1000 Resamples machen*/
SHUFFLE ScoreOverall ScoreOverall /*Gepoolte Scores durchmischen*/
TAKE ScoreOverall 1,ResampleSrv ResampledSurvivors /*Resample Überlebende*/
TAKE ScoreOverall StartPosition,TotalNumber ResampledNonsurvivors /*Resample verstorbene*/
POINTBISERIAL ResampledSurvivors ResampledNonsurvivors ResampleCorrelation /*Korrelation für die Resamples berechnen*/
SCORE ResampleCorrelation ResultCorrelations /*für jeden Durchlauf die Berechnete Korrelation speichern*/
END /*Ende der Resampling-Prozedur*/
COUNT ResultCorrelations >= OriginalCorrelation ObservedGreater /*Wie viele Resamples mit gleichem oder größerem Korrelationskoeffizient als die Originaldaten*/
DIVIDE ObservedGreater 1000 ProportionGreater /*Anteil dieser Resamples an die Gesamtanzahl berechnen (=p-Wert)*/
PRINT ProportionGreater /*Berechneten Wert ausgeben*/


Die Namen der Variablen habe ich soweit es ging versucht, selbsterklärend zu Halten. Hoffe, das hilft Dir weiter.

EDIT: Habe einen Fehler im Quellcode entdeckt (inkorrekter Aufruf des TAKE-Befehls beim Resamplen der Nichtüberlebenden und diesen korrigiert).

Muriel
12.11.2006, 16:30
OMG Tom, ich hab diese Mega-Beiträge nicht gelesen, hätte sie eh ned verstanden, aber willst Du allen Ernstes behaupten, Du verstündest das alles? Hilfe, du machst mir angst ;-)
Jedenfalls wäre das viele viele grüne Kästchen wert :-))

Tombow
12.11.2006, 16:35
OMG Tom, ich hab diese Mega-Beiträge nicht gelesen, hätte sie eh ned verstanden, aber willst Du allen Ernstes behaupten, Du verstündest das alles? Hilfe, du machst mir angst ;-)
Keine Angst, ich verstehe es sehr gut. Sonst würde ich mir kaum das Thema wirklich von der Theorie bis zum Endergebnis vornehmen.



Jedenfalls wäre das viele viele grüne Kästchen wert :-))
Uiiiii...danke!!!! :-blush
Bin sprachlos :-wow

Sebastian1
15.11.2006, 16:13
Hoi, nochmals vielen Dank an euch beide. Ich werd mal schauen was geht. Was ich am Resampling noch nicht ganz verstehe:
Warum wird durch die Anzahl der Iterationen die Genauigkeit erhöht? Prinzipiell greife ich doch ein Datenpaar immer aus demselben Pool und bekomme dann 100, 1000, n... mal die gleichen Wertepaare, oder?

Sebastian1
15.11.2006, 16:15
Ah, halt...ich seh schon, man nimmt sich die Werte getrennt vor und mischt die dann. Dann verstehe ich aber nicht, wie das eine zuverlässige Aussage machen kann - denn dabei kann ich ja durchaus für sehr schwer erkrankte Patienten das WErgebnis "nicht verstorben" und umgekehrt eherausbekommen..... ich seh scho9n, Mathematik und ich sind und bleiben irgendwie doch 2 Welten, die nicht zusammenfinden sollen.... ;)

Tombow
15.11.2006, 16:37
Ah, halt...ich seh schon, man nimmt sich die Werte getrennt vor und mischt die dann. Dann verstehe ich aber nicht, wie das eine zuverlässige Aussage machen kann - denn dabei kann ich ja durchaus für sehr schwer erkrankte Patienten das WErgebnis "nicht verstorben" und umgekehrt eherausbekommen.....

Sehr gute Frage eigentlich. Es ist so, wenn man alle Werte poolt und sie zufällig zuordnet, können solche Ergebnisse vorkommen. Aber genau das ist auch der Sinn an der Sache. Die Nullhypothese ist in diesem Fall, daß der Schweregrad der Erkrankung KEIN Einfluss auf die Überlebenswahrscheinlichkeit hat.

IN DIESEM FALL (NULLHYPOTHESE WIRD VORERST ALS RICHTIG ANGESEHEN) IST ABER AUCH GENAUSO GROß DIE WAHRSCHEINLICHKEIT, DAß DIE WERTE IM RESAMPLE DEN TATSÄCHLICHEN WERTEN ÄHNELN. Wie genausogroß die Möglichkeit für eine x-beliebige andere Verteilung der Werte ist. Alleine die Werte im Pool "entscheiden" darüber, was rauskommt.

Also wird dieser Zustand durch das zufällige Ziehen von Werten simuliert. Hat man zigmal alle Werte zufällig zugeordnet, hat man für jede komplette Ziehung (Zuordnung aller Werte) auch ein Korrelationskoeffizient zwischen Schweregrad und Überleben. Daß in der simulierten Probe Werte so eine Zuordnung passieren kann, ist also gewollt und eigentlich ein Grundstein des Konzeptes.


Warum wird durch die Anzahl der Iterationen die Genauigkeit erhöht?
Einfach. In der Statistik ist die Irrtumswahrscheinlichkeit die Wahrscheinlichkeit, mit der das vorliegende Experimentergebnis auch ein Zufallsprodukt sein kann. 5% oder weniger (p<=0,05) Irrtumswahrscheinlichkeit bedeutet einfach, würde man das Experiment 100mal wiederholen (oder die Daten 100mal erheben), würden in höchstens 5 dieser Experimente/Datenerhebungen die gleichen oder noch größeren Unterschiede zwischen Versuchs- und Kontrollgruppe beobachtet werden.

Und nun zum Resample. Es wird angenommen (wie in der traditionellen Statistik), daß die Probe representativ für die Population ist. Und dann werden durch die Resampling-Prozedur eben diese 100 (oder 1000 oder 10000) Experimente/Datenerhebungen simuliert. Die Irrtumswahrscheinlichkeit wird dann durch die Möglichkeit gegeben, daß der Zufall gleich große (oder größere) Unterschiede produziert. Und das ist eine Ganzzahl. Und die Wahrscheinlichkeit hat bekanntlich Werte zwischen 0 (passiert nie) und 1 (passiert immer). Um die Ganzzahl in die Wahrscheinlichkeit umzurechnen braucht man also die Anzahl Ziehungen (siehe vorheriger Satz), die unserer Bedingung entsprechen, durch die Gesamtanzahl Resamples zu teilen. Klar, daß wenn man mehr Resamples gezogen hat, man eine genauere Zahl erhält. Ist die Gesamtanzahl Resamples eine Potenz von 10, so erhält man mit steigender Anzahl Resamples eine weitere Stelle hinter dem Dezimalkomma bei der Irrtumswahrscheinlichkeit.