From 5e14a0e059b4fb7f709a3995954d5efa62802c1d Mon Sep 17 00:00:00 2001 From: schrom01 Date: Wed, 19 Oct 2022 13:37:15 +0200 Subject: [PATCH] Added new functions --- DeskriptiveStatistik/Boxplot.py | 42 ++++++++++++ .../DeskriptiveStatistik.py | 64 ++++++------------- DeskriptiveStatistik/__init__.py | 0 3 files changed, 63 insertions(+), 43 deletions(-) create mode 100644 DeskriptiveStatistik/Boxplot.py rename DeskriptiveStatistik.py => DeskriptiveStatistik/DeskriptiveStatistik.py (67%) create mode 100644 DeskriptiveStatistik/__init__.py diff --git a/DeskriptiveStatistik/Boxplot.py b/DeskriptiveStatistik/Boxplot.py new file mode 100644 index 0000000..519d310 --- /dev/null +++ b/DeskriptiveStatistik/Boxplot.py @@ -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]) \ No newline at end of file diff --git a/DeskriptiveStatistik.py b/DeskriptiveStatistik/DeskriptiveStatistik.py similarity index 67% rename from DeskriptiveStatistik.py rename to DeskriptiveStatistik/DeskriptiveStatistik.py index 2e1bf40..29a94fc 100644 --- a/DeskriptiveStatistik.py +++ b/DeskriptiveStatistik/DeskriptiveStatistik.py @@ -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)) diff --git a/DeskriptiveStatistik/__init__.py b/DeskriptiveStatistik/__init__.py new file mode 100644 index 0000000..e69de29