L'obtention de la norme des erreurs sur les paramètres ajustés à l'aide de l'optimiser.leastsq méthode en python

J'ai un ensemble de données (déplacement vs temps), que j'ai monté pour un couple d'équations à l'aide de l'optimiser.leastsq méthode. Je suis maintenant à la recherche pour obtenir des valeurs d'erreur sur les paramètres ajustés. En regardant à travers la documentation de la matrice de sortie est la matrice jacobienne, et je la multiplie par le résidu de la matrice pour obtenir de mes valeurs. Malheureusement, je ne suis pas statisticien, donc je me noie un peu dans la terminologie.

De ce que je comprends tout ce que j'ai est la matrice de covariance qui va avec mon paramètres ajustés, afin que je puisse racine carrée les éléments de la diagonale pour obtenir mon erreur standard sur les paramètres ajustés. J'ai un vague souvenir de la lecture que la matrice de covariance est qu'est-ce que la sortie de l'optimiser.leastsq méthode de toute façon. Est-ce correct? Si non, comment voulez-vous obtenir le résidu de la matrice de multiplier la sortie du Jacobien pour faire mon matrice de covariance?

Toute aide serait grandement appréciée. Je suis très nouveau à python, et donc de m'excuser si la question s'avère être une base.

le raccord code est comme suit:

fitfunc = lambda p, t: p[0]+p[1]*np.log(t-p[2])+ p[3]*t # Target function'

errfunc = lambda p, t, y: (fitfunc(p, t) - y)# Distance to the target function

p0 = [ 1,1,1,1] # Initial guess for the parameters


  out = optimize.leastsq(errfunc, p0[:], args=(t, disp,), full_output=1)

La args t et disp est et tableau de temps et displcement valeurs (fondamentalement juste 2 colonnes de données). J'ai importé tous les éléments nécessaires à la tope du code. Les valeurs ajustées et la matrice fournie par la sortie comme suit:

[  7.53847074e-07   1.84931494e-08   3.25102795e+01  -3.28882437e-11]

[[  3.29326356e-01  -7.43957919e-02   8.02246944e+07   2.64522183e-04]
 [ -7.43957919e-02   1.70872763e-02  -1.76477289e+07  -6.35825520e-05]
 [  8.02246944e+07  -1.76477289e+07   2.51023348e+16   5.87705672e+04]
 [  2.64522183e-04  -6.35825520e-05   5.87705672e+04   2.70249488e-07]]

Je soupçonne que l'ajustement est un peu suspect tout cas pour le moment. Cela sera confirmé quand je peux les erreurs.

  • docs.scipy.org/doc/scipy/reference/generated/...
  • Pas entièrement sûr de ce que votre demande, peut-être quelques exemples serait utile.
  • C'est la principale docs que j'ai été à la recherche sur. Le code que j'ai utilisé a été ajouté à la description ci-dessus
  • Je pense avoir trouvé un moyen de contourner cela (quoique un peu des inconvénients en termes de réécriture du code), je chose que le " optimiser.curve_fit' sorties le covarience de la matrice à partir de laquelle vous pouvez obtenir vos erreurs, et il utilise la même régression des moindres carrés méthode comme le " optimiser.leastsq'. Quelqu'un peut-il confirmer que c'est correct?
  • Oui, curve_fit renvoie la matrice de covariance pour l'estimation du paramètre (l'incertitude). Si vous souhaitez utiliser leastsq directement, vous pouvez également vérifier la source de curve_fit.
InformationsquelleAutor Phil | 2013-01-29