如何用exp和ln计算R中的回归系数



我想使用以下方程计算数据的回归系数ab

y=exp(a * 1 - t  + b * 1 - t )

以及该数据(示例):

t = c(1,2,5,4,8,7,5,1,2,5,4,1,2,1,5)
t1 = c(1,2,4,4,5,3,7,5,6,8,7,1,2,1,5)

我知道我们可以使用

lm(y ~ t + t2)

但是我不知道如何包括CCD_ 3和CCD_。PLease帮助

如果您想执行此回归:

y = exp(a * ln(1 - t / h) + b * ln(1 - t / t1))

首先在两侧应用log

log(y) = a * ln(1 - t / h) + b * ln(1 - t / t1)

如果有帮助,请使用辅助变量:

z  <- log(y)
w1 <- log(1 - t / h)
w2 <- log(1 - t / t1)
regr <- lm(z ~ w1 + w2)

根据您的问题,看起来tt1h都是自变量,y是因变量,ab是模型的参数。使用定义x1 = t/hx2=t/t1,您的模型公式等效于:

y = (1-x1)^a * (1-x2)^b

这在参数a和b中显然是非线性的。在这种情况下,通常使用非线性最小二乘法nls(...)要好得多。为什么?

最小二乘回归基于几个假设,其中最重要的是y中的误差正态分布,平均值为0,方差为常数。如果这对于y是真的,那么对于log(y)肯定不是真的。因此,使用log(y)作为自变量运行回归将为ab提供数字,但拟合的统计数据(例如,ab中的误差估计等)将毫无意义。

最后,您的数据集是病态的,因为对于您的几个案例,要么是x1 = 1,要么x2 = 1,要么两者都有。在这种情况下为CCD_ 24或CCD_。此外,在x1 > 1x2 > 1。在这些情况下,log(...)是未定义的。

最新更新