Hallo Leute,
ich kämpfe gerade an folgendem Problem. Ich würde gerne einen Rangkorrelationskoeffizienten zwischen einem Botenstoff und einem Inflammationsmarker (CRP) berechnen. Das Problem ist folgendes: Wenn die Inflammation besonders niedrig ist, sind die CRP Werte nicht genau bestimmbar, sodass mir ein <.3 eingetragen wird. Das heißt, die CRP Werte sind nicht null, sondern sind nur unter der Schwelle, können also eigentlich nicht als fehlend kodiert werden. R liest dieses Daten dann natürlich als "factors" und nicht als "num" ein. Kann ich die "factors" in "num" umwandeln, bzw. macht das überhaupt Sinn? Kann ich vielleicht mit Rangkorrelationen arbeiten? Bzw. kann ich die Ränge irgendwie selbst bilden? Oder muss ich die Versuchspersonen mit Werten kleiner 0.3 von der Analyse ausschließen?
Aktuell sehen meine CRP Daten folgendermaßen aus:
str(alldata$CRP_t1)
Factor w/ 39 levels "<0.3","0,30",..: 4 10 1 16 31 14 9 7 32 30 ...
LG
Max
Problem mit Zahlen bei Rangkorrelation
Re: Problem mit Zahlen bei Rangkorrelation
Hallo Max,
hättest Du ein Problem damit, die <0.3 durch 0 zu ersetzen? Dann könntest Du wunderbar eine Rangkorrelation rechnen. Ansonsten erkennt man noch ein weiteres Problem:
Augenscheinlich wird manchmal ein Punkt als Dezimaltrenner und manchmal ein Komma als Dezimaltrenner verwendet. Das muss leider einheitlich sein, sonst wird das nichts mit dem Einlesen als Zahl.
LG,
Bernhard
hättest Du ein Problem damit, die <0.3 durch 0 zu ersetzen? Dann könntest Du wunderbar eine Rangkorrelation rechnen. Ansonsten erkennt man noch ein weiteres Problem:
Code: Alles auswählen
39 levels "<0.3","0,30"
LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Re: Problem mit Zahlen bei Rangkorrelation
Hallo Bernhard,
eigentlich darf ich die Werte nicht durch 0 ersetzen, da sie zwar 0 sein könnten, es aber nicht sein müssen. Aber ich denke, darauf wird es wohl am Ende hinauslaufen müssen. Zum zweiten Probleme glaube ich, dass es dazu kommt, weil R die Zahlen nicht als numerisch, sondern als Faktoren erkennt und einfach davon ausgeht, dass es Eigennahmen sind. Nur bei den Werten "<0.3" ist ein Punkt statt einem Komma. Sonst sind es immer Komma im kompletten Datensatz.
eigentlich darf ich die Werte nicht durch 0 ersetzen, da sie zwar 0 sein könnten, es aber nicht sein müssen. Aber ich denke, darauf wird es wohl am Ende hinauslaufen müssen. Zum zweiten Probleme glaube ich, dass es dazu kommt, weil R die Zahlen nicht als numerisch, sondern als Faktoren erkennt und einfach davon ausgeht, dass es Eigennahmen sind. Nur bei den Werten "<0.3" ist ein Punkt statt einem Komma. Sonst sind es immer Komma im kompletten Datensatz.
Re: Problem mit Zahlen bei Rangkorrelation
Hallo max,
oder halt entsprechend angepasst für Deine Situation.
LG,
Bernhard
Das habe ich verstanden. Ich beziehe mich jetzt zunächt mal nur auf die Rangkorrelation. Es gibt keine Rechtfertigung, alle Patienten mit CRP<0,3 aus der Auswertung raus zu werfen. Der einzig vernünftige Weg ist, ihnen allen einen gemeinsamen Rang zuzuschreiben, der unter dem Rang der Patienten mit CRP = 0,3 liegt. Diese Rangzuordnung bekommst Du automatisch, wenn Du allen <0,3-Werte für den Zweck der Rangkorrelation einen fiktiven Wert zuordnest, der kleiner als 0,3 ist. Beispielsweise 0 oder auch -100, das ist egal.
Du musst die Daten so in R einlesen, dass es für die weitere Verwertung sinnvoll ist. Vielleicht macht ja sowas in der Art Sinn:Zum zweiten Probleme glaube ich, dass es dazu kommt, weil R die Zahlen nicht als numerisch, sondern als Faktoren erkennt
Code: Alles auswählen
labor <- read.table(filename, dec=",", na.strings="<0.3", sep=";")
LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Re: Problem mit Zahlen bei Rangkorrelation
Hallo Bernhard,
Danke für die Antwort. Ja das ergibt für mich Sinn! Vielen Dank für die Antwort
Danke für die Antwort. Ja das ergibt für mich Sinn! Vielen Dank für die Antwort