2016-02-23 1 views
1

J'ai besoin de minimiser une fonction dans Python et ensuite trouver la corrélation entre sa variable (disons f (x, y)). J'ai essayé d'utiliser scipy.optimize.minimize avecRecherche de la corrélation pour une minimisation de fonction

res = minimize (f,x0,method='nelder-mead',options={'xtol': 1e-8, 'disp': True}) 

et est réduite au minimum, mais je ne peux pas la corrélation entre x, y. Il y a un moyen de le faire en utilisant ce paquet? Ou il y a un autre meilleur moyen? (Je ne pas besoin de faire un ajustement sur certains points, je dois juste trouver le minimum de la fonction)

+0

Que voulez-vous dire par « la corrélation entre x, y »? Comment cela devrait-il être calculé? – barny

+0

@barny Corrélation est une relation entre 2 variables. Par exemple, si c'est une corrélation positive entre eux, et x augmente avec dx, alors y augmentera également avec dy, où dx et dy sont liés par cette corrélation. La formule n'est pas toujours aussi simple que je le sais, je me demandais s'il y avait une fonction intégrée. – Silviu

Répondre

0

pour trouver le point minimum d'une fonction f, dans le domaine x0, vous pouvez simplement utiliser scipy.optimize.fmin. la définition de l'argument disp dans cette fonction renvoie le message de convergence. si vous êtes après la régression entre x0 et f, puis utilisez scipy scipy.stats.linregress. si vous voulez calculer la corrélation entre la solution de la fonction scipy.optimize.minimize et la f, vous pouvez utiliser d'origine scipy.signal.correlate

+0

Je ne veux pas calculer la corrélation entre les fonctions. J'ai donc besoin de tracer un gaussien, et de faire varier la médiane et l'écart-type pour minimiser le gaussien pour certaines constantes données. Je veux voir la corrélation entre la médiane et l'écart-type. Puis-je le faire en utilisant scipy.signal.correlate? – Silviu

+0

En général, correlate() prend deux vecteurs et renvoie une seule valeur représentant leur différence (ou shift). médiane et s.d. d'un ensemble de données sont des valeurs singulières donc leur corrélation sera simplement leur différence. calculer la médiane et la densité sd de l'ensemble de données d'origine, puis faire la même chose pour la valeur retournée de minimiser (f, x0) .x (c'est là que le tableau de solution est stocké), puis prendre la différence des deux – bmbigbang