閔云藝 阮國良
摘 要:在群落生態(tài)學中生物多樣性指數(shù)的計算很常見但十分繁瑣,通過使用Excel內置的函數(shù)進行逐步分解計算過程,可以顯著提高計算效率并避免由應用函數(shù)的嵌套造成的人為錯誤。該文選取幾種常見的生物多樣性指數(shù):Shannon-Wiener多樣性指數(shù)、Margalef豐富度指數(shù)、Pielou均勻度指數(shù),使用VBA編寫相應的自定義函數(shù),以期簡化其計算過程。使用編寫好的自定義函數(shù),通過實例與分步計算進行對比。結果表明,自定義函數(shù)的計算結果準確,且有較好的易用性和可重復性。
關鍵詞:VBA 生物多樣性指數(shù) 自定義函數(shù)
中圖分類號:S718 文獻標識碼:A 文章編號:1672-3791(2015)12(a)-0247-02
生物多樣性是指生命有機體及其賴以生存的生態(tài)綜合體的多樣化和變異性,包括生命形式的多樣性、生命形式和生命形式及生命形式和環(huán)境之間相互作用的多樣性[1],多樣性指數(shù)是以種的數(shù)目、全部種的個體數(shù)及每個種的個體數(shù)為基礎,綜合反映群落中的豐富度和均勻程度的數(shù)量指標[2]。在群落多樣性研究中,這些指標應用十分廣泛。根據(jù)研究中所用的尺度不同,這些指標又可以分為α、β、γ三種類型[3]。
這些指標都是基于樣點—種類數(shù)據(jù)矩陣得到的,看似簡單的計算實際操作時卻十分繁瑣,通用統(tǒng)計軟件如SPSS、SAS、R等也沒有針對這些計算專門的程序模塊。作為一款操作簡單、界面友好、功能強大的電子表格軟件,Excel被廣泛的應用到生物多樣性指數(shù)中。目前使用Excel的內置功能進行生物多樣性的計算,在易用性和效率上都是有限的。VBA是Visual Basic for Application的縮寫,是微軟Office組件中統(tǒng)一的應用程序自動化語言,它基于VB,但又依賴Office組件(如Excel、Word等)。VBA可以直接調用Excel的內置函數(shù),同時也可以自編程一些有針對性的函數(shù)簡化工作,通過自編程函數(shù)可以將上述繁復的分步計算使用循環(huán)與判斷語句完成。該文選取常用的幾種生物多樣指數(shù),使用VBA編寫相應的自定義函數(shù)以期能夠實現(xiàn)計算的簡化。
1 計算準備
1.1 操作系統(tǒng)與軟件版本
該文所有的數(shù)據(jù)錄入與VBA編程工作均在Microsoft Windows 7系統(tǒng)平臺下的Microsoft Office 2013中完成。
1.2 原始數(shù)據(jù)矩陣與計算公式的選取
該文選取3種常見的生物多樣性指數(shù),各指數(shù)的名稱和計算公式如下。
(2)Margalef物種豐富度指數(shù)。
(3)Pielou均勻度指數(shù)。
上述式中,S為物種總數(shù);N為物種的個體總數(shù);ni為屬于種i的個體;Pi為屬于種i的個體與全部個體的比值。為了更好地理解各指數(shù)中各參數(shù)的意義,這里列出原始數(shù)據(jù)矩陣。數(shù)據(jù)矩陣中的S、N+r、nsr分別對應各計算公式中的s、ni、N。
2 VBA實現(xiàn)計算過程
2.1 自編程函數(shù)解析
應用VBA自編程函數(shù)實現(xiàn)生物多樣性指數(shù)的計算實際也是對計算過程進行了分解,只是這些計算都被封裝成為一個整體,并直接得到需要的結果。
2.2 函數(shù)使用方法
3個指數(shù)的計算的源碼分別保存為相應名稱的Excel加載宏格式,使用時,只需要按需加載相應的加載宏。使用加載宏的步驟為:依次點擊[文件]—選項—[自定義功能區(qū)],在界面右方的選項框中勾選[開發(fā)工具]。點擊確定,此時Excel主界面的菜單欄會出現(xiàn)開發(fā)工具菜單,點擊該菜單,在出現(xiàn)的詳細菜單欄中點擊[加載項],點擊[瀏覽],轉到Excel加載宏所在的位置選擇,再次點擊確定即可。加載完成后,直接在單元格按照使用Excel內置函數(shù)的方法輸入函數(shù)名稱并選取原始數(shù)據(jù)區(qū)域、填寫相應參數(shù)即可計算出相應指數(shù)。
3 結果驗證
將自定義函數(shù)的方法與按照公式定義分步計算的方法進行對比和驗證。使用Excel隨機數(shù)發(fā)生器隨機生成的5個種×5個樣方的正態(tài)分布(μ=500,σ=250,為負的數(shù)據(jù)改為0)的數(shù)據(jù)矩陣進行計算驗證(僅以2為底數(shù)的對數(shù)為例,即給d賦值)。計算多樣性指數(shù)時,只需像使用Excel內置函數(shù)一樣輸入自定義函數(shù)的名稱并選擇數(shù)據(jù)即可。分步計算多樣性指數(shù)的方法以Shannon指數(shù)為例:首先求Pi,再求Pi的對數(shù),兩者相乘的積相加再取絕對值,可以看到計算一個樣點的H′時,中間步驟的計算都很簡單,但過程繁瑣,僅僅5×5的數(shù)據(jù)矩陣,中間數(shù)據(jù)的存儲表格是原始數(shù)據(jù)的幾倍。最終結果上,使用自定義函數(shù)的方法與分步計算的方法得到的結果完全一致。
4 討論
該文就三種常見的生物多樣性指數(shù)的計算使用VBA編寫自定義函數(shù),關于Shannon指數(shù)和Pielou均勻度指數(shù),都分別有以2和10為底的兩種算法,在中國《海洋監(jiān)測規(guī)范》中以2為底數(shù)計算生物多樣性指數(shù)為標準方法。通過上述的實例可以看到,自編程函數(shù)在計算效率上是分步計算不能比擬的。數(shù)組函數(shù)的應用該文并沒有進行實例分析,其本質在于使用嵌套函數(shù)簡化分步計算,但每次計算都要輸入很長的數(shù)組公式,在易用性上和可重復性上與加載宏的應用相比也是有差距的。
使用VBA編程將生物多樣性的計算模塊化,簡化了分布計算時的繁瑣,也不需要重復的輸入數(shù)組公式,一定程度上大大簡化了生物多樣性的計算。但筆者自身功底有限,有能力的讀者還可進一步基于VBA開發(fā)出擁有良好人機交互的生物多樣性計算軟件??傊?,Excel是生態(tài)學中十分實用的數(shù)據(jù)錄入和計算軟件,學會VBA編程可以更大程度的簡化生態(tài)學中涉及到的計算。
參考文獻
[1] 李慧榮.生物多樣性和生態(tài)系統(tǒng)功能研究綜述[J].生態(tài)學雜志,2004,23(3):109-114.
[2] 覃林.統(tǒng)計生態(tài)學[M].北京:中國林業(yè)出版社,2009.
[3] 劉雨芳.Excel在群落生物多樣性參數(shù)計算中的應用[J].湘潭師范學院學報,2003,25(2):80-82.