std deviation

mit matplotlib, NumPy, pandas, SciPy, SymPy und weiteren mathematischen Programmbibliotheken.
Antworten
Brando
User
Beiträge: 171
Registriert: Donnerstag 28. Januar 2016, 15:36

Für eine Liste soll ich die std deviation ausrechnen; folgendes gibt nur den ungefähr richtigen Wert:
std_South_America = statistics.pstdev(pop_South_America)
rogerb
User
Beiträge: 878
Registriert: Dienstag 26. November 2019, 23:24

@Brando,

was meinst du denn mit "ungefähr richtig"? Was würdest du denn erwarten?

Es gibt eine mathematische Definition für die Standardabweichung.
Wenn man diese Formel mal selbst programmiert und mit der pstdev aus dem statistics modul vergleicht kommt das gleiche Ergebnis heraus (mal abgesehen von der 16. Nachkommastelle):

Code: Alles auswählen

import random
import math
import statistics

# zufalls zahlen mit eingestreuten Werten
nums = [(random.random() + 10)*2 if num not in [3, 5, 10, 21, 34, 56, 71] else 10 for num in range(100) ]


# nach mathematischer Formel berechnet
average = sum(nums) / len(nums)
my_stdev = math.sqrt(sum((n-average)**2 for n in nums)/len(nums))

# statistics module
python_pstdev = statistics.pstdev(nums)

# Test auf Gleichheit
print(my_stdev)
print(python_pstdev)

"""
Ausgabe:
2.8586157854903123
2.8586157854903127
"""
Antworten