Bonjour tout le monde,
J'ai une densité de probabilité (PDF) dont je voudrais estimer le paramètre par maximum de vraisemblance.
Le problème est que cette PDF est très complexe et fait intervenir la fonction de Marcum.
Le calcul de la fonction de vraisemblance ne pouvant etre faite à la main comme pour le cas d'une distribution gaussienne ou autre, j'ai décidé de faire tout passer par Matlab.
Voici la PDF en question et l'implémentation matlab que j'ai faite pour estimer le paramètre K:
PDF(x)=(1/(2*pi))*exp(-K)+sqrt(K/pi)*cos(x).*exp(-K*(sin(x)).^2).*qfunc(-sqrt(2*K)*cos(x))
Implémentation Matlab:
1 2 3 4
| syms K;
pdfi=(1/(2*pi))*exp(-K)+sqrt(K/pi)*cos(d).*exp(-K*(sin(d)).^2).*qfunc(-sqrt(2*K)*cos(d));
ll=sum(log(pdfi));
out=diff(ll); |
Pour estimer le K je fais:
fzero(@(K) eval(out), 0);
Questions: Ca prend enormémént de temps pour s'executer (avec un echantillon du signal de taille 100). Quelqu'un aurait il une méthode plus rapide pour faire ce calcul?
Ou bien existe-t-il une fonction sur matlab qui permet de faire une estimation par maximum de vraisemeblance etant donné un modèle?
Merci pour vos réponses.
Partager