生态学中基础拟合模型的选择

 No one knows everything, and you don't have to.”   --free傻孩子
"R数据分析"专题·第6篇
  编辑 | free傻孩子
  4445字 | 7分钟阅读
本期推送内容
在生态学分析过程中我们经常会遇到的一个分析问题是拟合分析。拟合分析能够以简单的数学模型相对直观地呈现因变量和自变量之间的逻辑关系,是一种常见的分析手段和方法。然而,在生态学分析过程中有哪些常见的拟合分析模型可供选择呢?以什么标准选择数学模型呢?哪一个模型适用于当前的因变量和自变量呢?这些是我们在拟合分析过程中经常会遇到的问题。通过本文,希望能够对以上三个问题给出一些我的见解以及答案。
01

基础拟合模型的类型和选择标准

在生态学分析过程中我们经常见到和用到的基础拟合模型包括简单线性拟合模型(形如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)。

02

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" )
03

扩展知识

上述选出最优拟合模型后,除了使用我们的安装包自带的函数计算模型参数还可以使用过去已经发表过的包计算该模型的参数。具体如下:

#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)
(0)

相关推荐