
Maxent簡要使用教程
在AT&TLabs-Rearch、普林斯頓大學、生物多樣性和生物技術研究中心以
及美國自然歷史博物館的支持下,本教程由StevenPhillips,MiroDudik和Rob
Schapire撰寫,基本介紹了如何使用MaxEnt程序對物種的地理分布進行最大熵
建模。有關最大熵建模背后的理論以及此處使用的數(shù)據(jù)和統(tǒng)計分析的主要類型的
詳細說明,請參見
ps,re,Maximumentropy
modelingofspeciesgeographic
icalModelling,Vol190/3-4pp231-259,2006.
Twoadditionalpapersdescribingmorerecently-addedfeaturesoftheMaxent
softwareare:
psandMiroslavDudik,Modelingofspeciesdistributionswith
Maxent:newextensionsanda
phy,Vol31,pp161-175,2008.
ps,gtheblackbox:anopen-sourcereleaof
phy,Inpress,2017.
我們使用的環(huán)境數(shù)據(jù)包括南美的氣候和海拔數(shù)據(jù)以及潛在的植被層。我們的
物種樣本是褐喉三趾樹懶(Bradypusvariegatus)。這些數(shù)據(jù)來自2001年的
Anderson&Handley分類法修訂版(/reference/84876),和Phillips
的2006年論文中。本教程將假定所有數(shù)據(jù)文件都與maxent程序文件位于同一目
錄中。否則,您將需要在此處使用的文件名前面使用路徑(例如c:datamaxent
tutorial)。
如果您想在出版物,報告或在線文章中引用本教程,請適當引用以下內容:
Phillips,blefromurl:
/open_source/maxent/.Accesdon
XXXX-XX-XX.
開始
下載
該軟件包含一個jar文件,可以在運行Java1.4或更高版本的任何
計算機上使用。可從/open_source/maxent/
下載Maxent及其相關文獻。可以從/java/downloads獲得Java運行
時環(huán)境。如果您使用的是MicrosoftWindows(如此處假設),則還應下載文件
,并將其保存在與相同的目錄中。該網站有一個名為
“”的文件,其中包含有關在計算機上安裝程序的說明。
注:maxent網址在中國國內須通過VPN才能打開。
安裝
如果使用的是MicrosoftWindows,只需單擊文件。或者,請在命
令外殼程序中輸入“”(其中“512”可以替換為您希望
程序可用的兆字節(jié)內存)。或者選中,點擊鼠標右鍵,打開方式選擇
OpenJDKplatformbinary。將出現(xiàn)以下屏幕:
要執(zhí)行運行,您需要提供一個包含存在位置(經緯度)的文件(“samples”),
一個包含環(huán)境變量(環(huán)境圖層)的目錄和一個輸出目錄。在我們的示例中,存
在位置的文件位于“”中,環(huán)境層位于目錄“l(fā)ayers”中,輸出
將進入目錄“outputs”。您可以手動輸入這些位置,或瀏覽它們。注:samples和layers
文件可以在/open_source/maxent/,點擊tutoria下的tutorial-data,進行
下載。
瀏覽環(huán)境變量時,請記住,您正在尋找包含它們的目錄-無需向下瀏覽到目錄
中的文件。輸入或瀏覽Bradypus的文件后,該程序如下所示:
注:本人將所有文件都放入D:MAXENT模型軟件。
包含存在位置的csv格式文件“”。前幾行是如下:
species,longitude,latitude
bradypus_variegatus,-65.4,-10.3833
bradypus_variegatus,-65.3833,-10.3833
bradypus_variegatus,-65.1333,-16.8
bradypus_variegatus,-63.6667,-17.45
bradypus_variegatus,-63.85,-17.4
同一樣本文件中可能有多個物種,在這種情況下,伴隨著bradypus,面板上會
出現(xiàn)更多物種。如果樣本文件和環(huán)境層使用相同的坐標系,則可以使用緯度和經
度以外的坐標系。示例文件中的“x”坐標(在我們的情況下為經度)應在“y”坐
標(緯度)之前。如果狀態(tài)數(shù)據(jù)具有重復記錄(同一網格單元中相同物種的多
個記錄),則默認情況下將刪除重復記錄;可以通過單擊“設置”按鈕來更改取消
選擇“刪除重復的在場記錄”。
目錄“圖層”包含許多ascii柵格網格(以ESRI的.asc格式),每個柵格網格
都描述了一個環(huán)境變量。網格必須都具有相同的地理范圍和像元大小(即所有
ascii文件標題必須彼此完全匹配)。我們的變量之一“ecoreg”是描述潛在植被
類別的分類變量。類別必須用數(shù)字表示,而不是字母或單詞。您必須告訴程序
哪些變量是類別變量,如上圖所示。
運行
只需按下“運行”按鈕。進度監(jiān)視器描述了要采取的步驟。加載環(huán)境層并完
成一些初始化后,maxent模型的訓練進度如下所示:
增益與偏差密切相關,偏差是廣義加性模型和廣義線性模型中使用的擬合優(yōu)
度的度量。它從0開始,并在運行過程中向漸近線增加。在此過程中,Maxent
正在從網格的均勻分布開始,并不斷提高數(shù)據(jù)的擬合度,從而在網格中的像素上
生成概率分布。增益定義為當前樣本的平均對數(shù)概率,減去使均勻分布具有零增
益的常數(shù)。運行結束時,增益表示模型在當前樣本周圍的集中程度。例如,如果
增益為2,則表示當前樣本的平均可能性比隨機背景像素的平均可能性高exp(2)
≈7.4倍。請注意,Maxent不是直接計算“發(fā)生概率”。它分配給每個像素的概率
通常很小,因為在網格中所有像素的值之和必須為1(盡管在比較輸出格式時返
回到這一點)。
運行會生成多個輸出文件,其中最重要的HTML文件是“”,這
是分析模型時最重要的文件。該文件的一部分提供了指向其他輸出的指針,如
下所示:
看一個預測
要查看中可能還有其他(更有趣的)輸出,我們將打開幾個選
項并重新運行模型。按“Makepicturesofpredictions”,然后單擊“Settings”,
然后在“Randomtestpercentage”條目中鍵入“25”。然后,再次按“運行”按
鈕。運行完成后,文件包含以下圖片:
注:僅選擇Autofeature出的圖
注:選擇Autofeature,Linearfeatures,Quadraticfeatures,Productfeatures,Hingefeatures出的圖
圖像使用顏色指示條件適合的預測概率,紅色指示該物種適合的條件的概率
很高,綠色指示該物種適合的條件的典型條件,藍色的淺陰影指示適合條件的概
率較低。對于Bradypus來說,我們預計中美洲大多數(shù)低地,南美西北部的濕地
低地地區(qū),亞馬遜河流域,加勒比海島嶼以及巴西東南部的許多大西洋森林都非
常可能有合適的條件。網頁中顯示的圖像文件(.png),您可以單擊(在Windows
中)或在大多數(shù)圖像處理軟件中打開。如果要復制這些圖像,或者要使用其他軟
件打開它們,則將在運行之后,創(chuàng)建為輸出名為“plots”的目錄中找到.png文件。
測試點是從物種存在地點中抽取的隨機樣本。每次在同一數(shù)據(jù)集上運行
Maxent時,都會使用相同的隨機樣本,除非您選擇“Randomed”設置面板上的
選項。或者,可以通過“設置”面板中名稱為“Testsamplefile”的browr提供單獨
的文件中的一種或多種物種的測試數(shù)據(jù)。
輸出格式
Maxent支持四種輸出模型值的格式:原始,累積,邏輯和阻塞。首先,原始
輸出只是Maxent指數(shù)模型本身。第二,對應于r原始值的累加值是最大r下的
原始值的Maxent分布百分比。最好根據(jù)預測遺漏率來解釋累積輸出:如果我們
將累積閾值設置為c,則用Maxent分布本身抽取的樣本的二元預測的遺漏率將
為c%,并且我們可以從物種分布中得出預測樣本的相似遺漏率。第三,如果c
是最大分布熵的指數(shù),則與r的原始值對應的邏輯值為c·r/(1+c·r)。這是一
個邏輯函數(shù),因為原始值是環(huán)境變量的指數(shù)函數(shù)。與r的原始值對應的cloglog
值為1-exp(-c·r)。四種輸出格式都是單調相關的,但它們的縮放比例是不同的,
并且具有不同的解釋。默認輸出是cloglog,這是最容易概念化的:給出存在概
率在0到1之間的估計值。請注意,存在的可能性在很大程度上取決于采樣設計
的細節(jié),例如方形樣本的大小和(對于易變的生物)觀察時間;cloglog輸出估
計存在的概率,假設采樣設計使典型存在位置的每個方格個體的達到預期豐度,
這導致存在的概率約為0.63。上面Bradypus模型的圖片使用邏輯格式輸出,該
格式與cloglog輸出非常相似,但是基于不同的理論依據(jù)。相比之下,使用原始
格式可得到以下圖片:
請注意,我們的顏色使用了對數(shù)刻度。線性刻度主要是藍色的,帶有少量紅
色像素(您可以通過在“ttings”面板Experiental欄取消選擇“Logscalepictures
”來驗證這一點),因為原始格式輸出通常會為少數(shù)位置提供相對較大的值-這可
以認為是原始輸出由指數(shù)分布給出的人工產物。
使用累積輸出格式可以看到下圖:
與原始輸出一樣,我們使用對數(shù)刻度為圖片著色,以強調較小值之間的差異。
累積輸出可以被認為是根據(jù)閾值在1-20(或從黃色到橙色,在此圖中為黃色)之
間預測物種的合適情況,取決于使用可接受的預測遺漏水平。
統(tǒng)計分析
我們?yōu)椤皉andomtestpercentage”輸入的“25”告訴程序隨機留出25%的樣本記
錄進行測試。這使程序可以進行一些簡單的統(tǒng)計分析。許多分析使用閾值進行二
元線性預測,其中合適的條件預測高于閾值,而不合適的條件低于閾值。第一個
圖顯示了測試和訓練的遺漏以及預測面積隨累積閾值的選擇而變化,如下圖所
示:
在這里,我們看到測試樣本的遺漏率與預測的遺漏率非常匹配,該預測率是
從Maxent分布本身得出的測試數(shù)據(jù)的遺漏率。根據(jù)累積輸出格式的定義,預測
的遺漏率是直線。在某些情況下,測試遺漏線位于預測遺漏線的下方:常見原因
是測試和訓練數(shù)據(jù)不是獨立的,例如,如果它們來自相同的空間自相關的存在數(shù)
據(jù)。
下圖給出了訓練和測試數(shù)據(jù)的接收機工作特性曲線(ROC),如下所示。此
處還給出了ROC曲線下的面積(AUC)。如果有測試數(shù)據(jù),則稍后將在網頁
中給出測試數(shù)據(jù)上AUC的標準誤差。
如果您使用相同的數(shù)據(jù)進行訓練和測試,則紅線和藍線將相同。如果將數(shù)據(jù)
分成兩個分區(qū),一個用于訓練,一個用于測試,則紅色(訓練)行顯示的AUC
高于藍色(測試)行是正常的。紅色(訓練)線顯示了模型對訓練數(shù)據(jù)的“擬合”。
藍色(測試)線表示模型與測試數(shù)據(jù)的擬合,并且是模型預測能力的真實測試。
綠松石線表示如果模型不比隨機模型好,您所期望的線。如果藍線(測試線)低
于綠松石線,則表明您的模型比隨機模型的性能差。藍線越靠近圖的左上角,模
型在預測數(shù)據(jù)的測試樣本中包含的存在時越好。關于AUC統(tǒng)計的更多詳細信息,
一個很好的參考是:Fielding,A.H.&Bell,J.F.(1997)Areviewofmethodsforthe
asssmentofpredictionerrorsinconrvationprence/abncemodels.
EnvironmentalConrvation24(1):38-49。因為我們只有存在數(shù)據(jù)而沒有不存在數(shù)
據(jù),所以使用“fractionalpredictedarea”(占預測的總研究面積的百分比)代替了
更標準的不存在率(預測的缺勤率)。有關此選擇的更多討論,請參見本教程第
1頁中提到的“生態(tài)建模”中的論文。重要的是要注意,相對于環(huán)境數(shù)據(jù)所描述的
研究區(qū)域,窄范圍物種的AUC值往往更高。這并不一定意味著模型會更好。相
反,此行為是AUC統(tǒng)計信息的偽影。
如果測試數(shù)據(jù)是可用的,程序將使用遺漏率做二項式檢驗,自動計算預測的
統(tǒng)計顯著性。對于Bradypus,見下圖:
有關二項式統(tǒng)計量的更多詳細信息,請參見上述生態(tài)模型論文。
哪些變量最重要呢?
物種分布建模的自然應用是回答,對物種建模后,哪個變量是最重要的。
回答這個問題的方法不止一種。在這里,我們概述了使用Maxent解決此問
題的可能方法。
在訓練Maxent模型的同時,我們可以跟蹤哪些環(huán)境變量對該模型做出了
最大貢獻。Maxent算法的每一步都可以通過修改單個特征的系數(shù)來增加模型
的增益。程序會將增益的增加分配給功能所依賴的環(huán)境變量。在訓練過程
結束時轉換為百分比,我們得到下表:
這些百分比貢獻值只是通過試探式定義的:它們取決于Maxent代碼用于
獲得最佳解決方案的特定路徑,并且不同的算法可以通過不同的路徑到達相
同的解決方案,從而導致不同的百分比貢獻值。此外,當存在高度相關的
環(huán)境變量時,應謹慎解釋百分比貢獻。以我們的Bradypus為例,年降水量
與10月和7月的降水高度相關。盡管上表顯示Maxent使用7月降水量的
變量比其他任何變量都多,幾乎沒有使用過年降水量,但這并不一定意味著
7月降水對樹種的影響比年降水量重要得多。
為了獲得哪些變量在模型中最重要的替代估計,我們還可以通過選擇
“Dojackknifetomeasurevariableimportant”復選框來運行jackknife測試。
當我們再次按下“運行”按鈕時,將創(chuàng)建許多模型。依次排除每個變量,并
使用其余變量創(chuàng)建模型。然后使用隔離的每個變量創(chuàng)建模型。另外,像以前
一樣,使用所有變量來創(chuàng)建模型。jackknife的結果顯示在“”
文件的三個條形圖中,第一個顯示如下:
我們看到,如果Maxent僅使用pre6190_l1(一月份的平均降雨量),則
幾乎得不到任何收益,因此變量(本身)對于估計Bradypus的分布沒有用。
另一方面,十月份的降雨(pre6190_l10)可以很好地擬合訓練數(shù)據(jù)。轉向淡
藍色條,似乎沒有變量包含其他變量中尚未包含的大量有用信息,因為依次
排除每個變量不會顯著降低訓練增益。
文件還有另外兩個jackknife圖,使用測試增益或AUC代
替訓練增益,如下所示:
比較三個jackknife圖可以獲得更多信息。AUC圖顯示,當使用AUC
測量預測性能時,即使使用AUC構建的模型很難使用所有變量,留做測試
用的當前數(shù)據(jù)用于預測分布,年降水量(pre6190_ann)是最有效的單個變量。
與訓練增益圖相比,年降水量的相對重要性在測試增益圖中也有所增加。此
外,在測試增益和AUC圖中,一些淡藍色條(尤其是每月降水量變量)長
于紅色條,表明當不使用相應的變量時,預測性能會提高。
這告訴我們,月降水量變量正在幫助Maxent很好地擬合訓練數(shù)據(jù),但年
降水量變量的泛化效果更好,預留測試數(shù)據(jù)給出了相對較好的結果。換句話
說,月降水量變量建立的模型轉移性較差。如果我們的目標是轉移模型,變
量的轉移性就很重要,例如氣候變化下通過將模型應用于未來的氣候變量以
估算未來分布。每月降水量的可傳遞性較差意味著:對于Bradypus而言,適
宜的條件可能不取決于所選月份的精確降雨值,而取決于總的平均降水量,
并且可能取決于降雨的一致性或缺乏長時間的干旱。當我們在大陸尺度上進
行建模時,季節(jié)性降雨模式的精確時間可能會發(fā)生變化,從而影響月降水量,
但不適合Bradypus。
通常,最好使用與被建模物種更直接相關的變量。例如,Worldclim網站
()提供了“BIOCLIM”變量,包括諸如“最濕季的降雨”
之類的派生變量,而不是每月值。
jackknife輸出的最后說明:測試增益圖顯示,僅使用一月降水量
(pre6190_l1)制作的模型導致測試增益為負。這意味著模型稍差而不是用
于預測留著用于測試的事件分布的零模型(即均勻分布)。這可以看作是更
多的證據(jù),表明月降水量值不是預測變量的最佳選擇。
預測是怎么取決于變量的?
現(xiàn)在按下“Createresponcurves”,取消選擇jackknife選項,然后重新運
行模型。這導致將以下部分添加到“”文件中:
可以選擇每個縮略圖圖像(單擊它們)以獲得更詳細的圖,如果要使用
其他軟件復制或打開這些圖,則可以在“plots”目錄中找到.png文件。查看
vap6190_ann,對于1-200范圍內的vap6190_ann值,響應較低,而對于200-300
范圍內的值,響應較高。y軸上顯示的值是邏輯輸出格式所給定的適當條件
的預測概率,所有其他變量均設置為在存在位置集上的平均值。
請注意,如果環(huán)境變量是相關的(如此處所示),則邊際響應曲線可能
會產生誤導。例如,如果兩個緊密相關的變量的響應曲線接近彼此相反,則
對于大多數(shù)像素而言,兩個變量的組合效果可能很小。再舉一個例子,如果
所有其他變量保持不變,則預測的適宜性與年降水量(pre6190_ann)呈負相
關。換句話說,一旦考慮了所有其他變量的影響,年降水量增加的邊際影響
將降低預測的適用性。但是,年降水量與月降水量變量高度相關,因此實際
上在改變年值時我們不容易將月值固定。因此,程序將生成第二組響應曲線,
其中每條曲線都是通過僅使用相應變量而不考慮所有其他變量的模型來生
成的:
與第一組響應曲線中對年降水量的邊際響應相反,我們現(xiàn)在看到預測的
適宜性通常隨年降水量的增加而增加。
特征類型和響應曲線
響應曲線使我們可以看到不同要素類型之間的差異。取消選擇“auto
features”,選擇“Thresholdfeatures”,然后再次按“Run”按鈕。查看生成的功能配
置文件-您會注意到它們都是步進功能,例如pre6190_l10的功能:
注:僅選擇了“Thresholdfeatures”,其他選項全部取消。
如果僅使用hingefeatures進行相同的運行,則得到的特征輪廓如下所示:
這兩個特征曲線的勾勒的外形相似,但是它們有所不同,因為不同的特征類
型得出響應曲線的形狀可能不同。Maxent模型中的指數(shù)是特征的總和,threshold
features的總和總是階躍函數(shù),因此邏輯輸出也是階躍函數(shù)(原始輸出和累積輸
出也是如此)。相比之下,hingefeatures的總和始終是分段線性函數(shù),因此,
如果僅使用hingefeatures,則Maxent指數(shù)是分段線性的。這解釋了上面第二條
響應曲線中連接線段的順序。(請注意,線條略微彎曲,尤其是朝向變量的極值;
這是因為邏輯輸出將S型函數(shù)應用于Maxent指數(shù)。)一起使用所有類(默認情
況下,給定足夠的樣本)可以實現(xiàn)許多復雜的響應進行精確建模。單擊幫助按鈕
可以找到各種功能類型的更詳細說明。
互動式預測探索
這個互動工具可讓您調查整個研究區(qū)域的預測變量如何確定Maxent的預測。
單擊地圖上的一個點將顯示其在每個響應曲線中的位置。右上方的圖顯示了每個
變量對預測對數(shù)的貢獻(上圖的條形圖給出了變量名稱和數(shù)值貢獻)。
該工具假定模型是可加的(變量之間沒有相互作用),因此請確保僅在沒有
特征產品運行的輸出上運行它。該工具需要Maxent運行后創(chuàng)建的響應曲線中的
數(shù)據(jù),因此在運行之前,必須在Maxent中Advanced欄上選擇“Writeplotdata”
復選框。然后在命令窗口中使用以下命令行(開始→運行→cmd)啟動該工具:
n
tutorial-dataoutputsbradypus_orial-datalayers
根據(jù)運行命令的目錄,您可能需要提供文件(例如C:Maxent
)、預測變量(例如C:maxentTutoriallayers))和Maxent輸出網
格的完整路徑。您的計算機需要足夠的內存來一次容納所有預測變量。
SWD格式
另一種輸入格式可能非常有用,尤其是當您的環(huán)境網格很大時。由于缺乏更
好的名稱,因此被稱為“帶有數(shù)據(jù)的樣本”,或者簡稱為SWD。我們的Bradypusfile
的SWD版本稱為“bradypus_”,其開頭如下:
species,longitude,latitude,cld6190_ann,dtr6190_ann,ecoreg,frs6190_ann,h_dem,p
re6190_ann,pre6190_l10,pre6190_l1,pre6190_l4,pre6190
_l7,tmn6190_ann,tmp6190_ann,tmx6190_ann,vap6190_ann
bradypus_variegatus,-65.4,-10.3833,76.0,104.0,10.0,2.0,121.0,46.0,41.0,84.0,54.
0,3.0,192.0,266.0,337.0,279.0
bradypus_variegatus,-65.3833,-10.3833,76.0,104.0,10.0,2.0,121.0,46.0,40.0,84.0,
54.0,3.0,192.0,266.0,337.0,279.0
bradypus_variegatus,-65.1333,-16.8,57.0,114.0,10.0,1.0,211.0,65.0,56.0,129.0,58
.0,34.0,140.0,244.0,321.0,221.0
bradypus_variegatus,-63.6667,-17.45,57.0,112.0,10.0,3.0,363.0,36.0,33.0,71.0,27
.0,13.0,135.0,229.0,307.0,202.0
bradypus_variegatus,-63.85,-17.4,57.0,113.0,10.0,3.0,303.0,39.0,35.0,77.0,29.0,1
5.0,134.0,229.0,306.0,202.0
它可以代替普通的樣本文件使用。區(qū)別僅在于該程序無需查看環(huán)境層(ascii
文件)即可在采樣點獲取變量的值,而是直接從表中讀取環(huán)境變量的值。因此,
環(huán)境層僅用于讀取“背景”像素(不一定檢測到該物種的像素)的環(huán)境數(shù)據(jù)。實
際上,也可以在SWD格式文件中指定背景像素。文件“”包含
10,000個背景數(shù)據(jù)點。前幾個看起來像這樣:
background,-61.775,6.175,60.0,100.0,10.0,0.0,747.0,55.0,24.0,57.0,45.0,81.0,182
.0,239.0,300.0,232.0
background,-66.075,5.325,67.0,116.0,10.0,3.0,1038.0,75.0,16.0,68.0,64.0,145.0,1
81.0,246.0,331.0,234.0
background,-59.875,-26.325,47.0,129.0,9.0,1.0,73.0,31.0,43.0,32.0,43.0,10.0,97.
0,218.0,339.0,189.0
background,-68.375,-15.375,58.0,112.0,10.0,44.0,2039.0,33.0,67.0,31.0,30.0,6.0,
101.0,181.0,251.0,133.0
background,-68.525,4.775,72.0,95.0,10.0,0.0,65.0,72.0,16.0,65.0,69.0,133.0,218.
0,271.0,346.0,289.0
我們可以使用“bradypus_”作為示例文件,使用“”(均
位于“swd”目錄中)作為環(huán)境圖層文件來運行Maxent。嘗試運行它–您會注意到
它的運行速度要快得多,因為它不必加載大型環(huán)境網格。另一個好處是您可以
將不同時間段的不同記錄與環(huán)境條件相關聯(lián)。例如,距離同一網格單元100年
記錄的兩次事件可能反映了環(huán)境條件的巨大變化,但是除非您使用SWD格式,
否則兩個記錄都將被賦予相同的環(huán)境變量值。缺點是它無法制作圖片或輸出網
格,因為它沒有所有的環(huán)境數(shù)據(jù)。解決此問題的方法是使用“投影”,如下所述。
批量運行
有時您需要生成多個模型,建模參數(shù)或輸入中可能會有細微變化。可以使
用命令行參數(shù)來自動生成模型,從而無需在程序界面上重復單擊和鍵入。命令
行參數(shù)可以從命令窗口(也稱為shell)中指定,也可以在批處理文件中定義。看
一下文件“”(例如,在Windows資源管理器中右鍵單擊.bat文
件,然后使用記事本打開它)。它包含以下行:
ironmentallayers=tutorial-datalayers
togglelayertype=ecoregsamplesfile=
outputdirectory=tutorial-dataoutputsredoifexistsautorun
效果是告訴程序在哪里可以找到環(huán)境層和樣本文件以及在哪里放置輸出,以
指示ecoreg變量是類別變量。“自動運行”標志告訴程序啟動立即運行,而無需
等待按下“運行”按鈕。現(xiàn)在,嘗試雙擊該文件以查看其作用。
Maxent程序的許多方面都可以通過命令行參數(shù)進行控制–按下“幫助”按鈕以
查看所有可能性。多個運行可以出現(xiàn)在同一個文件中,它們只會一個接一個地運
行。您可以通過將命令行參數(shù)添加到“”文件來更改參數(shù)的默認值。許
多命令行參數(shù)也有縮寫,因此也可以使用以下命令來啟動中描
述的運行:
–elayers–teco––ooutputs
–r-a
注:e=”environmental=”;
t=”togglelayertype=”;eco=”ecoreg”;s=”samplesfile=”o=”outputdirectory=”;r=”redoif
exists”;a=”autorun”
復寫
“replicates”選項可用于對同一物種進行多次運行。此標志最常見的用途是重
復子采樣和交叉驗證。可以從“設置”面板或使用命令行參數(shù)來控制復制。默認情
況下,使用的復制形式為交叉驗證,其中,出現(xiàn)數(shù)據(jù)被隨機分為多個相等大小的
組,稱為“折疊”,并創(chuàng)建模型,依次忽略每個折疊。然后將剩下的折痕用于評估。
交叉驗證相對于使用單個訓練/測試組有一個很大的優(yōu)勢:它使用所有數(shù)據(jù)進行
驗證,因此可以更好地利用小型數(shù)據(jù)集。例如,在將重復次數(shù)設置為10的情況
下運行將創(chuàng)建10個html頁面,外加一個總結交叉驗證統(tǒng)計信息的頁面。例如,
我們獲得帶有誤差條的ROC曲線和整個模型的平均AUC,以及帶有一個標準偏
差誤差條的匯總響應曲線。對于Bradypus,交叉驗證的ROC曲線顯示了模型之
間的一些差異:
注:除了Thresholdfeatures不選,其他特征都選
Bradypus對年降水量的單變量響應幾乎沒有變化(左圖,下圖),而對年降水量
的邊際響應變化更大(下圖,右圖)。
支持兩種替代的replicates形式:重復子采樣法,其中將存在點重復地分成隨
機的訓練和測試子集;以及自助法,通過從存在點進行替換采樣來選擇訓練數(shù)據(jù),
樣本數(shù)量等于存在點總數(shù)。使用自舉時,每個集合中的存在點數(shù)等于存在點總數(shù),
因此訓練數(shù)據(jù)集將具有重復記錄。
使用這三種replicates形式時,您可能希望通過關閉“writeoutputgrids”選項
來避免吃光磁盤空間,該選項將禁止復制運行輸出網格的寫入,從而僅獲得摘要
統(tǒng)計信息網格(avg,stderr等)。
正規(guī)化
設置面板上的“regularizationmultiplier”參數(shù)會影響輸出分布的集中度或緊密
度-小于默認值1.0的值將導致更局部化的輸出分布,更適合于給定的狀態(tài)記錄,
但是可以導致過度擬合(擬合得太接近訓練數(shù)據(jù),以致模型不能很好地推廣到獨
立的測試數(shù)據(jù))。較大的正則化乘數(shù)將給出更分散,更不局部的預測。嘗試更
改乘數(shù),并檢查產生的圖像和AUC中的變化。例如,左下將乘數(shù)設置為4可以
得到下圖,右下將乘數(shù)設置為1,顯示了比以前更大的分散分布:
注:僅outputsformat選擇Logistic才能得到
隨著模型復雜度的增加,過度擬合的可能性也會增加。首先嘗試使用默認功
能集將乘數(shù)設置為非常小(例如0.01),以查看高度過擬合的模型。然后嘗試僅
具有l(wèi)inearandquadraticfeatures的相同的regularizationmultiplier。
投影Projecting
在一組環(huán)境層(或SWD文件)上訓練的模型可以通過將其應用于另一組環(huán)
境層(或SWD文件)來“投影”。需要進行預測的情況包括:在氣候條件變化的
情況下對物種分布進行建模,應用入侵物種的自然分布模型來評估不同地理區(qū)域
中的入侵風險,或者只是在一組測試位置評估模型以進行進一步的統(tǒng)計分析。在
這里,我們將使用Projecting進行簡單的氣候變化預測,并嘗試挑戰(zhàn)困難對氣候
變化下進行可靠的分布預測。
“hotlayers”目錄與“l(fā)ayers”目錄具有相同的環(huán)境數(shù)據(jù),但有兩個變化:年平均
溫度變量(tmp6190_)的所有值均增加30,表示均勻升高3攝氏度,而
最高溫度變量(tmx6190_)的所有值增加40,表示增加4攝氏度。這些
變化代表對未來氣候的非常簡化的估計,具有更高的平均溫度和更高的溫度變化
率,但降水量沒有變化。要將Bradypus模型應用到這種新氣候中,請使用網格
或SWD格式像以前一樣輸入樣本文件和當前環(huán)境數(shù)據(jù),然后在“投影層目錄”中
輸入“hotlayers”目錄,如下圖所示。
投影圖層目錄(或SWD文件)必須包含與用于訓練模型的變量具有相同名
稱的變量,但描述的條件不同(例如,不同的地理區(qū)域或不同的氣候模型)。對
于訓練數(shù)據(jù)和投影數(shù)據(jù),每個變量名稱要么是列標題(如果使用SWD格式文件),
要么是不帶.asc文件結尾的文件名(如果使用網格目錄)。
當您按“運行”時,將在與當前氣候條件相對應的環(huán)境變量上訓練模型,然后
將其投影到“hotlayers”目錄中的ascii網格上。輸出的ascii網格稱為
“bradypus_variegatus_”,通常,將投影目錄名稱附加到種類名稱中,
以便將其與標準(非投影)輸出區(qū)分開。如果選擇“makepicturesofpredictions”,
則投影模型的圖片將出現(xiàn)在“”文件中。在我們的情況下,將產生
以下圖片:
我們看到,在溫暖的氣候下,存在的預測概率大大降低。當然,預測取決于
我們要投影的模型的參數(shù)。如果僅使用hingeandAutofeatures,而不使用默認特
征集,則預計的分布會更重要:
在投影到新的地理區(qū)域或新的氣候條件時,在用于訓練的區(qū)域中看起來非常
相似的兩個不同模型可能看起來非常不同。如果存在相關變量可以采用多種方
式擬合外觀相似的模型,則尤其如此,因為變量之間的相關性可能會在您投影的
區(qū)域中發(fā)生變化。
在氣候變化下Bradypus的預計范圍縮小是否合理?如果查看使用默認
features制作的模型的邊際響應曲線,我們會發(fā)現(xiàn)最高溫度對預測產生了更大的
影響:
注:randomtestpercentage設置為25%
查看Bradypus已知發(fā)生地點的最高溫度值的直方圖,我們可以看到大多數(shù)發(fā)
生地點(約80%)的最高溫度在30到34攝氏度之間。即使背景的很大一部分
在34至35度之間,也只有一次出現(xiàn)在34度以上。
根據(jù)我們對氣候變化的預測,當前高于30度的所有Bradypus地區(qū)80%的最
高氣溫將升高至34度以上。因此,可以合理地預測此類位置不適合Bradypus,
因此Bradypus可能無法在其當前范圍內的大部分地區(qū)幸存下來。請注意,很難
得出關于為何不適合這種條件的任何結論:可能是Bradypus不耐熱,或者可能
是更高的最高溫度將使火引起耐火樹種廣泛取代雨林。消除了最適合Bradypus
的棲息地。為了進一步研究Bradypus在氣候變化下的未來,我們可以進行生理
學研究,以研究該物種對熱的耐受性,或者研究該地區(qū)雨林邊界的火生態(tài)。
注意:以上兩個直方圖是調查數(shù)據(jù)的有用工具。它們是使用以下命令在R
中制成的:
swdPrence<-("d:/maxent模型軟/tutorial-data/swd/bradypus_")
hist(swdPrence$tmx6190_ann,probability=TRUE,breaks=c(5:37*10),xlab="annual
maximumtemp*10",main="bradypusprencepoints")
swdBackground<-("d:/maxent模型軟件/tutorial-data/swd/")
hist(swdbackground$tmx6190_ann,probability=TRUE,breaks=c(5:37*10),xlab="ann
ualmaximumtemp*10",main="backgroundpoints")
從直方圖中我們可以看到,Bradypus有時可以忍受高溫,最高溫度為35度
的單筆記錄證明了這一點。另一方面,背景溫度為36或更高時,背景極少點,
因此我們沒有證據(jù)表明Bradypus是否可以忍受甚至更高的溫度,這在未來的氣
候預測中將會普遍存在。這被稱為新型氣候條件的問題:在進行projecting時,
預測變量的取值可能超出模型訓練期間的范圍。Maxent處理此問題的主要方法
是“clamping”,即將訓練范圍之外的變量視為處于訓練范圍的極限。在上述響應
曲線中可以看到這種效果,因為在訓練范圍之外,響應保持恒定。每當模型
projected時,Maxent都會制作一張圖片,顯示夾緊在哪里產生了很大的影響。
projecting選中所有feature的Bradypus模型可得到clamping圖,其中所示的值是
bradypusprencepoints
annualmaximumtemp*10
D
e
n
si
t
y
50300350
0
.
0
0
0
0
.
0
0
5
0
.
0
1
0
0
.
0
1
5
0
.
0
2
0
0
.
0
2
5
backgroundpoints
annualmaximumtemp*10
D
e
n
si
t
y
50300350
0
.
0
0
0
0
.
0
0
5
0
.
0
1
0
0
.
0
1
5
0
.
0
2
0
有clamping和無clamping的預測之間的絕對差。
在這種情況下,clamping顯然沒有什么作用,特別是最高溫度以上的響應曲
線顯示,這個比例尺的熱端預測值已經接近于零了,因此夾緊幾乎沒有影響。
我們還可以將用于投影的環(huán)境變量與用于訓練模型的環(huán)境變量進行比較。
運行以下批處理命令:
utorial-datalayers
制作出如下兩張圖片:
注:代碼會運行后,圖片會出現(xiàn)在子目錄下,如MAXENT模型軟件
最左邊的圖片顯示了hotlayers氣候條件下每個點的新穎性。負值(以紅色顯
示)表明氣候新穎,即hotlayers值超出了layers范圍–顯示的值是該點超出范圍
的最小預測變量,表示為layers層中的變量值范圍的一部分。正值(以藍色顯示)
與BIOCLIM值相似,得分為100,表示該點在hotlayers值都完全等于layers的
中間值,意思是完全不新穎。右圖顯示了每個點上哪個變量最新穎,并且表明
hotlayers中新穎的氣候條件是由于平均溫度(棕色,主要在亞馬遜河以北)或最
高溫度(青綠色,主要在亞馬遜河的南部)。
其他命令行工具
Maxentjar文件包含許多可從命令行訪問的工具。對于Microsoft用戶:此處
描述的功能可以在批處理文件中使用,例如。作為替代,Start->run->
cmd為您提供了一個用于交互式運行命令的外殼程序。cygwin(可免費在線獲
得)是一個不錯的選擇,它具有更強大的Shell,可提供許多Unix實用程序。
網格文件的快速可視化
可以使用以下命令查看.asc、.grd和.mxe格式的網格文件以及一些.bil格式的
文件:
tutorial-datalayerscld6190_
與下面描述的所有命令一樣,您可能需要將路徑添加到文件和/或
要查看的文件。例如,您可以使用:
tutorial-datalayerscld6190_
Show可以接受一些可選參數(shù)(在之后):
-ssampleFile提供一個文件,該文件中的樣本點以白點顯示
-Sspeciesname表示sampleFile中用點顯示的物種
-rradius控制出現(xiàn)記錄的白色和紫色點的大小
-L刪除圖例
-o將圖片寫入.png格式的文件
只需Windows向導,您就可以通過單擊.asc,.grd或.mxe文件來調用Show。制
作一個名為的批處理文件,其中包含以下單行:
然后將.asc,.grd或.mxe類型的文件與批處理文件關聯(lián):從Windows資源管理器
(又名“我的電腦”),從“工具”->“文件夾選項”->“文件類型...”中,您可能需要制
作批處理文件可執(zhí)行文件:右鍵單擊它并按照說明進行操作。
做一個SWD文檔
要從非SWD文件制作SWD格式的文件,請執(zhí)行以下操作:
tutorial-datalayerscld6190_
其中samplesfile是存在數(shù)據(jù)的.csv文件,而grid1,grid2等是.asc,.mxe,.grd或.bil
格式文件的網格。輸出被寫入“standardoutput”,這意味著它出現(xiàn)在命令窗口中。
要將輸出寫入文件,請使用“redirect”:
tutorial-datalayerscld6190_>
注:需要新建一個空白csv文件,存儲制作swd格式文件的內容;>符號=輸
出到某個文件
如果所有網格都在目錄中,則可以使用“通配符”避免按名稱列出所有網格:
tutorial-datalayers*.asc>
因為通配符(*)擴展為所有匹配文件的列表。
制作SWD背景文件
要從您的研究區(qū)域中隨機選擇一組背景點:
Sample3
tutorial-datalayerscld6190_
注:寫代碼是需要注意大小寫
其中“num”是所需的背景點數(shù)。
計算AUC
如下命令:
tpointfilepredictionfile
tutorial-datalayerscld6190_
將計算當前背景AUC,其中testpointfile給出當前樣本點,背景點從
predictionfile中隨機抽取。testpointfile是.csv文件(可以選擇為swd格式),而
predictionfile是網格文件,通常表示物種分布模型的輸出。
投影
使用此工具,您可以將先前計算的Maxent模型應用于新的環(huán)境數(shù)據(jù)集:
tlambdaFilegridDiroutFile[args]
這里,lambdaFile是描述Maxent模型的lambdas文件,而gridDir是包含
lambdas文件中描述所有預測變量,包含網格的目錄。或者,gridDir可以是swd
格式的文件。可選的args可以包含Maxent可以理解的任何標志-例如,“grd”標
志會使輸出密度為t為.grd格式。
文件轉換
要將只有網格的目錄以一種格式轉換為另一種格式:
tindirinsuffixoutdiroutsuffix
其中indir和outdir是目錄,insuffix和outsuffix是asc,mxe,grd或bil格式之一。
分析在R語言中的MAXENT輸出
Maxent每次運行都會生成許多輸出文件。如果您要自己分析預測,則可以
將其中一些文件導入其他程序。在這里,我們演示了免費統(tǒng)計軟件包R在Maxent
輸出上的使用:本節(jié)面向具有R經驗的用戶。我們將使用Maxent生成的以下兩
個文件:
bradypus_variegatus_
bradypus_variegatus_
只有通過使用命令行標志或從Maxent的ttings面板中experiental欄中選擇
“writebackgroundpredictions”選項時,才會生成第一個文件。同時自動總是生成
第二個文件。確保您具有測試數(shù)據(jù)(例如,通過將randomtestpercentage設置為
25);我們將使用與Maxent相同的測試數(shù)據(jù)來評估Maxent輸出。首先,我們
啟動R語言,并安裝一些軟件包(假設這是我們第一次使用它們),然后通過
鍵入(或粘貼)加載它們:
es("ROCR",dependencies=TRUE)
es("vcd",dependencies=TRUE)
library(ROCR)
library(vcd)
library(boot)
在本節(jié)中,我們將使用藍色文本顯示R代碼和命令,使用綠色文本顯示R輸出。
接下來,我們將目錄更改為Maxent輸出所在的位置,例如:
twd("c:/maxent/tutorial/outputs")
然后讀取當前和背景點的Maxent預測文件,并提取我們需要的列:
prence<-("bradypus_variegatus_")
background<-("bradypus_variegatus_")
pp<-prence$tion#getthecolumnofpredictions
testpp<-pp[prence$=="test"]#lectonlytestpoints
trainpp<-pp[prence$=="train"]#lectonlytestpoints
bb<-background$logistic
現(xiàn)在,我們可以將預測值放入ROCR所需的格式中,該軟件包將用于進行一些
ROC分析并生成ROC曲線:
combined<-c(testpp,bb)#combineintoasinglevector
label<-c(rep(1,length(testpp)),rep(0,length(bb)))#labels:1=prent,0=random
pred<-prediction(combined,label)#labeledpredictions
perf<-performance(pred,"tpr","fpr")#True/falpositives,forROC
curve
plot(perf,colorize=TRUE)#ShowtheROCcurve
performance(pred,"auc")@[[1]]#CalculatetheAUC
plot命令給出以下結果:
注:代碼撰寫時,-與代碼之間的空格一定要有,否則返回NULL。還要注意大小寫。
而“performance”命令給出的AUC值為0.8990679,與Maxent報告的AUC
一致。接下來,作為R中可用但Maxent中不可用的測試示例,我們將對AUC
的標準偏差進行自助估計。
AUC<-function(p,ind){
pres<-p[ind]
combined<-c(pres,bb)
label<-c(rep(1,length(pres)),rep(0,length(bb)))
predic<-prediction(combined,label)
return(performance(predic,"auc")@[[1]])
}
bl<-boot(testpp,AUC,100)
bl
輸出如下:
ORDINARYNONPARAMETRICBOOTSTRAP
Call:
boot(data=testpp,statistic=AUC,R=100)
BootstrapStatistics:
t1*0.89906790..02649498
并且我們看到標準誤差的自助估計(0.02649498)接近Maxent(0.028)計算
的標準誤差。自助法結果還可以用于確定AUC的置信區(qū)間:
(bl)
給出以下四個估計值–有關定義和比較這些估計值的介紹,請參見本教程末
尾的資源部分。
Intervals:
LevelNormalBasic
95%(0.8450,0.9488)(0.8460,0.9477)
LevelPercentileBCa
95%(0.8505,0.9522)(0.8096,0.9402)
那些熟悉自助法的人會注意到,我們在這里僅引導存在值。我們也可以引導
背景值,但是鑒于背景值數(shù)量很多(10000),結果不會有太大變化。
作為最后一個示例,我們將研究二項式和CohenKappa統(tǒng)計量的計算,例如
閾值規(guī)則的。首先,以下R代碼針對最小prence預測給出的閾值計算Kappa:
confusion<-function(thresh){
return(cbind(c(length(testpp[testpp>=thresh]),length(testpp[testpp
c(length(bb[bb>=thresh]),length(bb[bb
}
mykappa<-function(thresh){
return(Kappa(confusion(thresh)))
}
mykappa(min(trainpp))
其值為0.0049。如果要使用最小化對測試數(shù)據(jù)的敏感性和特異性之和的閾
值,我們可以執(zhí)行以下操作,使用上面“性能”對象中的真陽性率和假陽性率值來
繪制ROC曲線:
fpr=*************[[1]]
tpr=*************[[1]]
sum=tpr+(1-fpr)
index=(sum)
cutoff=*****************[[1]][[index]]
mykappa(cutoff)
這樣得出的kappa值為0.0199。要確定這兩個閾值的二項式概率,我們可以
執(zhí)行以下操作:
mybinomial<-function(thresh){
conf<-confusion(thresh)
trials<-length(testpp)
return((conf[[1]][[1]],trials,conf[[1,2]]/length(bb),"greater"))
}
mybinomial(min(trainpp))
mybinomial(cutoff)
這分別給出了5.979e-09和2.397e-11的p值,它們都比Maxent給出的p值
稍大。造成這種差異的原因是測試樣本的數(shù)量大于25,超過該閾值,Maxent
使用正態(tài)近似計算二項式的p值。
本文發(fā)布于:2023-03-13 23:43:32,感謝您對本站的認可!
本文鏈接:http://www.newhan.cn/zhishi/a/1678722212141497.html
版權聲明:本站內容均來自互聯(lián)網,僅供演示用,請勿用于商業(yè)和其他非法用途。如果侵犯了您的權益請與我們聯(lián)系,我們將在24小時內刪除。
本文word下載地址:二趾樹懶.doc
本文 PDF 下載地址:二趾樹懶.pdf
| 留言與評論(共有 0 條評論) |