R 有没有一种方法可以返回转换日志(x+;1)?
有没有办法反变换R中R 有没有一种方法可以返回转换日志(x+;1)?,r,math,R,Math,有没有办法反变换R中log(x+1)值向量的平均值?我试图使用base包中的expm1()函数,但数字肯定不正确 df <- c(11, 24, 21, 63, 44, 95, 12, 43, 0, 5, 26, 22, 25, 48, 86, 2) mean(df) df这更像是一道数学题。平均值(log(x))的指数化值不等于(x)的平均值 mydf不,这是不可能的。不幸的是,mean(log1p(x))==mean(log(1+x))是单向操作。 想象 但是 所以拥有mean(l
log(x+1)
值向量的平均值?我试图使用base
包中的expm1()
函数,但数字肯定不正确
df <- c(11, 24, 21, 63, 44, 95, 12, 43, 0, 5, 26, 22, 25, 48, 86, 2)
mean(df)
df这更像是一道数学题。平均值(log(x))的指数化值不等于(x)的平均值
mydf不,这是不可能的。不幸的是,mean(log1p(x))==mean(log(1+x))
是单向操作。
想象
但是
所以拥有mean(log1p(…)
你不能得到mean(…)
。对于一个给定的平均值(log1p())
,每当集合有多个项目时,就会有无限多个不同的平均值。@DmitryBychenko的答案清楚地解释了为什么如果你只有平均值,这是不可能的。但是,如果使用一种形式的delta方法(使用二阶泰勒级数近似)得到均值和方差,则可以得到一个近似值,该方法表示一般(近似)mean(F(x))~F(mean(x))+F'(mean(x))*var(x)/2
。对于这个特殊的问题,
F(x) = exp(x)-1
F''(x) = exp(x)
这是初等微积分,但如果需要,可以使用D(D(表达式(exp(x)-1),“x”),“x”)
进行双重检查。现在:
变换尺度上的均值和方差
这很容易理解。谢谢你澄清:)这也很有帮助!感谢您的回答。根据对数的性质,log(x+1)
对一组值的算术平均值等于log
对同一组值的几何平均值(x+1)
。这两种方法之间没有一对一的对应关系。
mydf <- c(5,10)
mean(mydf)
[1] 7.5
log(mydf)
[1] 1.609438 2.302585
mean(log(mydf))
[1] 1.956012
exp(mean(log(mydf)))
[1] 7.071068
A <- c(1 / exp(1) - 1, exp(1) - 1)
B <- c(0, 0)
mean(A) = 0.5430806
mean(B) = 0
mean(log1p(A)) = 0
mean(log1p(B)) = 0
F(x) = exp(x)-1
F''(x) = exp(x)