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