Bonjour
Je cherche à faire un fit d'une série de données comme étant la convolution de deux fonctions de densité de probabilité gaussiennes, l'une; f1, ayant comme moyenne (1-tau)*m et de variance (1-tau)*sigma²
et l'autre, f2, de moyenne tau*mu, et de variance P*tau*sigma²
La fonction pour fitter les données est donc la somme de i=0 à k des f1(i)*f2(k-i),
sigma et m peuvent être connus et donc fixés si nécessaire
je souhaite que tau soit le paramètre sur lequel se réalise le fit; éventuellement P aussi (mais on peut le fixer à 2 si nécessaire).
tau prend des valeurs entre 0 et 1, et P des valeurs entières entre 2 et 10.
Comment puis-je faire cela? Je suis sûr que c'est très simple mais n'y arrive pas.
J'ai essayé par plusieurs moyens, en tentant de faire le fit par l'outil cftool à chaque fois:
J'ai défini les 2 gaussiennes par normpdf et:
--utilisé conv pour la convolution; la fonction théorique est bien et "plottable" mais alors cftool refusait de faire le fit (il me dit que les valeurs sont des NaN)
--faire un programme avec une boucle pour la somme:
Et là le fit cftool fonctionne mais est complètement à côté de la plaque même pour des séries de données avec des valeurs exactes il me sort des valeurs aberrantes pour les paramètres.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 gaussienneconv[d] = gaussienneconv(tau, P, sigma, mu,x) compteur=0 for i=0:1:x compteur=compteur+f1(tau,sigma,m,i)+f2(tau,P,sigma,m,x-i); end; d=compteur; end
J'ai essayé aussi avec une intégrale pour le produit de convolution mais le cftool refuse de fonctionner (taille des objets?)
Peut-être dois-je employer un autre fit que cftool, une autre forme plus simple de la fonction, et/ou changer les paramètres de cftool?
Merci d'avance pour votre aide
Bill
Partager