Un modello quantitativo emula alcuni comportamenti del mondo (a) rappresentando gli oggetti con alcune delle loro proprietà numeriche e (b) combinando quei numeri in un modo definito per produrre output numerici che rappresentano anche proprietà di interesse.
In questo schema, tre input numerici a sinistra sono combinati per produrre un output numerico a destra. Le linee numeriche indicano i possibili valori degli ingressi e delle uscite; i punti mostrano valori specifici in uso. Oggi i computer digitali di solito eseguono i calcoli, ma non sono essenziali: i modelli sono stati calcolati con carta e penna o costruendo dispositivi "analogici" in circuiti di legno, metallo ed elettronici.
Ad esempio, forse il modello precedente somma i suoi tre input. R
il codice per questo modello potrebbe apparire
inputs <- c(-1.3, 1.2, 0) # Specify inputs (three numbers)
output <- sum(inputs) # Run the model
print(output) # Display the output (a number)
Il suo output è semplicemente un numero,
-0.1
Non possiamo conoscere perfettamente il mondo: anche se il modello funziona esattamente come il mondo, le nostre informazioni sono imperfette e le cose nel mondo variano. Le simulazioni (stocastiche) ci aiutano a capire come tale incertezza e variazione negli input del modello dovrebbero tradursi in incertezza e variazione negli output. Lo fanno variando gli input in modo casuale, eseguendo il modello per ogni variazione e riassumendo l'output collettivo.
"Casualmente" non significa arbitrariamente. Il modellatore deve specificare (consapevolmente o meno, esplicitamente o implicitamente) le frequenze previste di tutti gli input. Le frequenze delle uscite forniscono il riepilogo più dettagliato dei risultati.
Lo stesso modello, mostrato con input casuali e l'output casuale (calcolato) risultante.
La figura mostra le frequenze con istogrammi per rappresentare le distribuzioni dei numeri. Le frequenze di ingresso previste sono visualizzate per gli ingressi a sinistra, mentre la frequenza di uscita calcolata , ottenuta eseguendo il modello più volte, è mostrata a destra.
Ogni serie di input per un modello deterministico produce un output numerico prevedibile. Quando il modello viene utilizzato in una simulazione stocastica, tuttavia, l'output è una distribuzione (come quella lunga grigia mostrata a destra). La diffusione della distribuzione degli output ci dice come ci si può aspettare che le uscite del modello possano variare quando i suoi input variano.
L'esempio di codice precedente potrebbe essere modificato in questo modo per trasformarlo in una simulazione:
n <- 1e5 # Number of iterations
inputs <- rbind(rgamma(n, 3, 3) - 2,
runif(n, -2, 2),
rnorm(n, 0, 1/2))
output <- apply(inputs, 2, sum)
hist(output, freq=FALSE, col="Gray")
Il suo output è stato riassunto con un istogramma di tutti i numeri generati ripetendo il modello con questi input casuali:
Sbirciando dietro le quinte, potremmo ispezionare alcuni dei tanti input casuali che sono stati passati a questo modello:
rownames(inputs) <- c("First", "Second", "Third")
print(inputs[, 1:5], digits=2)
100 , 000
[,1] [,2] [,3] [,4] [,5]
First -1.62 -0.72 -1.11 -1.57 -1.25
Second 0.52 0.67 0.92 1.54 0.24
Third -0.39 1.45 0.74 -0.48 0.33
Probabilmente, la risposta alla seconda domanda è che le simulazioni possono essere utilizzate ovunque. In pratica, il costo previsto per l'esecuzione della simulazione dovrebbe essere inferiore al probabile beneficio. Quali sono i vantaggi della comprensione e della quantificazione della variabilità? Esistono due aree principali in cui questo è importante:
Alla ricerca della verità , come nella scienza e nella legge. Un numero da solo è utile, ma è molto più utile sapere quanto sia preciso o certo quel numero.
Prendere decisioni, come nel mondo degli affari e della vita quotidiana. Le decisioni bilanciano rischi e benefici. I rischi dipendono dalla possibilità di risultati negativi. Le simulazioni stocastiche aiutano a valutare tale possibilità.
I sistemi informatici sono diventati abbastanza potenti da eseguire ripetutamente modelli realistici e complessi. Il software si è evoluto per supportare la generazione e il riepilogo di valori casuali in modo rapido e semplice (come R
mostra il secondo esempio). Questi due fattori si sono combinati negli ultimi 20 anni (e oltre) al punto in cui la simulazione è di routine. Ciò che resta è aiutare le persone (1) a specificare le distribuzioni appropriate degli input e (2) a comprendere la distribuzione degli output. Questo è il dominio del pensiero umano, dove finora i computer sono stati di scarso aiuto.