Modelu ilościowego naśladuje pewne zachowanie świecie przez (a) reprezentacji obiektów przez niektóre ich właściwości numerycznych i (b) łączenie tych numerów w określony sposób w celu wytworzenia wyjścia numeryczne, które również stanowią właściwości będących przedmiotem zainteresowania.
Na tym schemacie trzy dane liczbowe po lewej stronie są łączone, aby uzyskać jeden wynik liczbowy po prawej stronie. Linie liczbowe wskazują możliwe wartości danych wejściowych i wyjściowych; kropki pokazują konkretne używane wartości. W dzisiejszych czasach komputery cyfrowe zwykle wykonują obliczenia, ale nie są one niezbędne: modele zostały obliczone przy pomocy ołówka i papieru lub poprzez zbudowanie „analogowych” urządzeń w drewnie, metalu i obwodach elektronicznych.
Na przykład być może poprzedni model sumuje swoje trzy dane wejściowe. R
kod dla tego modelu może wyglądać
inputs <- c(-1.3, 1.2, 0) # Specify inputs (three numbers)
output <- sum(inputs) # Run the model
print(output) # Display the output (a number)
Jego wynik jest po prostu liczbą,
-0,1
Nie możemy doskonale poznać świata: nawet jeśli model działa dokładnie tak, jak świat, nasze informacje są niedoskonałe, a rzeczy na świecie są różne. Symulacje (stochastyczne) pomagają nam zrozumieć, w jaki sposób taka niepewność i zmienność danych wejściowych modelu powinna przełożyć się na niepewność i zmienność wyników. Robią to, zmieniając losowo dane wejściowe, uruchamiając model dla każdej odmiany i podsumowując kolektywne wyniki.
„Losowo” nie oznacza arbitralnie. Modeler musi określić (świadomie lub nie, jawnie lub pośrednio) zamierzone częstotliwości wszystkich danych wejściowych. Częstotliwości wyjściowe zapewniają najbardziej szczegółowe podsumowanie wyników.
Ten sam model, pokazany z losowymi danymi wejściowymi i wynikowym (obliczonym) losowym wynikiem.
Na rysunku pokazano częstotliwości z histogramami przedstawiającymi rozkłady liczb. Te przeznaczone częstotliwości wejściowe są pokazane na wejściach w lewo, natomiast obliczona częstotliwość wyjściowa, otrzymuje się przez uruchomienie modelowi wiele razy, jest pokazany po prawej stronie.
Każdy zestaw danych wejściowych do modelu deterministycznego daje przewidywalny wynik liczbowy. Gdy model jest używany w symulacji stochastycznej, wynikiem jest rozkład (taki jak długi szary pokazany po prawej stronie). Rozpiętość rozkładu wyników mówi nam, jak można oczekiwać, że wyniki modelu będą się zmieniać, gdy zmieniają się dane wejściowe.
Powyższy przykład kodu można zmodyfikować w ten sposób, aby przekształcić go w symulację:
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")
Jego dane wyjściowe zostały podsumowane histogramem wszystkich liczb wygenerowanych przez iterację modelu z następującymi losowymi danymi wejściowymi:
Zaglądając za kulisy, możemy sprawdzić niektóre z wielu losowych danych wejściowych, które zostały przekazane do tego modelu:
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
Prawdopodobnie odpowiedź na drugie pytanie brzmi, że symulacji można używać wszędzie. W praktyce oczekiwany koszt przeprowadzenia symulacji powinien być niższy niż prawdopodobna korzyść. Jakie są korzyści ze zrozumienia i kwantyfikacji zmienności? Są dwa podstawowe obszary, w których jest to ważne:
Poszukiwanie prawdy , jak w nauce i prawie. Sama liczba jest przydatna, ale o wiele bardziej użyteczna jest wiedza o jej dokładności lub pewności.
Podejmowanie decyzji, jak w biznesie i życiu codziennym. Decyzje równoważą ryzyko i korzyści. Ryzyko zależy od możliwości złych wyników. Symulacje stochastyczne pomagają ocenić tę możliwość.
Systemy komputerowe stały się wystarczająco potężne, aby wielokrotnie wykonywać realistyczne, złożone modele. Oprogramowanie ewoluowało, aby w szybki i łatwy sposób generować i podsumowywać wartości losowe (jak R
pokazuje drugi przykład). Te dwa czynniki połączyły się przez ostatnie 20 lat (i więcej) do tego stopnia, że symulacja jest rutynowa. Pozostaje pomóc ludziom (1) określić odpowiednie rozkłady nakładów i (2) zrozumieć rozkład wyników. Jest to dziedzina ludzkiej myśli, w której komputery jak dotąd niewiele pomagały.