商業分析中的很多應用要求從特定的概率分布中隨機抽樣。例如,在財務模型中,當銷售額、銷量增長幅度、運營支出和通貨膨脹因子等全都不確定時,我們可能對累積的貼現現金流的分布感興趣,而這一分布可以用概率分布來描述。那些決策模型的結果變量,是隨機輸入變量的複雜函數。要理解這些變量的概率分布,只有藉助所謂蒙特-卡羅方法的抽樣流程才能實現這一抽樣流程。
Excel獲取隨機數
從概率分布中產生隨機樣本,其基本原理是隨機數的概念。隨機數是均勻分布在0和1之間的數。從技術上講,電腦不能產生真正的隨機數,因為它們必須使用一個可預測的算法。但是,設計用於產生一個數列的算法,似乎是隨機的。在 Excel中,我們可以使用函數RAND()在任何一個單元格之中產生隨機數。這個函數沒有參數,因此,括號之中應當保持空格(但括號是必需的)。下圖是顯示在 Excel I中產生的10個隨機數。你應當知道的是,除非阻止了自動的重新計算功能,否則,不論什麼時候修改任何單元格中的值,包含有RAND()的單元格中的值都會改變。
在 Excel的「公式」選項卡的「計算」組中的「計算選項」,可以手動地更改「自動計算」的選項。
在手動重新計算模式下,只有在按下了F9按鈕時,工作表才會重新計算。
從離散概率分布中抽樣
使用隨機數從離散概率分布中抽樣,很容易做到。接下來將使用擲兩個骰子的概率分布來解釋這一過程。
從擲兩個骰子的結果的概率分布中抽樣,用小數來表示的概率質量函數和累積分布函數如下所示。
注意,F(x)值將從0到1之間的區間分成更小的區間,這些更小的區間與結果的概率相對應。例如,從0(但不包括)至0.028(包括)的區間中,其概率為0.028,與結果x=2相對應;從0.028(但不包括)至0.083(包括)的區間,其概率為0.056,與結果x=3相對應;依此類推。概括如下:
這樣,任何隨機數都必須處在這些區間的某一個之中。所以,為了從這個分布中產生個結果,我們只需要選擇一個隨機數,並確定它處在哪個區間之中。假設我們使用圖中的數據。第一個隨機數是0.902656.它處在與樣本結果10相對應的區間之中。第二個隨機數是0.396774.它處在與結果6相對應的區間之中。基本上,這相當於我們在電腦上發明了擲骰子的方法。如果反覆做下去,那麼,每個結果發生的頻率,應當與隨機數的區間的大小成比例(也就是說,概率與結果相關聯),因為隨機數是均勻分布的。
從常見的概率分布中抽樣
產生隨機數並將它們轉換成從概率分布中獲取的結果的方法,可以用於從幾乎任何分布中抽取的樣本。從某個規定的概率分布中產生的隨機的值,稱為隨機變數。例如,將隨機數轉換成一個來自a和b之間的均勻分布的隨機變數,是件很容易的事。考慮下面這個公式:
U=a+(b-a)*RAND()
注意當RAND()=0、U=a時的情形以及當RAND()接近1、U接近b時的情形。對於RAND()介於0和1之間的其他任何值,(b-a) * RAND()代表著區間(a,b)的比例,與 RAND()對區間(0,1)時的比例相同。因此,所有介於a與b之間的實數,都可能發生。由於RAND()是均勻分布的,因此,它也是U。
雖然這十分容易,但確實難以看出是怎樣從其他分布中產生隨機變數的,比如正態分布或指數分布。這裡不描述如何做這些事情的技術細節,而是描述一下 Excel中做這些事情的能力。
使用Excel隨機數發生器
Excel讓你可以從離散分布和其他一些分布中產生隨機變數,方法是運用「分析」工具欄中的「隨機數發生器」選項。對於功能區的中「數據」選項卡,選擇「分析」組的「數據分析」選項,然後選擇「隨機數發生器」選項。接下來,就會出現如下圖所示的隨機數發生器的對話框。
從這個對話框中可以選擇七種分布:均勻、正態、伯努利、二項式、泊松、模式以及離散(點擊「模式」後,出現了下限和上限的限制、間隔、重複每一數字以及重複數列等選項)。如果你選擇「輸出區域」選項,那麼,你需要規定用來保存結果的輸出表格的左上角單元格引用、變量的個數(你想要發生的值的列數)、隨機數個數(你想要為每個變量發生的數據點的個數)以及分布類型。默認的分布是離散分布。
接下來將從平均值為12的泊松分布中產生100個結果。在「隨機數發生器」對話框中,把變量個數」設定為1,把「隨機數個數」設定為100,並且從「分布」的下拉框中選擇「泊松」。對話框將會產生變化,要求你輸入λ的值,也就是泊松分布的平均值。在該方框中輸入12,點擊「確定」按鈕。該工具將會在一列之中顯示隨機數。
下圖將演示整個操作過程並將結果生成直方圖。
隨機數發生器工具還讓你能夠規定隨機數種子的選項。隨機數種子是從已經發生的一連串隨機數中取的一個值。通過規定同一個種子,你可以再晚些時候再發生同一些隨機數。
當我們在模擬過程中想要再產生一個完全相同的「隨機」事件系列,以便測試同種情況下不同的策略或決策變量的效果時,確定隨機數種子是非常理想的做法。不過,使用「隨機數發生器」工具的一個劣勢是:要產生一組新的樣本值,你必須重複發生隨機數的過程。按下「重新計算」按鈕(F9)將不能改變這些值。這可能使人們難以用這一工具來分析決策模型。
Excel還提供了幾個可以用來產生隨機變數的函數。對於正態分布,可以使用:
NORM.INV(probability,mean, standard deviation)——帶有規定的平均值和標準差的正態分布。NORM.S.INV(probability)——標準正態分布。對於某些高級分布,可以使用:
LOGNORM.INV(probability,mean, standard_deviation)——參數分布,其中Ln(X)已經規定了平均值和標準差。BETA.INV(probability,alpha,beta,A,B)——貝塔分布。使用這些函數,只要在函數中概率的位置輸入RAND()就可以了。比如,NORM. INV(RAND(),5,2)將從一個平均值為5、標準差為2的正態分布中發生隨機變數。每次工作表被重新計算,就發生新的隨機數,因此也產生新的隨機變數。
這些函數可以嵌入到單元格公式中,而且不論什麼時候工作表被重新計算,都將產生新的值。