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