Code: Alles auswählen
>>> liste_x = [1,2,3,4,5]
>>> liste_y = [1,2,3,4,5]
>>> regressionsgerade(liste_x, liste_y)
(0.9999999999999998, 8.881784197001252e-16)
Ich frage mal ganz blöd:
1.) Würdet ihr mit Gleitkommazahlen rechnen und vielleicht runden oder zum Modul Decimal wechseln?
2.) Würdet ihr alle Berechnungen in Decimal durchführen lassen - ich schreibe ein Modul, um statistische Berechnungen vornehmen zu können.
3.) Welche Präzision würdet ihr - falls ihr das Modul nutzt - setzen!?
Ich habe aktuell keine Python-Programmierer um mich herum, mit denen ich mich austauschen könnte. Ich hoffe, dass ich mit den Fragen nicht zur Last falle.
Die Einarbeitung in R (usw.) ist momentan zeitlich nicht zu schaffen und nicht zu vertreten, weil ich im Kern kaum etwas in dem Bereich machen möchte. Ich muss gerade mal Median, Mittelwert und Regressionsgerade kalkulieren...
Quellcode der Funktion, die wiederum weitere Funktionen aus dem Modul lädt:
Code: Alles auswählen
def regressionsgerade(liste_x, liste_y):
# Ermittelt m, Steigung der Geraden
# und b, Schnittpunkt mit der y-Achse
mw_x = mittelwert(liste_x)
mw_y = mittelwert(liste_y)
s_x = standardabweichung(liste_x)
s_y = standardabweichung(liste_y)
r = korrelationskoeffizient(liste_x, liste_y)
# Berechne Steigung m
m = r * (s_y / s_x)
# Berechne Schnittpunkt y
b = mw_y - m * mw_x
return m, b