Sto lavorando per implementare un simulatore Monte Carlo di base in Python per alcuni modelli di gestione del rischio di gestione che sto cercando di fare (fondamentalmente Crystal Ball/@Risk, ma in Python).scipy - genera variabili casuali con correlazioni
Ho un set di variabili casuali n
(tutte le istanze scipy.stats
). So che posso utilizzare rv.rvs(size=k)
per generare k
indipendente da osservazioni da ognuna di queste variabili n
.
Vorrei introdurre le correlazioni tra le variabili specificando una matrice di correlazione semifissa positiva n x n
.
C'è un modo pulito per farlo in scipy?
quello che ho provato
This answer e this answer sembrano indicare che "copule" sarebbe una risposta, ma non vedo alcun riferimento a SciPy a loro.
This link sembra implementare quello che sto cercando, ma non sono sicuro se scipy ha già implementato questa funzionalità. Mi piacerebbe anche che funzioni per variabili non normali.
Sembra che lo Iman, Conover paper sia il metodo standard.
È questo quello che stai cercando? http://stackoverflow.com/a/16025584/190597 – unutbu
Funziona per variabili normali ... Ho altre distribuzioni. – MikeRand
Sembra che il metodo raccomandato (Iman-Conover) usi una normale multi-variata per fare quello che sto cercando, quindi penso che il tuo commento sarà probabilmente un grande pezzo della soluzione finale (che è probabilmente qualcosa che farò costruire a mano). – MikeRand