解释 log(y+1) 转换响应的回归系数

机器算法验证 回归 线性模型 解释 回归系数
2022-04-01 05:28:16

我的测量值 ,..., ,...,取自因子设计实验中的一组复制品。y1yiyn

为了使用线性回归,我定义了我的响应使用对数是为了使正态假设成立和模型拟合,并且使用 + 1 因为一些是 0。zi=log(yi+1)yi

如果模型是,那么 \beta 的解释{所以这给出了几何平均值z=a+βXβ

β=i=1nzi/n=i=1nlog(yi+1)/n
log(i=1n(yi+1))=βn,
i=1n(yi+1)n=eβ.

我的问题是是否有一些反向变换或其他方式来解释的几何平均值而不是的作为的函数。我要问的原因是,对于很小(接近 0)的情况,的值低估了影响的大小。yi(yi+1)βyiβ

2个回答

用 GM 来思考的另一种方法是半弹性。

您的期望值模型类似于

E[ln(y+1)|x]=α+βx+γz

求导,得到 这可以重写为x

E[ln(y+1)|x]x=1y+1yx=β
100Δyy+1Δx=100β,

几乎相同 。

ϵ=100ΔyyΔx.

通常的做法是说当很大时,这两个方程基本相同,并将的百分比变化的一个额外单位相关联yβyx

如果你的 X 是一组假人而不是连续的,你可以这样

说了这么多,最好仔细考虑模型中零点的起源。如果它们很多,与添加 1 或 0.001 相比,添加 0.01 通常可以极大地改变您的结果。由于常数的选择通常是任意的,因此使用不同的常数进行一些稳健性检查甚至调整常数都可以很好地工作。另一种选择是 GLM,就像具有异方差方差的 Poisson 一样,它放宽了均值方差相等假设,从而完全不需要任何变换。后者是我最喜欢的选择。

如果零来自与正数不同的过程,则解释会更加令人担忧。一个例子是假期支出和孩子的数量,其中很大一部分家庭不花钱。更多的孩子会降低一个家庭去度假的可能性,但如果有条件,更多的孩子会导致更高的支出。这里的零来自与正值不同的选择过程,因此需要更复杂的模型。

免责声明:我强烈建议不要拟合 log(y+1) 以防止负值的对数。这可能是常用的,但仅此一项还不能成为一种好的做法。在许多情况下,有更好的技术。在回归情况下,可以使用 GLM 或非线性回归。

我们可以通过查看的导数用线性近似来估计它

xf(x)=xi=1n(yi+1+x)n

我们有

xlogf(x)=1ni=1n1yi+1+x

xf(x)=f(x)x[logf(x)]=f(x)1ni=1n1yi+1+x

那么线性近似是

i=1n(yi)ni=1n(yi+1)n(11/y¯)

所以yy+1大约与1/y并且您可以通过以下方式计算估计的范围1/y1/(y+1)

计算示例:

set.seed(1)
n = 10
y = runif(n,2,10)

# true value 5.896058
prod(y)^(1/n)

# lowerbound 5.673379  
exp(mean(log(y+1))) * (1-mean(1/y))

# upperbound 5.911496
exp(mean(log(y+1))) * (1-mean(1/(y+1)))