Seite 1 von 1

Pearson Korrelation in if-Abfrage

Verfasst: Dienstag 9. März 2021, 17:48
von Knecht_Ruprecht
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!

Re: Pearson Korrelation in if-Abfrage

Verfasst: Dienstag 9. März 2021, 18:40
von __deets__
Ich kenne noch nicht mal ein CorrelationPearson. Du gehst davon aus, das jeder dieses spezielle Ding kennt. Dem ist so nicht. Damit man dir helfen kann, musst du ein bisschen weiter ausholen.

Re: Pearson Korrelation in if-Abfrage

Verfasst: Dienstag 9. März 2021, 18:57
von Knecht_Ruprecht
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:

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))
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.

Re: Pearson Korrelation in if-Abfrage

Verfasst: Dienstag 9. März 2021, 19:02
von __deets__
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.

Re: Pearson Korrelation in if-Abfrage

Verfasst: Dienstag 9. März 2021, 19:44
von kbr
Wenn

Code: Alles auswählen

print(correlation.result(sleep, stress))
einen „numerischen“ String ausgibt, dann stehen die Chancen gut, dass Du mit

Code: Alles auswählen

float(str(correlation.result(sleep, stress)))
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.

Re: Pearson Korrelation in if-Abfrage

Verfasst: Dienstag 9. März 2021, 20:27
von Knecht_Ruprecht
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

Re: Pearson Korrelation in if-Abfrage

Verfasst: Dienstag 9. März 2021, 20:28
von Sirius3
@kbr: wahrscheinlich reicht correlation.result(sleep, stress).

Re: Pearson Korrelation in if-Abfrage

Verfasst: Dienstag 9. März 2021, 21:29
von kbr
@Sirius3: wenn ich mir den Thread noch einmal durchlese: gut möglich.