Added new functions

This commit is contained in:
schrom01 2022-10-19 13:37:15 +02:00
parent ac80d2bba0
commit 5e14a0e059
3 changed files with 63 additions and 43 deletions

View File

@ -0,0 +1,42 @@
import DeskriptiveStatistik as ds
def obereAntenne_obereAusreisser(werte):
werteSortiert = sorted(werte)
resultat = ["",[]]
maxAntenne = (ds.qquantil(werte, 0.75) + ds.interqurartilsabstand(werteSortiert) * 1.5)
if(max(werteSortiert) > maxAntenne):
for i in range(len(werteSortiert)):
wert = werteSortiert[i]
if(i+1 == len(werteSortiert)):
resultat[1].append(wert)
elif(werteSortiert[i+1] > maxAntenne) and resultat[0] == "":
resultat[0] = wert
elif(werteSortiert[i+1] > maxAntenne):
resultat[1].append(wert)
else:
resultat[0] = max(werteSortiert)
return resultat
def untereAntenne_untereAusreisser(werte):
werteSortiert = sorted(werte, reverse=True)
resultat = ["",[]]
maxAntenne = (ds.qquantil(werte, 0.25) - ds.interqurartilsabstand(werteSortiert) * 1.5)
if(min(werteSortiert) < maxAntenne):
for i in range(len(werteSortiert)):
wert = werteSortiert[i]
if(i+1 == len(werteSortiert)):
resultat[1].append(wert)
elif(werteSortiert[i+1] < maxAntenne) and resultat[0] == "":
resultat[0] = wert
elif(werteSortiert[i+1] < maxAntenne):
resultat[1].append(wert)
else:
resultat[0] = min(werteSortiert)
return resultat
if __name__ == '__main__':
werte = [12, -5, 5, 52, -6, -5, 8, -7, 22, -46, 8, -14, 5, 47]
print("obere Antenne: ", obereAntenne_obereAusreisser(werte)[0])
print("obere Ausreisser: ", obereAntenne_obereAusreisser(werte)[1])
print("untere Antenne: ", untereAntenne_untereAusreisser(werte)[0])
print("untere Ausreisser: ", untereAntenne_untereAusreisser(werte)[1])

View File

@ -57,39 +57,7 @@ def median(werte):
def interqurartilsabstand(werte):
return qquantil(werte, 0.75) - qquantil(werte, 0.25)
def obereAntenne_obereAusreisser(werte):
werteSortiert = sorted(werte)
resultat = ["",[]]
maxAntenne = (qquantil(werte, 0.75) + interqurartilsabstand(werteSortiert) * 1.5)
if(max(werteSortiert) > maxAntenne):
for i in range(len(werteSortiert)):
wert = werteSortiert[i]
if(i+1 == len(werteSortiert)):
resultat[1].append(wert)
elif(werteSortiert[i+1] > maxAntenne) and resultat[0] == "":
resultat[0] = wert
elif(werteSortiert[i+1] > maxAntenne):
resultat[1].append(wert)
else:
resultat[0] = max(werteSortiert)
return resultat
def untereAntenne_untereAusreisser(werte):
werteSortiert = sorted(werte, reverse=True)
resultat = ["",[]]
maxAntenne = (qquantil(werte, 0.25) - interqurartilsabstand(werteSortiert) * 1.5)
if(min(werteSortiert) < maxAntenne):
for i in range(len(werteSortiert)):
wert = werteSortiert[i]
if(i+1 == len(werteSortiert)):
resultat[1].append(wert)
elif(werteSortiert[i+1] < maxAntenne) and resultat[0] == "":
resultat[0] = wert
elif(werteSortiert[i+1] < maxAntenne):
resultat[1].append(wert)
else:
resultat[0] = min(werteSortiert)
return resultat
def varianz(werte=[], absoluteHaufigkeiten={}, relativeHaufigkeiten={}, pdf={}, stichprobengroesse=0, korrigiert=False):
summe = 0
@ -124,25 +92,35 @@ def standardabweichung(werte=[], absuluteHaufigkeit={}, relativeHaufigkeiten={},
return np.sqrt(varianz(werte, absuluteHaufigkeit, relativeHaufigkeiten, pdf, stichprobengroesse, korrigiert))
def kovarianz(werte=[]):
summe = 0
n = len(werte)
xMittel = mittelwert([wert[0] for wert in werte])
yMittel = mittelwert([wert[1] for wert in werte])
for wert in werte:
x = wert[0]
y = wert[1]
summe = summe + ((x - xMittel) * (y - yMittel))
return summe / n
if __name__ == '__main__':
werte = [12, -5, 5, 52, -6, -5, 8, -7, 22, -46, 8, -14, 5, 47]
haufigkeiten = {0: 6, 1: 6, 2: 3, 3: 5, 8: 6}
#werte = [12, -5, 5, 52, -6, -5, 8, -7, 22, -46, 8, -14, 5, 47]
#haufigkeiten = {0: 6, 1: 6, 2: 3, 3: 5, 8: 6}
werte = [(1, 2), (3, 4), (5, 6)]
print(kovarianz(werte))
#werte = [9, 7, 7, 6, 1]
# haufigkeiten = {11: 3/20, 13: 1/2, 15: 1/10, 17: 1/5, 19: 1/20}
# print("Anzahl Elemente: " , anzahlElemente(werte))
# print("Absolute häufigkeiten: " , absoluteHaufigkeiten(werte))
# print("RElative Haufigkeiten: ", relativeHaufigkeiten(werte))
# print("Mittelwert: ", mittelwert(werte))
print("q1: " ,qquantil(werte, 0.25))
print("q2: " , qquantil(werte, 0.5))
print("q3: " , qquantil(werte, 0.75))
print("Interquartilsabstand: ", interqurartilsabstand(werte))
print("obere Antenne: ", obereAntenne_obereAusreisser(werte)[0])
print("obere Ausreisser: ", obereAntenne_obereAusreisser(werte)[1])
print("untere Antenne: ", untereAntenne_untereAusreisser(werte)[0])
print("untere Ausreisser: ", untereAntenne_untereAusreisser(werte)[1])
print("Varianz: ", varianz(absoluteHaufigkeiten=haufigkeiten))
# print("q1: " ,qquantil(werte, 0.25))
# print("q2: " , qquantil(werte, 0.5))
# print("q3: " , qquantil(werte, 0.75))
# print("Interquartilsabstand: ", interqurartilsabstand(werte))
# print("Varianz: ", varianz(absoluteHaufigkeiten=haufigkeiten))
#print("Standardabweichung: ", standardabweichung(werte, korrigiert=True))
# print("Mittelwert : ", mittelwert(haufigkeiten=haufigkeiten))
# print("empirische Varianz: ", varianz(absoluteHaufigkeiten=haufigkeiten, stichprobengroesse=0, korrigiert=True))

View File