Guten Abend,
ich möchte gerne bei einer if-Abfrage prüfen, ob der Pearson Korrelationskoeffizient <= 0.5 ist.
Ich bekomme allerdings die folgende Fehlermeldung angezeigt: '<=' not supported between instances of 'CorrelationPearson' and 'float'
Wenn ich versuche den 'CorrelationPearson' zum 'float' zu casten wird folgendes angezeigt: float() argument must be a string or a number, not 'CorrelationPearson'
Kennt jemand eine Möglichkeit den 'CorrelationPearson' zu casten?
Herzlichen Dank!
Pearson Korrelation in if-Abfrage
-
- User
- Beiträge: 6
- Registriert: Dienstag 9. März 2021, 17:40
Der Pearson Krelationskoeffizient wird benutzt, um die Korrelation zweier Datensätze zu berechnen, wenn diese ein metrisches Skalenniveau haben, normalverteilt sind und ein linearer Zusammenhang besteht.
Dazu mal ein kleines Beispiel, bei dem die Korrelation der Stunden an Schlaf pro Nacht mit der subjektiv empfundenen Energie am Tag berechnet werden soll:
Das Ergebnis lautet in diesem Fall -0.8049163562408292. Diese Zahl ist als Datentyp 'CorrelationPearson' gespeichert.
Nun soll mein Programm im Rahmen einer if-Abfrage automatisch prüfen, ob die Korrelation <= 0.5 ist. Dabei ist das oben geschilderte Problem aufgetreten.
Dazu mal ein kleines Beispiel, bei dem die Korrelation der Stunden an Schlaf pro Nacht mit der subjektiv empfundenen Energie am Tag berechnet werden soll:
Code: Alles auswählen
from correlation_pearson.code import CorrelationPearson
sleep = [3, 4, 4, 7, 8, 8]
stress = [2, 3, 5, 6, 7, 8]
correlation = CorrelationPearson()
print(correlation.result(sleep, stress))
Nun soll mein Programm im Rahmen einer if-Abfrage automatisch prüfen, ob die Korrelation <= 0.5 ist. Dabei ist das oben geschilderte Problem aufgetreten.
Woher kommt denn diese Bibliothek? Das ist die entscheidende Frage. Wenn man nicht nachlesen kann, wie dieses Objekt bzw. seine Klasse definiert ist, dann kann man auch nicht wissen, wie es sich verarbeiten lässt. Und dieses spezielle Modul finde ich nicht. Ich finde Dinge in scipy. Also woher kommt dieser Code? Und wenn das nicht öffentlich (Firma, Uni), dann musst du da nachfragen.
Wenn
einen „numerischen“ String ausgibt, dann stehen die Chancen gut, dass Du mit
eine Konvertierung erreichen kannst.
Das ist natürlich durch die Brust ins Auge und ich kann mir vorstellen, dass in der zugehörigen Dokumentation ein besserer Weg gezeigt wird.
Code: Alles auswählen
print(correlation.result(sleep, stress))
Code: Alles auswählen
float(str(correlation.result(sleep, stress)))
Das ist natürlich durch die Brust ins Auge und ich kann mir vorstellen, dass in der zugehörigen Dokumentation ein besserer Weg gezeigt wird.
-
- User
- Beiträge: 6
- Registriert: Dienstag 9. März 2021, 17:40
Vielen Dank für die Antworten. Der Trick von @kbr hat funktioniert! Ich werde trotzdem mal schauen, ob sich das eleganter lösen lässt!
LG
LG