J'ai données (pd série) qui ressemble (le rendement des actions par jour, n = 555):Impossible d'obtenir l'axe y sur l'histogramme Matplotlib aux probabilités d'affichage
S = perf_manual.returns
S = S[~((S-S.mean()).abs()>3*S.std())]
2014-03-31 20:00:00 0.000000
2014-04-01 20:00:00 0.000000
2014-04-03 20:00:00 -0.001950
2014-04-04 20:00:00 -0.000538
2014-04-07 20:00:00 0.000764
2014-04-08 20:00:00 0.000803
2014-04-09 20:00:00 0.001961
2014-04-10 20:00:00 0.040530
2014-04-11 20:00:00 -0.032319
2014-04-14 20:00:00 -0.008512
2014-04-15 20:00:00 -0.034109
...
J'aimerais générer un diagramme de distribution de probabilité de ceci. L'utilisation:
print stats.normaltest(S)
n, bins, patches = plt.hist(S, 100, normed=1, facecolor='blue', alpha=0.75)
print np.sum(n * np.diff(bins))
(mu, sigma) = stats.norm.fit(S)
print mu, sigma
y = mlab.normpdf(bins, mu, sigma)
plt.grid(True)
l = plt.plot(bins, y, 'r', linewidth=2)
plt.xlim(-0.05,0.05)
plt.show()
-je obtenir les éléments suivants:
NormaltestResult(statistic=66.587382579416982, pvalue=3.473230376732532e-15)
1.0
0.000495624926242 0.0118790391467
J'ai l'impression de l'axe y est un nombre, mais je voudrais avoir des probabilités à la place. Comment je fais ça? J'ai essayé beaucoup de réponses StackOverflow et je n'arrive pas à le comprendre.
Etes-vous sûr que ce sont des chefs d'accusation? Je suppose que ce sont des valeurs de densité de probabilité puisque votre graphique est normalisé à 1 lorsque vous l'intégrez. La plage de vos valeurs x est juste très petite. – jotasi
Pourrait être, les densités de probabilité ne sont pas mon point le plus fort. Comment puis-je au moins en faire des pourcentages? –
Quels pourcentages voulez-vous avoir? Pour chaque bac, la probabilité que des données soient dans cette case? La densité de probabilité signifie essentiellement que l'intégrale sur la densité pour une certaine gamme x vous donne la probabilité de cette gamme. – jotasi