Berechnung der Kovarianz mit Python und Numpy
Ich versuche herauszufinden, wie berechnet sich die Kovarianzmatrix mit der Python-Numpy-Funktion cov. Wenn ich den pass es zwei ein-dimensionale arrays, bekomme ich wieder eine 2x2-matrix der Ergebnisse. Ich weiß nicht, was zu tun. Ich bin nicht groß auf Statistiken, aber ich glaube, dass die Kovarianzmatrix in einer solchen situation sollte eine einzelne Zahl. Diese ist, was ich Suche. Ich schrieb meine eigenen:
def cov(a, b):
if len(a) != len(b):
return
a_mean = np.mean(a)
b_mean = np.mean(b)
sum = 0
for i in range(0, len(a)):
sum += ((a[i] - a_mean) * (b[i] - b_mean))
return sum/(len(a)-1)
Funktioniert, aber ich glaube, dass die Numpy-version ist viel effizienter, wenn ich herausfinden könnte, wie es zu benutzen.
Weiß jemand, wie man die Numpy cov-Funktion durchführen, wie die, die ich schrieb?
Dank,
Dave
InformationsquelleAutor der Frage Dave | 2013-03-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn
a
undb
sind 1-dimensionale Sequenzennumpy.cov(a,b)[0][1]
gleich zu Ihremcov(a,b)
.2x2-array zurückgegeben
np.cov(a,b)
Elemente hat gleich(wo wieder
cov
ist die Funktion, die Sie oben definiert sind.)InformationsquelleAutor der Antwort unutbu
Dank unutbu für die Erklärung. Standardmäßig numpy.cov berechnet die Probe Kovarianz. Erhalten Sie die Bevölkerung Kovarianz können Sie angeben, Normalisierung mit dem Gesamt-N Proben wie diese:
oder so:
InformationsquelleAutor der Antwort Osian