2010-05-26 8 views
14

Quando utilizzare il metodo Monte-Carlo?Perché utilizzare il metodo Monte-Carlo?

Ad esempio, perché Joel ha deciso di utilizzare il metodo Monte-Carlo per Evidence Based Scheduling anziché elaborare metodicamente tutti i dati utente per l'anno passato?

+0

cosa intendi con "elaborazione metodica" dei dati utente? campioni casuali è un modo abbastanza semplice per sommare le curve a campana, come faresti? – amwinter

+2

Non è possibile elaborare tutti i dati disponibili e ottenere le stesse statistiche dicendo "il 75% dei dati è maggiore di X, il 50% dei dati è maggiore di Y e il 25% dei dati è maggiore di Z"? – Gili

risposta

12

Supponiamo di voler stimare una certa quantità di interesse. Nell'esempio di Joel, "data di spedizione" è ciò che si desidera stimare. Nella maggior parte di tali situazioni, ci sono fattori casuali che influiscono sulle nostre stime.

Quando si dispone di una quantità casuale, in genere si desidera conoscere la media e la deviazione standard in modo da poter intraprendere le azioni appropriate. In situazioni semplici, è possibile modellare la quantità come una distribuzione standard (ad es. Distribuzione normale) per cui esistono formule analitiche per la media e la deviazione standard. Tuttavia, esistono molte situazioni in cui non esistono formule analitiche. In tali situazioni, invece di una soluzione analitica per la media e la deviazione standard, ricorriamo alla simulazione. L'idea è:

Fase 1: Generare i fattori che influenzano la quantità di interesse utilizzando distribuzioni appropriate

Fase 2: quantità Compute di interesse

ripetere i punti 1 e 2 molte volte e calcolare la media empirica e deviazione standard per ciò che vuoi sapere.

Quanto sopra è di gran lunga l'applicazione tipica dell'applicazione di monte carlo. Vedi il link wikipedia fornito da Jarrod per diverse applicazioni di questo tipo e alcuni esempi di applicazioni interessanti in cui non vi è alcuna casualità intrinseca (ad es. Stima di pi).

+0

Mi piace la tua risposta tranne per il fatto che i passaggi che dai sono molto vaghi. Puoi renderli più precisi in qualche modo? – Gili

+1

Bene, monte carlo è una vasta area con molte applicazioni. Ad esempio, supponiamo di voler avere alcuni dati sulle varie caratteristiche del progetto (ad es., No di sviluppatori, SO di destinazione, ecc.) E tempi di spedizione (ad es. 3 mesi, 6 mesi, ecc.). Potresti già conoscere la relazione tra le caratteristiche del progetto e i tempi di spedizione. Ad esempio, Tempi nave ~ N (mu, sigma^2) I (Tempi nave> 0) dove N (.) Indica una distribuzione normale, mu e sigma sono funzione delle caratteristiche del progetto e I (Tempi nave> 0) esprime il fatto i tempi di spedizione non possono essere negativi. – vad

+1

È possibile conoscere le conseguenze della modifica di alcuni parametri del progetto (ad es. Aumentare il numero di sviluppatori) sui tempi di spedizione. Sfortunatamente, non esiste un'espressione di forma chiusa per la media di una normale troncata. Quindi, quello che si potrebbe fare è: Fase 1: generare un tronco normale utilizzando il rifiuto di campionamento o inversa metodo transform Fase 2. Conservare tempo nave (in questo caso il passaggio 2 non comporta alcun calcolo) Ripetere i punti 1 e 2 N cronometra e calcola la media e la dev del tempo di spedizione memorizzato nel passaggio 2. Quanto sopra presuppone che si conosca la relazione tra i parametri del progetto e mu e sigma. – vad

3

Wikipedia ha un buon articolo sui metodi di simulazione monte carlo. Ho usato monte carlo in alcune occasioni - in poche parole i metodi MC tendono a fornire risposte accurate quando si tenta di proiettare i risultati utilizzando insiemi di campioni che sono piuttosto casuali e qualcuno in genere usa l'intuizione per cercare di indovinare ad una tendenza. Sfortunatamente provare a spiegare i metodi MC è piuttosto difficile, quindi controlla l'articolo.

+0

Se ho dati di valutazione del gioco x e no di installazioni. Problema: prevedere il no delle installazioni per il gioco È questo il caso giusto per usare la simulazione MC? –

1

Poiché le stime sono in genere abbastanza ampiamente distribuite durante la pianificazione delle attività di programmazione, è più sensato trattarle statisticamente.

Se prendiamo un progetto che richiede centinaia di compiti, gli errori sulle stime saranno uniformi e alla fine si otterrà una distribuzione che mostra la probabilità di completamento del progetto come intervallo.

aggira anche alcuni problemi gravi come il buffering delle attività e la sindrome degli studenti che distorcono ulteriormente i risultati.

2

A volte controllare tutte le opzioni è semplicemente proibitivo.

16

I metodi Monte Carlo sono comunemente utilizzati when the dimensionality of the problem is too high for traditional schemes. Un documento introduttivo sull'argomento è Persi Diaconis The Markov Chain Monte Carlo Revolution.

+0

Carta interessante, ma mi sono perso rapidamente nei dettagli. – Gili

+0

Un bell'aspetto di carta, ma devo dire che ad un fisico delle particelle che usa "Rivoluzione" nel titolo di una carta MC scritta dopo il 2009 sembra un po 'strano. Lo stiamo facendo da tempo abbastanza che Metropolis * è * uno schema tradizionale. – dmckee

+0

@dmckee Quel documento era indirizzato, credo, verso un vasto pubblico di matematici comprendente non solo matematici o statistici applicati ma anche persone coinvolte in altre aree come l'algebra, l'analisi, ecc. Dove i metodi Monte Carlo non sono così ampiamente conosciuti. – jmbr