Excel是世界上最危險的軟件工具
和樂高玩具一樣,微軟公司的電子表單程序Excel也是一個婦孺皆知,老少咸宜,經久不衰的的辦公寵兒,你可以用它來統計每月的零花錢流水帳,也可以用來計算復雜的投資風險模型,但是很少有人意識到,在Excel平易和強大的外表下,潛伏著巨大的商業風險。
最近一篇被全世界媒體大量引用并被歐美政客廣泛用于證明推行經濟緊縮政策有效(即通過削減政府開支,降低高預算赤字,減少政府債務以推動經濟增長)的知名經濟學論文被發現本身含有嚴重缺陷——作者用Excel電子表格處理數據時用錯了公式。
2010年初,兩名哈佛大學(Harvard)經濟學家卡門·萊因哈特(Carmen Reinhart)和肯尼斯·羅格夫(Kenneth Rogoff)發表了一篇論文,題為《負債時代的增長》,文章聲稱要找出政府債務的關鍵性“閾值”,一個拐點。他們表示,一旦債務超過了國內生產總值(GDP)的90%,經濟增長會嚴重放緩。論文發表時希臘剛剛爆發危機,正好迎合了許多主張把政策“重心”從刺激轉向緊縮的官員。因此這篇論文迅速走紅。
隨著時間推移,另一個問題出現了:其他的研究人員,使用看上去差不多的債務和經濟增長數據,無法重現萊因哈特-羅格夫的研究結果。他們一般都能在高負債和低增長之間找到某種關聯——但是沒有90%這種拐點,或者任何特定的債務水平。后來萊因哈特和羅格夫終于同意讓馬薩諸塞州立大學(University of Massachusetts)的研究人員查看他們的原始Excel數據表——這個結論無法再現的謎解開了。首先他們遺漏了一些數據;其次他們用了非常規的、非常不可取的統計程序;最后,是的,他們的Excel代碼出了個錯。把這些怪異和錯誤的地方改正后,你就得到了其他研究人員的發現:高債務和低增長之間存在某種關聯,看不出誰是因誰是果,至于90%這個“閾值”就完全看不出來。這篇文章的結論雖然被證明是錯誤的, 但是由于這篇論文的影響給全球經濟造成的損失卻是無法估量的。 Excel的威力可見一斑。
不過, 并不是所有的損失都是無法估計的。 在2012年5月, 摩根大通銀行(JPMorgan)的交易員Bruno Michel Iksil(綽號“倫敦鯨”)在企業債券衍生品交易中就因為Excel模型的錯誤導致了20億美元的損失。
故事是這樣的, JP摩根的首席投資官辦公室需要一個估算投資價值及風險的模型(Value at Risk)用以指導衍生品交易。 這個模型由一系列的Excel表格組成,通過手動的從表格間復制數據。 “倫敦鯨”事件后, JP摩根的內部調查發現, “倫敦鯨”在交易操作中并沒有違規。 隨后, JP摩根的模型審查小組對投資模型進行了審查, 他們發現了一些錯誤, 比如模型計算并不是自動化, 有些地方的數據錯誤等。 但是, 最大的錯誤就是,在一個本來應該是除以“新利率和舊利率的平均值”的公式里, 模型設計者錯誤的除以了“新利率和舊利率的和”。 這個錯誤可能會導致對波動性的估算降低一半, 從而影響VaR模型。 而根據這個模型進行交易的“倫敦鯨”, 則由于不知道實際風險要遠大于模型的風險, 從而導致交易量超過實際應該進行交易的量。
這次“倫敦鯨”事件, 直接導致了JP摩根20億美元的交易損失,而且JP摩根估計實際損失可能會超過75億美元, JP摩根的市值因此縮水397億美元并且導致JP摩根的CIO(首席投資官)辭職。
總結:
隨著企業對數據分析的需求越來越高, Excel在很多企業里都是必備的工具。 Excel很容易學習, 這也使得很多沒有編程經驗的人可以使用Excel, 不過這也使得在一些重要場合使用Excel變得很危險。 Excel不是一種編程語言, 它不具備調試和測試的功能。而現有的Excel高級編程培訓, 也并不重視對代碼質量的要求。 這也導致了很多公司使用的Excel模板或者工作表, 除了最早的創建者之外幾乎沒人能看的懂, 更不要說去維護了。
因此, 對于企業來說, 在數據分析中使用Excel,可以參考下面的一些原則:
1)在重要的數據分析場合, 特別是一些需要長期使Excel用的模型,要盡量不用Excel來實現。 利用編程語言來實現, 雖然麻煩一些, 但是從調試到測試到維護, 都會容易很多。
2)一些Ad Hoc的工作, Excel會方便一些, 不過要盡量把Excel表格簡單化。很多分析師喜歡炫耀Excel技巧而把表格搞得過于復雜。 從軟件維護的角度來看, 這樣的做法對于工作表的維護來說,困難很多。 因為Excel的引用和注釋都很難追溯, 在表格關聯復雜的情況下對使用者和維護者來說都是噩夢。
3)在Excel編程培訓中,要按照軟件工程的一些原則, 對代碼的設計提出要求。 增加代碼的可讀性, 可調試和可維護性。
原文鏈接:http://www.ctocio.com/ccnews/12146.html