Ellipsoide de confiance

Bonjour,

J'aimerais sous python, à partir d'une matrice de covariance (en 2D) tracer l’ellipsoïde de confiance à 95%. Je ne vois pas comment faire...

Rmq: Je sais qu'une matrice de covariance est une matrice SDP donc je peux la diagonaliser dans un espace propre dont la matrice des vecteurs propres correspond à une matrice de rotation...

Réponses

  • Re;

    1) J'ai trouvé sur internet ce code qui trace l’ellipsoïde de confiance.
    def plot_cov(cov, mean=[0, 0], cst=6, num=200):
        """Display the ellipse associated to the covariance matrix cov.
        If mean is specified, the ellipse is translated accordingly.
        """
        cov = np.linalg.inv(np.asarray(cov))
        mean = np.asarray(mean)
        theta = np.linspace(0, 2*np.pi, num=num)
        X = np.c_[np.cos(theta), np.sin(theta)]
        X = X.T * np.sqrt(cst / np.diag(X.dot(cov.dot(X.T))))
        X = X.T + mean
        plt.plot(X[:, 0], X[:, 1], 'r')
    
    Je comprends que l'on va transformer le cercle unité, pour obtenir l’ellipsoïde cependant je ne comprends pas comment l'auteur procède.
    Cette ligne me pose problème :
    X = X.T * np.sqrt(cst / np.diag(X.dot(cov.dot(X.T))))
    
    À quoi sert le cst ? Que représente ce produit matriciel ?

    2) J'essaie de le relier à cette ressource http://www.visiondummy.com/2014/04/geometric-interpretation-covariance-matrix/ sans succès pour le moment...
    La lecture de cet article me donne envie de trouver la décomposition (Décomposition spectrale) de la matrice de covariance $\Sigma=RDR^{-1}$ (avec $D=SS$ et $R^{-1}=R^T$). $R$ via ses 2 colonnes va déjà me donner les deux axes propres (unitaires) de l’ellipsoïde. Pour les représenter je cherche les valeurs propres, ce qui me permet de les dilater.

    Cependant je n'ai ici que les axes de l’ellipsoïde or je souhaiterais avoir l’ellipsoïde... Du coup je pensais chercher une formule qui trace l’ellipsoïde en fonction de ses axes principaux. Bon on voit que ma démarche est lourde et le code ci-dessus paraît beaucoup plus simple en ne se servant que de l'algèbre linéaire. Quelle matrice va transformer le cercle unité en l’ellipsoïde que je souhaite ?

    Comment intégrer la "confiance" (la taille de l'ellipse varie en fonction de celle-ci: http://www.visiondummy.com/2014/04/draw-error-ellipse-representing-covariance-matrix/)?

    Piste: Ensuite si l'on se donne une direction (un vecteur) $x$, on cherche quelle est la variance dans cette direction. Cela nous est donné par $Var(x)=x^T\Sigma x$
  • Personne n' a jamais fait ce genre de choses (ça ne semble effectivemznt pas évident mais je pensais que c était une illustration classique de l'interprétation géométrique d'une loi gaussienne bivariée).

    Edit: une lecture très éclairante
  • Quelqu'un à une référence sur les ellipsoïdes de confiance ?

    J'ai vu Probabilités pour les non-probabilistes de Walter Appel qui en parle. Mais il ne s'étends pas notamment sur les aspects algébriques.
Connectez-vous ou Inscrivez-vous pour répondre.