gpt4 book ai didi

r - 函数 y = at^b * exp(-ct) 有名字吗?可以线性化吗?我如何估计 a、b、c?

转载 作者:行者123 更新时间:2023-12-04 17:33:36 26 4
gpt4 key购买 nike

我正在尝试拟合非线性模型,但找不到任何好的示例
在线的。

这个函数有名字吗?

可以线性化吗?

我试图估计参数 a , b , 和 c具有随机效应 g (在组中)作为时间的函数 t , 以下。我可以使用 nls 来拟合模型没有随机效应,但无法使模型收敛。欢迎提出建议(最好在 R 中,但任何合适的包都可以)?

## time, repeated 16 times for 4 replicates from each of 4 groups  
t <- rep(1:20, 16)
## g, group
g <- rep(1:4, each = 80)

## starting to create an example dataset,
## to see if I can recover known parameters
a <- rep(c(3.5, 4, 4.1, 5), each = 80)
b <- rep(c(1.1, 1.4, 1.8, 2.5), each = 80)
c <- rep(c(0.125, 0.25), each = 160)

## error to add to above parameters
set.seed(1)
e_a <- runif(320, -0.5, 0.5)
e_b <- runif(320, -0.1, -0.1)
e_c <- runif(320, -0.02, 0.02)

## this is my function

f <- function(t, a, b, c) a * (t^b) * exp(-c * t)

## simulate y
y <- f(t = t, a + e_a, b + e_b, c + e_c)

mydata <- data.frame(t = t, y = y, g = g)

library(nlme)
## now fit the model to estimate a, b, c
fm1 <- nlme(y ~ a * (t^b) * exp(-c * t),
data = mydata,
fixed = a + b + c~1,
random = a + b + c ~ 1|g,
start = c(a = 4, b = 1, c = 0.25),
method = "REML")

最佳答案

在物理学(和其他一些领域)中,我已经看到了这个或它的变体,称为 Hoerl 曲线或 Hoerl 函数 e.g. here ,尽管它还有其他名称。如果 c 为负且 a 和 b 为正,则它是缩放的 Gamma 密度。

当你问线性化它时,你必须小心;方程 y = at^b 。 exp(ct) 实际上并不是你的意思——观察值 y(i) 并不完全等于 a 。 t(i)^b 。 exp(ct(i)) (否则几乎任何 3 个观察都会为您提供确切的参数值)。

所以噪音必须以某种方式进入你的模型。是添加剂吗?乘法,还是别的什么? (同样重要,但出于其他原因:它的大小是否随着 t 的变化而以某种方式发生变化?不同观察的噪声项是否独立?)

如果您的实际模型是 y(i) = at(i)^b 。 exp(ct(i))+ε(i),这是不可线性化的。

如果您的实际模型是 y(i) = at(i)^b 。 exp(ct(i)) 。 ε(i) 和 ε(i)=exp(η(i)) 对于某些(希望为零均值)η(i),这是可线性化的。

采取第二种形式,

log(y(i)) = log(a) + b log(t(i)) + c t(i) + log(ε(i))

或者

y*(i) = a* + b.log(t(i)) + c.t(i) + η(i)

它在参数 a* = log(a)、b 和 c 以及误差项 η(i) 中是线性的;因此,如果您准备对错误做出这种假设,您应该能够使用适合此类线性模型的方法对其进行拟合;在这种情况下,您可能希望考虑有关上述误差项的括号问题,这些问题可能会影响您对它的建模方式。

关于r - 函数 y = at^b * exp(-ct) 有名字吗?可以线性化吗?我如何估计 a、b、c?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33165155/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com