學習 蒙特卡羅方法 必須預先學習哪些知識?
01-21
蒙特卡洛名字高大上啊,本質就是用期望(或者積分,一個意思)求不出來然後用平均數來估計(可以理解為大數定律的一個應用了)。
因為要做實現,對某一個編程語言熟悉下總是好的,不過其實也可以通過學monte carlo來當編程語言入門了,貌似MATLAB用的多些。然後就是看你要用monte carlo做什麼了,物理還是金融工程一類的。不管怎麼樣,你得先知道你要算的是啥,再學怎麼算吧。
以亞式期權定價為例,路徑是這樣的: 啥是期權-&>啥是亞式期權-&>亞式期權在幾何布朗運動假設下怎麼定價,能寫出SDE-&>變成了一個求解期望的問題-&>期望沒法直接用手解出來,需要數值演算法(現在問題來了)-&>monte carlo是一種演算法-&>知道如何生成一條幾何布朗運動路徑-&>寫成程序,並且循環模擬N次,然後求平均數-&>解出來了一個數值解-&>monte carlo當然沒這麼簡單,方差縮減技術,路徑模擬如何降低誤差-&>學會若干種Monte Carlo優化方法-&>實現這些方法,比較下最粗暴的monte carlo,發現效率提升很多-&>自己覺得自己學會monte carlo了-&>去知乎回答問題結論:概率期望方差一類的就算預先知識了,最重要的是學科背景知識,monte carlo只是計算方法。粗暴的monte carlo過後,那些方差縮減技術也就是期望 方差一類的推導還有隨機數的生成。PS:期望是期望,平均數是平均數,期望是更廣的概念。很多人學monte carlo時候對一切理解為「平均數」,沒有期望的概念,比如 Integrate[f(x)g(x), {x, 0, 3}],很多人就是認為x取0到3之間的隨機數,然後求f(X)g(X)的平均數,這沒錯,但是也可以理解為取密度函數為f(x)的隨機數X,求g(x)的平均數。
如果做簡單的Monte Carlo模擬,推薦一款鑲嵌在Excel里的軟體crystal ball,如果要做一些複雜的,就要自己編程了,stata,Excel,matlab都行,就是隨機數的生成挺複雜的,常用的隨機數生成方法都可用上述軟體實現
可以先看下 George Casela 的Monte Carlo Statistical Method 這本書對MC的方法有非常詳細的介紹,然後得會一個軟體例如R或者Matlab。
精通開關機。
精通一門統計語言,excel也可以。
求期望,求積分,模擬系統。
後面有variance reduction技術。然後是random generator。什麼預備的都不需要,這個方法本身就是基礎啊
不懂
推薦閱讀:
※蒙特卡洛方法中,有哪些演算法或者技巧讓你耳目一新,提高智商?
※量子蒙特卡洛方法是什麼?
※布豐用投針實驗估計了 π 值,那麼用什麼簡單方法可以估計自然對數的底數 e 的值?
※如何用一個1-8隨機生成器製作一個1-7隨機數生成器?
TAG:統計 | MonteCarlo | 人工智慧演算法 | 隨機過程 | 蒙特卡洛方法 |