在对数变换后计算标准误差

时间:2014-11-10 23:36:09

标签: r statistics

考虑一组正态分布的随机数字:

x <- rnorm(n=1000, mean=10)

我们想知道平均值和标准误差,因此我们执行以下操作:

se <- function(x) { sd(x)/length(x) }
mean(x) # something near 10.0 units
se(x)   # something near 0.001 units

大!

但是,我们假设我们不一定知道我们的原始分布遵循正态分布。我们对数据进行日志转换并执行相同的标准误差计算。

z <- log(x, base=10)
mean(z) # something near 1 log units
se(z)   # something near 0.000043 log units

很酷,但现在我们需要进行反向转换,以单位NOT log单位获得答案。

10^mean(z) # something near 10.0 units
10^se(z)   # something near 1.00 units

我的问题:对于正态分布,为什么标准误差会根据它是从分布本身计算还是转换,计算和反向变换而有所不同?在这个例子中,有趣的是差异几乎正好是3个数量级。注意:无论转换如何,手段都是相同的。

编辑#1:最后,我有兴趣计算非正态分布数据的均值和置信区间,因此,如果您可以就如何计算95%CI的转换数据(包括如何反向转换为他们的本土单位,我会很感激!
结束编辑#1

编辑#2:我尝试使用分位数函数获得95%的置信区间:

quantile(x, probs = c(0.05, 0.95))     # around [8.3, 11.6]
10^quantile(z, probs = c(0.05, 0.95))  # around [8.3, 11.6]

所以,这会聚合在同一个答案上,这很好。但是,使用此方法不能使用具有“小”样本大小的非正常数据提供完全相同的间隔:

t <- rlnorm(10)
mean(t)                            # around 1.46 units
10^mean(log(t, base=10))           # around 0.92 units
quantile(t, probs = c(0.05, 0.95))                     # around [0.211, 4.79]
10^(quantile(log(t, base=10), probs = c(0.05, 0.95)))  # around [0.209, 4.28]

哪种方法被认为是“更正确”。我假设有人会选择最保守的估计值?

例如,您是否会将非正常数据(t)的结果报告为平均值为0.92,95%置信区间为[0.211,4.79]?
结束编辑#2

谢谢你的时间!

0 个答案:

没有答案