Seite 1 von 1

std deviation

Verfasst: Sonntag 25. Juli 2021, 12:35
von Brando
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)

Re: std deviation

Verfasst: Sonntag 25. Juli 2021, 13:38
von rogerb
@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
"""