J'ai adapté un modèle lognormal utilisant R avec un ensemble de données. Les paramètres résultants étaient:
meanlog = 4.2991610
sdlog = 0.5511349
J'aimerais transférer ce modèle sur Scipy, que je n'ai jamais utilisé auparavant. En utilisant Scipy, j'ai pu obtenir une forme et une échelle de 1 et 3,1626716539637488e + 90 - des nombres très différents. J'ai également essayé d'utiliser l'exp du meanlog et du sdlog mais continue à obtenir un graphique bizarre.
J'ai lu tous les documents que je peux sur scipy et je suis toujours confus quant à la signification des paramètres de forme et d'échelle dans ce cas. Serait-il juste logique de coder la fonction moi-même? Cela semble cependant sujet à des erreurs, car je suis nouveau sur scipy.
SCIPY Lognormal (BLUE) contre R Lognormal (RED):
Avez-vous des idées sur la direction à prendre? Les données sont très bien adaptées au modèle R, d'ailleurs, si elles ressemblent à quelque chose d'autre en Python, n'hésitez pas à les partager.
Je vous remercie!
Mettre à jour:
Je lance Scipy 0.11
Voici un sous-ensemble des données. L'échantillon réel est de 38k +, avec une moyenne de 81,53627:
Sous-ensemble:
x
[60, 170, 137, 138, 81, 140, 78, 46, 1, 168, 138, 148, 145, 35, 82, 126, 66, 147, 88, 106, 80, 54, 83, 13, 102, 54, 134, 34]
numpy.mean (x)
99.071428571428569
Alternativement:
Je travaille sur une fonction pour capturer le pdf:
def lognoral(x, mu, sigma):
a = 1 / (x * sigma * numpy.sqrt(2 * numpy.pi) )
b = - (numpy.log(x) - mu) ^ 2 / (2 * sigma ^ 2)
p = a * numpy.exp(b)
return p
Cependant, cela me donne les chiffres suivants (j'en ai essayé plusieurs au cas où j'aurais mélangé le sens de sdlog et meanlog):
>>> lognormal(54,4.2991610, 0.5511349)
0.6994656085799437
>>> lognormal(54,numpy.exp(4.2991610), 0.5511349)
0.9846125119455129
>>> lognormal(54,numpy.exp(4.2991610), numpy.exp(0.5511349))
0.9302407837304372
Des pensées?
Mettre à jour:
relance avec la suggestion "UPQuark":
forme, loc, échelle (1.0, 50.03445923295007, 19.074457156766517)
La forme du graphique est cependant très similaire, le pic se situant autour de 21.