Sto cercando una libreria python che mi consenta di calcolare elementi di calcolo stocastico, come l'aspettativa (condizionale) di un processo casuale che definirei la diffusione. Ho dato un'occhiata a simpy (simpy.sourceforge.net), ma non sembra coprire i miei bisogni.Libreria di calcolo stocastico in python
Questo è per la prototipazione rapida e la sperimentazione. In java, ho usato con successo la libreria (ora inattiva) http://martingale.berlios.de/Martingale.html.
Il problema non è di per sé difficile, ma ci sono molte cose da fare non banali, semplici (uso efficiente della memoria, tecniche di riduzione variabile e così via).
Idealmente, mi sarebbe in grado di scrivere qualcosa del genere (solo illustrativo):
def my_diffusion(t, dt, past_values, world, **kwargs): W1, W2 = world.correlated_brownians_pair(correlation=kwargs['rho']) X = past_values[-1] sigma_1 = kwargs['sigma1'] sigma_2 = kwargs['sigma2'] dX = kwargs['mu'] * X * dt + sigma_1 * W1 * X * math.sqrt(dt) + sigma_2 * W2 * X * X * math.sqrt(dt) return X + dX X = RandomProcess(diffusion=my_diffusion, x0 = 1.0) print X.expectancy(T=252, dt = 1./252., N_simul= 50000, world=World(random_generator='sobol'), sigma1 = 0.3, sigma2 = 0.01, rho=-0.1)
Qualcuno sa di qualcosa di diverso da reimplementare in NumPy per esempio?
Nota: Si tratta di materiale molto interessante, ma purtroppo non sembra includere percorso/tempo di processi dipendenti: http: // pymc .googlecode.com/svn/doc/index.html) – LeMiz
Fare cose del genere per vivere, posso assicurarti che puoi andare d'accordo con il codice banale (cioè senza tecniche di riduzione della varianza) se usi numeri quasirandom (es. Sequenze di Sobol). –
Lo faccio anche per vivere (e anche a Parigi)! Essere in grado di riutilizzare gli stessi disegni quando si simulano i sottostanti può essere molto utile oltre a ridurre la varianza dello stimatore. E anche le sequenze sobol hanno i loro inconvenienti. Ma ovviamente la domanda era sulla sperimentazione, non sul codice di produzione. – LeMiz