Compare commits

..

No commits in common. "f8d9f04c6a7a9d645722d307a59709d360b523b1" and "5e14a0e059b4fb7f709a3995954d5efa62802c1d" have entirely different histories.

1 changed files with 7 additions and 51 deletions

View File

@ -1,5 +1,4 @@
import numpy as np import numpy as np
import math
def werteListe(absoluteHaufigkeiten): def werteListe(absoluteHaufigkeiten):
werte = [] werte = []
@ -93,67 +92,24 @@ def standardabweichung(werte=[], absuluteHaufigkeit={}, relativeHaufigkeiten={},
return np.sqrt(varianz(werte, absuluteHaufigkeit, relativeHaufigkeiten, pdf, stichprobengroesse, korrigiert)) return np.sqrt(varianz(werte, absuluteHaufigkeit, relativeHaufigkeiten, pdf, stichprobengroesse, korrigiert))
def kovarianz(wertePaare=[]): def kovarianz(werte=[]):
summe = 0 summe = 0
n = len(wertePaare) n = len(werte)
xMittel = mittelwert([wert[0] for wert in wertePaare]) xMittel = mittelwert([wert[0] for wert in werte])
yMittel = mittelwert([wert[1] for wert in wertePaare]) yMittel = mittelwert([wert[1] for wert in werte])
for wert in wertePaare: for wert in werte:
x = wert[0] x = wert[0]
y = wert[1] y = wert[1]
summe = summe + ((x - xMittel) * (y - yMittel)) summe = summe + ((x - xMittel) * (y - yMittel))
return float(summe) / float(n) return summe / n
def korrelationskoeffizentPearson(wertePaare=[]):
xStandardabweichung = standardabweichung([wert[0] for wert in wertePaare])
yStandardabweichung = standardabweichung([wert[1] for wert in wertePaare])
return float(kovarianz(wertePaare)) / float(xStandardabweichung * yStandardabweichung)
def rang(wertePaare=[], xWerte=[], yWerte=[]):
if(len(wertePaare) < 1):
wertePaare = bildeWertePaare(xWerte, yWerte)
wertePaare.sort(key=lambda tup: tup[0])
wertePaare = [(wertePaare[i][0], wertePaare[i][1], i + 1) for i in range(len(wertePaare))]
wertePaare.sort(key=lambda tup: tup[1])
wertePaare = [(wertePaare[i][0], wertePaare[i][1], wertePaare[i][2], i + 1) for i in range(len(wertePaare))]
return wertePaare
def korrelationskoeffizentPearsonRang(wertePaare=[]):
wertePaare = rang(wertePaare=wertePaare)
n = len(wertePaare)
rangMittelwert = float((len(wertePaare) + 1)) / 2.0
summeZahler = 0
summeNennerX = 0
summeNennerY = 0
for wertePaar in wertePaare:
summeZahler = summeZahler + (wertePaar[2] - rangMittelwert) * (wertePaar[3] - rangMittelwert)
summeNennerX = summeNennerX + math.pow(wertePaar[2] - rangMittelwert, 2)
summeNennerY = summeNennerY + math.pow(wertePaar[3] - rangMittelwert, 2)
return summeZahler / (math.sqrt(summeNennerX) * math.sqrt(summeNennerY))
def bildeWertePaare(x=[], y=[]):
wertePaare = []
if not len(x) == len(y):
return False
for i in range(len(x)):
wertePaare.append((x[i], y[i]))
return wertePaare
if __name__ == '__main__': if __name__ == '__main__':
#werte = [12, -5, 5, 52, -6, -5, 8, -7, 22, -46, 8, -14, 5, 47] #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} #haufigkeiten = {0: 6, 1: 6, 2: 3, 3: 5, 8: 6}
werteX = [59, 35, 43, 23, 42, 27] werte = [(1, 2), (3, 4), (5, 6)]
werteY = [14.6, 11.8, 14.3, 13.0, 14.2, 11.0]
werte = bildeWertePaare(werteX, werteY)
print(kovarianz(werte)) print(kovarianz(werte))
print(korrelationskoeffizentPearson(werte))
print(korrelationskoeffizentPearsonRang(werte))
#werte = [9, 7, 7, 6, 1] #werte = [9, 7, 7, 6, 1]
# haufigkeiten = {11: 3/20, 13: 1/2, 15: 1/10, 17: 1/5, 19: 1/20} # haufigkeiten = {11: 3/20, 13: 1/2, 15: 1/10, 17: 1/5, 19: 1/20}
# print("Anzahl Elemente: " , anzahlElemente(werte)) # print("Anzahl Elemente: " , anzahlElemente(werte))