6
votes

Intervalle de confiance avec la moindre correspondant à Scipy Python

Comment calculer l'intervalle de confiance pour le moindre ajustement carré (sciped.optimize.leallsq) dans Python?


1 commentaires

Vous pouvez utiliser Bootstrap: Stackoverflow.com/a/66008548/10375049


3 Réponses :



4
votes

Je ne suis pas sûr de ce que vous entendez par intervalle de confiance.

En général, moinsq ne connaît pas grand chose de la fonction que vous essayez de minimiser, de sorte que cela ne peut pas vraiment donner un intervalle de confiance. Cependant, il retourne une estimation de l'Hesse, dans d'autres mots, la généralisation des 2e dérivés aux problèmes multidimensionnels.

Comme indiqué dans la doctrine de la fonction, vous pouvez utiliser ces informations avec les résidus (la différence entre votre solution ajustée et les données réelles) pour calculer la covariance des estimations de paramètres, qui est une supposition locale de l'intervalle de confiance .

Notez que ce n'est que des informations locales, et je soupçonne que vous ne pouvez pas parler strictement à une conclusion que si votre fonction objectif est strictement convexe. Je n'ai aucune preuve ni référence sur cette déclaration :).


0 commentaires

2
votes

Le moyen le plus simple d'estimer l'intervalle de confiance (CI) est de multiplier les erreurs standard (écart type) par une constante. Pour calculer la constante, vous devez connaître le nombre de degrés de liberté (DOF) et le niveau de confiance pour lequel vous souhaitez calculer le CI. Le CI estimé de cette manière est parfois appelé CI asymptotique. Vous pouvez en savoir plus à ce sujet dans "Modèles d'adaptation aux données biologiques à l'aide de la régression linéaire et non linéaire" de Mottulsky & Christopoulos ( Google Books ). Le même livre (ou très similaire) est disponible gratuitement comme manuel pour le logiciel de l'auteur .

Vous pouvez également lire Comment calculer CI à l'aide de la bibliothèque C ++ Boost.Math . Dans cet exemple, CI est calculé pour une distribution d'une variable. Dans le cas des moindres carrés ajustement, le DOF n'est pas n -1, mais n-m , où m est le nombre de paramètres. Il devrait être facile de faire la même chose en python.

C'est l'estimation la plus simple. Je ne connais pas la méthode de bootstress proposée par Zephyr, mais elle peut être plus fiable que la méthode que j'ai écrite.


1 commentaires

La question était de savoir comment les calculer pour y avoir accès à l'aide des fonctions Python?