有没有办法对 log(x+1) 进行反向变换?

FIS*_*HnR 5 math r

有没有办法对log(x+1)R 中的值向量的均值进行反向变换?我尝试使用包expm1()中的函数base,但数字肯定不正确。

df <- c(11, 24, 21, 63, 44, 95, 12, 43, 0, 5, 26, 22, 25, 48, 86, 2)

mean(df)
Run Code Online (Sandbox Code Playgroud)

这给了我们 32.9375

现在,如果我们这样做...

df.log1p <- log1p(df)
mean(df.log1p)
Run Code Online (Sandbox Code Playgroud)

这给了我们 3.0382116

现在,我可以对单个平均值进行反向转换以获得非log1p平均值 32.9375 吗?我曾经expm1(3.0382116)尝试过,但得到的是 19.86789。

这有可能吗?

Dmi*_*nko 5

不,这是不可能的。不幸的是,mean(log1p(x)) == mean(log(1 + x))这是一种单向操作。想象

 A <- c(1 / exp(1) - 1, exp(1) - 1)
 B <- c(0, 0)
Run Code Online (Sandbox Code Playgroud)

如你看到的

 mean(A) = 0.5430806
 mean(B) = 0 
Run Code Online (Sandbox Code Playgroud)

 mean(log1p(A)) = 0
 mean(log1p(B)) = 0
Run Code Online (Sandbox Code Playgroud)

所以有mean(log1p(...))无法得到mean(...)。对于给定的集合,只要集合有多个项目,mean(log1p())就会有无限多个不同的对应项。mean

  • 这很容易理解。谢谢你的澄清:) (2认同)