You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R语言中将指数模型y=B₀e^(B₁x)编写为函数?

在R中实现指数模型( y = B_0 e^{B_1 x} )的正确方法

要拟合目标指数模型,正确的做法是对等式两边取自然对数做线性化转换:
( \log(y) = \log(B_0) + B_1 x )

对应的R代码为:

model <- lm(log(y) ~ x)

为什么你尝试的其他写法都不对?

  • lm(y ~ exp(x)):拟合的是( y = B_0 + B_1 e^x ),属于自变量取指数的线性模型,和目标指数模型结构完全不同。
  • lm(y ~ log(x)):拟合的是( y = B_0 + B_1 \log(x) ),是自变量做对数变换的线性模型,和指数模型无关。
  • lm(log(y) ~ log(x)):拟合的是幂函数模型( y = B_0 x^{B_1} )(取对数后为( \log(y) = \log(B_0) + B_1 \log(x) )),并非你需要的指数模型。

补充说明

用lm(log(y) ~ x)得到的模型截距是( \log(B_0) ),若要还原原始模型的( B_0 ),需对截距取指数:

B0 <- exp(coef(model)[1])
B1 <- coef(model)[2]

如果不想通过对数转换线性化,也可以直接用非线性最小二乘法拟合:

nls_model <- nls(y ~ B0 * exp(B1 * x), start = list(B0 = 1, B1 = 0.1))

这种方法无需对y做对数变换,但需要提供参数的初始值(start里的数值可根据数据大致估计调整)。

内容的提问来源于stack exchange,提问作者sarah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 03:06:29