Bonjour
j'utilise python pour sa puissance d'analyse et d'affiche graphique, mais je ne maîtrise pas tout.
j'analyse une série de données dont la distribution par seaborn.distplot indique deux populations d'apparence Gaussiennes comme l'indique le graphe.
P38-1 G3 Syracuse temps de vol 1à5000 400items (distplot)#168.pdf
je cherche la moyenne et les paramètres de deux distributions ainsi que les coeff de corrélation à une Gaussienne en appliquant le code suivant, inspiré d'un post, à liste des données RR.
post =https://stackoverflow.com/questions/...of-data-python
le fichier de donnée csv est ici : www.grosfichiers.com/ZtCuG48mX3x

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
 
import csv
import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns
from scipy.optimize import curve_fit
from pandas import DataFrame
 
DATA_FIC = []
DATA_FIC.append('Temps de vol 1à5000 300 Items.csv')
data = [] # données temps de vol en csv 
 
DEB = 0
FIN = len(DATA_FIC)
 
data = []
with open(DATA_FIC[0],newline='') as f2: # lire_csv
    readcsv = csv.reader(f2)
    for row in readcsv:
        data.append(row)
LG = len (data[0]) # la liste [1] qui contient les temps de vol en texte
RR = [] # liste des temps de vol en int
for i in range(LG) :
    N = int(data[0][i])
    RR.append(N)
 
nbins=50
 
#-----------------------------------------------
#distribution avec seaborn
#-----------------------------------------------
DFRR = DataFrame (RR,columns=['Temps de vol']) # dataframe_vers_liste
TITRE = DATA_FIC[0]+ str(' (sns.distplot)')
plt.figure()
plt.title(TITRE)
xlabel='temps de vol';plt.xlabel(xlabel)
ylabel='fréquence';plt.ylabel(ylabel)
plt.xlim(-10,200)
 
sns.distplot(DFRR,nbins)
 
 
#-----------------------------------------------
# analyse bimodale, produit Moy, ec pour chaque série
#-----------------------------------------------
plt.figure()
 
y,x,_=plt.hist(RR,nbins,alpha=.3,label='data') # distribution des données
 
x = x[0:len(x)-1]
 
def gauss(x,mu,sigma,A):
    return A*np.exp(-(x-mu)**2/2/sigma**2)
 
def bimodal(x,mu1,sigma1,A1,mu2,sigma2,A2):
    return gauss(x,mu1,sigma1,A1)+gauss(x,mu2,sigma2,A2)
#-----------------------------------------------
#expected=(1,.2,250,2,.2,125)  # ligne occultée
params,cov=curve_fit(bimodal,x,y) # x,y,expected remplacé par x,y
sigma=np.sqrt(np.diag(cov))
TITRE = DATA_FIC[0]+ str(' (bimodal)')
plt.title(TITRE)
xlabel='temps de vol';plt.xlabel(xlabel)
ylabel='Effectif';plt.ylabel(ylabel)
plt.xlim(-10,200)
#-----------------------------------------------
plt.plot(x,bimodal(x,*params),color='red',lw=3,label='model') # dist. du modele
plt.legend()
je ne comprends pas l'underscore dans : y,x,_=plt.hist(RR,nbins,alpha=.3,label='data')
j'obtiens les paramètres des 2 distributions en supprimant expected

params : [118.43735482 29.5634689 145.61003059 38.58313203 18.00092132 295.60971648]
où je comprends mu2 = 38 mu1 = 118 ce qui correspond au gaphe, mais quid des autres nombres ?

sigma : [ 2.67719315 2.96249925 9.96313864 1.03867182 1.06554962 12.50581778]
je ne m'y retrouve pas dans les sigma

Merci d'avance de votre aide