new; library optmum,pgraph; /************************************************************************************/ @ DECLARATION @ /************************************************************************************/ length = 760; /* Nb donnees dans Fichier donnees */ s = seqa(1,1,length); /* séquence de numerotation */ Nbparan = 252; /* Nb données par an (ici donnees journaliere) */ h = 1/Nbparan; /* fréquence */ load x[length,1] = e:\gauss\fmx\donnees\ru.txt; /* Chemin */ /************************************************************************************/ @ FONCTION DE VRAISEMBLANCE @ /************************************************************************************/ proc ml(theta); local a,b,sigma,k1,k2,e,logl,logll; /* les paramètres à estimer */ a = theta[1]; b = theta[2]; sigma = theta[3]; /* les coefficients utilisés */ k1 = exp(-a*h); k2 = sigma^2*(1-exp(-2*a*h))/(2*a); /* l'innovation : la différence entre la valeur "réalisée" et la valeur "attendue" */ e = x[2:760]./100 - k1.*x[1:759]./100 - b*(1-k1); /* la log vraisemblance correspondante */ logl = -0.5*ln(2*pi) - 0.5*ln(k2) - 0.5*e^2/k2; /* la fonction à minimiser (cf. optmum ) */ logll=-sumc(logl); retp(logll); endp; /*output file = ou1.out reset;*/ x0=0.5|0.5|0.5; { y,f,g,cov } = optmum(&ml,x0); /*output off;*/ end;