【问题标题】:Do a linear regression on a non-linear function in R对 R 中的非线性函数进行线性回归
【发布时间】:2022-01-11 06:20:58
【问题描述】:

我不太清楚如何在 R 中分析非线性回归。 我发现我仍然可以使用函数的日志对 lm 进行线性回归。
我的第一个函数是这个函数,其中 β1 是截距,β2 是斜率,ε 是误差项:

我认为下面的命令给了我想要的东西:

result <- lm(log(Y) ~ log(X1), data=dataset)

问题在于以下函数:

我不知道应该在 lm 中放什么才能对我的函数执行线性回归...有什么想法吗?

【问题讨论】:

  • 最好用数学格式写出你的方程,例如Y = beta_0 X_1^beta_1 exp(epsilon);这种方式更易于搜索和访问

标签: r linear-regression lm logarithm


【解决方案1】:

以下数学显示如何将您的方程转换为线性回归:

Y = b0*exp(b1*X1 + epsilon)
log(Y) = log(b0) + b1*X1 + epsilon
log(Y) = c0 + b1*X1 + epsilon

所以在 R 中这只是

lm(log(Y) ~ X, data = your_data)

不过,您不会得到b0 的直接估计值,但只能得到log(b0) 的估计值。但是您可以通过取幂来对截距及其置信区间进行反向转换。

b0_est <- exp(coef(fitted_model)["(Intercept)"])
b0_ci  <- exp(confint(fitted_model)["(Intercept)", ])

【讨论】:

  • 如果这解决了您的问题,我们鼓励您单击复选标记接受它(但是,如果有您认为可以更好地解决的方面,也欢迎您发布自己的答案)
猜你喜欢
  • 2020-11-01
  • 2012-03-14
  • 1970-01-01
  • 2017-05-18
  • 2015-01-02
  • 2011-10-14
  • 1970-01-01
  • 2012-01-12
  • 1970-01-01
相关资源
最近更新 更多