[Python-de] Berechnung von Kovarianzmatrizen

"Reik Börger" ReikHBoerger at gmx.de
Mit Nov 10 12:14:01 CET 2004


Guten Tag,

zunächst einmal 'Hallo, ich bin der Neue'. Ich werde hier öfter mal eine
Frage einwerfen. Meine Programmierkenntnisse sind eher rudimentär und ich
benutze Python vorwiegend, um mathematische Modelle zu implementieren. Und
da auch gleich mein erstes Problem:

Ich muss eine Kovarianzmatrix berechnen (nicht aus Daten schätzen!). Für
jeden Eintrag der Matrix gibt es eine Formel. Ich berechne die obere rechte
Hälfte der Matrix und fülle die unter linke Hälfte symmetrisch auf. Nun muss
diese Matrix positiv semidefinit sein, da es eine Kovarianzmatrix ist. Ist
sie theoretisch auch, aber praktisch habe ich den Effekt, dass (vermutlich)
durch Rechenungenauigkeiten, Rundungsfehler etc. die Matrix negative
Eigenwerte bekommt. Das sollte nicht sein. Wie schaffe ich es, dass die
berechnete Matrix positiv semidefinit wird? Das Ganze sollte auch noch
schnell gehen, da die Berechnung sehr oft erfolgt. Gibt es da in Python so
eine Art Funktion "Approximiere Matrix durch positiv semidefinite Matrix"?

Vielen Dank
Reik

-- 
NEU +++ DSL Komplett von GMX +++ http://www.gmx.net/de/go/dsl
GMX DSL-Netzanschluss + Tarif zum supergünstigen Komplett-Preis!