Added new functions
This commit is contained in:
parent
4a1023206b
commit
f8d9f04c6a
|
@ -1,4 +1,5 @@
|
||||||
import numpy as np
|
import numpy as np
|
||||||
|
import math
|
||||||
|
|
||||||
def werteListe(absoluteHaufigkeiten):
|
def werteListe(absoluteHaufigkeiten):
|
||||||
werte = []
|
werte = []
|
||||||
|
@ -92,21 +93,49 @@ 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(werte=[]):
|
def kovarianz(wertePaare=[]):
|
||||||
summe = 0
|
summe = 0
|
||||||
n = len(werte)
|
n = len(wertePaare)
|
||||||
xMittel = mittelwert([wert[0] for wert in werte])
|
xMittel = mittelwert([wert[0] for wert in wertePaare])
|
||||||
yMittel = mittelwert([wert[1] for wert in werte])
|
yMittel = mittelwert([wert[1] for wert in wertePaare])
|
||||||
for wert in werte:
|
for wert in wertePaare:
|
||||||
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 float(summe) / float(n)
|
||||||
|
|
||||||
def korrelationskoeffizentPearson(werte=[]):
|
def korrelationskoeffizentPearson(wertePaare=[]):
|
||||||
xStandardabweichung = standardabweichung([wert[0] for wert in werte])
|
xStandardabweichung = standardabweichung([wert[0] for wert in wertePaare])
|
||||||
yStandardabweichung = standardabweichung([wert[1] for wert in werte])
|
yStandardabweichung = standardabweichung([wert[1] for wert in wertePaare])
|
||||||
return float(kovarianz(werte)) / float(xStandardabweichung * yStandardabweichung)
|
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=[]):
|
def bildeWertePaare(x=[], y=[]):
|
||||||
wertePaare = []
|
wertePaare = []
|
||||||
|
@ -119,11 +148,12 @@ def bildeWertePaare(x=[], y=[]):
|
||||||
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 = [163, 165, 166, 169, 170, 171, 171, 173, 174, 175, 177, 177, 179, 180, 185]
|
werteX = [59, 35, 43, 23, 42, 27]
|
||||||
werteY = [59, 62, 65, 69, 65, 69, 76, 73, 75, 73, 80, 71, 82, 84, 81]
|
werteY = [14.6, 11.8, 14.3, 13.0, 14.2, 11.0]
|
||||||
werte = bildeWertePaare(werteX, werteY)
|
werte = bildeWertePaare(werteX, werteY)
|
||||||
print(kovarianz(werte))
|
print(kovarianz(werte))
|
||||||
print(korrelationskoeffizentPearson(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))
|
||||||
|
|
Loading…
Reference in New Issue