【发布时间】:2021-03-25 18:27:33
【问题描述】:
我一直在尝试使用 dbinom 拟合四参数对数回归。 四参数对数回归表示为:F(x) = d+(a/(1+exp((b-(x)/c))),其中d=下渐近线(ymin),a+d=上渐近线, b = 拐点, , c = 斜率。 我的响应变量是来自哺乳动物调查数据集的比率(Patch_richness/Richness_proportion),“y”取值从 0 到 1(0.8、0.4、0.25……)。我的目标是比较 glm.null 模型、glm 和 AIC 的四参数对数回归,以找出这三个中的哪一个最适合。使用 dpois 运行 y=count (Patch_Richness) 的函数时没有问题,然后在绘制曲线时只需替换 coeff 值:
library(bbmle)
cerrado = read.csv("data_stack.csv")
attach(cerrado)
logip = function(p,lambda,x){
a = p[1]
b = p[2]
c = p[3]
d = p[4]
Riq1 = d+(a/(1+exp((b-(FOREST500+km))/c)))
-sum(dpois(x,lambda=Riq1, log=TRUE))
}
parnames(logip) = c("a","b","c","d")
modTR.log = mle2(minuslog = logip, start = c(a = 5,b = 72,c = 3,d = 0.1), data = list(x = Patch_Richness))
summary(modTR.log)
plot(FOREST500,Patch_Richness, xlab = "Forest cover", ylab = "Patch Richness")#original data
curve (-0.29382+(4.95218/(1+exp((118.34117-x)/60.30478))), add=T)
但我在尝试为 y = proportion (Richness_prop) 拟合此函数时遇到问题
logip = function(p, lambda, x){
a = p[1]
b = p[2]
c = p[3]
d = p[4]
Riq1 = d+(a/(1+exp((b-(FOREST500 + km))/c)))
-sum(dbinom(x,18,0.5,log = FALSE))
}
parnames(logip) = c("a","b","c","d")
modTR.log = mle2(minuslog = logip, start = c(a = 1,b = 72,c = 1,d = 0), data = list(x = Richness_prop))
summary(modTR.log)
AIC(modTR.log)
模型仅在 log = FALSE 时运行(带有关于非整数值的警告),但无论起始值中的数字是多少,摘要输出都会给出与初始起始值完全相同的数字作为 coeff 值。所以我想这真的很糟糕。我设置 dbinom 参数对吗?为什么它只与log=FALSE 一起运行?
非常感谢一些帮助 谢谢!
【问题讨论】:
标签: r logistic-regression poisson mle