生态学中基础拟合模型的选择
基础拟合模型的类型和选择标准
在生态学分析过程中我们经常见到和用到的基础拟合模型包括简单线性拟合模型(形如y = ax +b);二次函数模型(形如y = ax^2 + bx +c);自然数指数模型(形如y = e^x);幂律模型(形如y = x^a)和对数模型(形如y = log(x))。由这些基础模型又可以衍生出其它的各种模型,这里就不再一一赘述了。
不同的数据之间(因变量和自变量)一般具有不同的拟合关系,判断标准一般包括拟合度,拟合模型的显著性等方法。赤池信息准则(Akaike information criterion, AIC)和贝叶斯信息准则(Bayesian information criterion, BIC)是两个经常用来评估模型适应性(fitness)的指标。它们的值越小则代表模型越适合。因此,在选定模型之前需要评估包括因变量和自变量的每个模型的AIC和BIC值。然而,分别计算每个模型的AIC和BIC即费时又费力,为了解决这个问题,我写了一个R(BestFitM)包用来从7个基本的拟合模型中选出最优拟合模型(best-fitting model)。
BestFitM包的下载和应用
该包我上传到了GitHub上具体下载方法如下:
#require “devtools” package, 若没有这个安装包的话运行install.packages(“devtools”)
devtools::install_github("fhruilin/BestFitM")
library(BestFitM)
安装包简介:
该package包含三个函数分别是bestFitM(), bestFitM2()和fitM()函数。前两个函数的功能是一样的,所不同的是第一个函数包含7个基础模型,第二个函数包含5个基础模型。之所以这样设计是因为bestFitM()函数中包含的7个模型中有两个用的比较少,且容易导致整个函数没办法运行,所以在bestFitM2()函数中把这两个模型删了。第三个函数的功能是计算模型的各个参数,如R2,p值等。
用法如下:
data("mtcars")
bestFitM(data = mtcars, x= "mpg", y = "disp")
#其中mtcars为数据框,x为数据框中自变量的名,y为因变量的名
结果如下图:
如果报错可以考虑使用以下代码:
bestFitM2(mtcars, x= "mpg", y = "disp")
通过以上运算我们发现exp2P模型为自变量和因变量的最优拟合模型,那么它们的拟合度和p是多少呢,通过fitM()函数我们可以计算。
FitM(data = mtcars, x= "mpg", y = "disp",model = "exp2P" )
扩展知识
上述选出最优拟合模型后,除了使用我们的安装包自带的函数计算模型参数还可以使用过去已经发表过的包计算该模型的参数。具体如下:
#devtools::install_github("PhDMeiwp/basicTrendline@master", force = TRUE)
library(basicTrendline)
x <- mtcars[,"mpg"]
y <- mtcars[,"disp"]
trendline(x,y,model= "exp2P",ePos.x="topleft",summary=TRUE,eDigit=5)