如何使用 2 个百分位数计算对数正态分布的均值和标准差

机器算法验证 r 对数正态分布
2022-03-01 04:56:46

我正在尝试计算对数正态分布的 2 个百分位数的平均值和标准差。

X = mean + sd * Z我成功地使用和求解均值和标准差来计算正态分布。

当我尝试对对数正态分布做同样的事情时,我想我错过了一个方程。我查看了维基百科并尝试使用ln(X) = mean + sd * Z,但我很困惑在这种情况下,平均值和标准差是用于正态分布还是对数正态分布。

我应该使用哪些方程?我需要超过 2 个百分点来解决计算吗?

1个回答

似乎您“知道”或以其他方式假设您有两个分位数;假设您有 42 和 666 是对数正态的 10% 和 90% 点。

关键是在记录(正常)规模上几乎所有事情都更容易做和理解;尽可能少和尽可能晚地取幂。

我以在累积概率尺度上对称放置的分位数为例。然后对数刻度上的平均值介于它们之间,并且可以使用正常分位数函数估计对数刻度上的标准偏差 (sd)。

我使用来自 Stata 的 Mata 进行这些示例计算。反斜杠\按列连接元素。

mean = mean(ln((42 \ 666)))

(ln(666) - mean) / invnormal(0.9)
1.078232092

SD = (ln(666) - mean) / invnormal(0.9)

那么指数尺度上的平均值是

exp(mean + SD^2/2)
299.0981759

并将方差留作练习。

(旁白:在任何其他体面的软件中它应该一样容易或更容易。如果我没记错的话, invnormal()它就在 R 中。)qnorm()