Funzione di massima verosimoglianza
Hai un problema con Excel? 
Funzione di massima verosimoglianza
di rambo424 (utente non iscritto) data: 30/11/2012 12:50:53
Ciao ragazzi !
devo implementare la funzione di max verosimiglianza su VBA (o direttamente in excel, ma preferirei vba). avete idea di come fare ?
in pratica data la funzione che vi riporto sotto, devo massimizzarla rispetto ad alpha, mu e theta, utilizzando come valori iniziali dell'ottimizzazione
mu=0,552% sigmA=1,404% alpha=2,798%.
al di là del formulone che può spaventare, è un semplice problema di massimizzazione, non dovrebbe essere irrisolvibile !
vi riporto il codice matlab perchè la formula scritta con microsoft equation esce con un format illegibile..
Data = Model.Data; 'vettore con la serie storica del fenomeno
DataF = Data(2:end);
DataL = Data(1:end-1);
Nobs = length(Data); 'numero di osservazioni, ovvero lunghezza di data
TimeStep = Model.TimeStep; 'delta t; è un numero, non crea problemi. nel ns caso = 1/252
alpha = Params(1); 'parametri di cui abbiamo i valori iniziali necessari all'ottimizzazione; bisogna rendere max lnL rispetto ai tre parametri seguenti
mu = Params(2);
sigma = Params(3);
c = 2*alpha/(sigma^2*(1-exp(-alpha*TimeStep)));
q = 2*alpha*mu/sigma^2-1;
u = c*exp(-alpha*TimeStep)*DataL;
v = c*DataF;
z = 2*sqrt(u.*v);
bf = besseli(q,z,1);
lnL= -(Nobs-1)*log(c) + sum(u + v - 0.5*q*log(v./u) - log(bf) - z); |
di Vecchio Frac data: 01/12/2012 13:30:45
Se queste sono le formule, si possono riportare quasi pari pari in VBA, tranne "besseli" (mi sembra di ricordare che tra le funzioni di Excel c'è Bessel).
Qual è il problema? impostare un pezzo di codice in VBA? hai dimestichezza con l'editor?
di rambo424 (utente non iscritto) data: 03/12/2012 09:35:36
il problema è come impostare un codice che non compie i calcoli della formula, ma che la massimizza !
come posso massimizzare una funzione in vba ?
di Vecchio Frac data: 03/12/2012 21:04:01
Questo concetto mi sfugge.
Non so cosa sia la "massimizzazione" di una funzione quindi temo di non poterti aiutare :(
Vuoi Approfondire?