gpt4 book ai didi

r - 截断法线的 fitdist

转载 作者:行者123 更新时间:2023-12-02 01:15:25 24 4
gpt4 key购买 nike

截断法线由下式给出:

dtnorm<- function(x, mean, sd, a, b) {
dnorm(x, mean, sd)/(pnorm(b, mean, sd)-pnorm(a, mean, sd))
}
ptnorm <- function(x, mean, sd, a, b) {
(pnorm(x,mean,sd) - pnorm(a,mean,sd)) /
(pnorm(b,mean,sd) - pnorm(a,mean,sd))
}

拟合由下式给出:

fitdist( data, tnorm, method="mle",
start=list(mean=mapply("[[", results[1], 1),
sd=mapply("[[", results[1], 2)),
fix.arg=list(a=minLoose,b=maxLoose))

其中 results[i] 是一个矩阵,其中 fitdist 的 mle 结果使用 normal 而不是 tnormal。

我得到以下 tnorm 结果:

mean=-0.00844725266454969, sd=0.012540928272073

而对于规范:

mean=0.00748402597402597, sd=0.00614293813955003

数据都大于 0 且小于 0.04,因此为 tnorm 获得的 mle 似乎不正确......有什么建议吗?

谢谢!

最佳答案

您的数据全部高于正常值(呃,高于 0)这一事实与截断分布的最佳拟合“平均值”是否超过或不超过 0 几乎没有关系。您正在拟合右尾a 数据的正态分布。截断的估计位置参数并不是真正的平均值,而是平均值在未经审查的数据集中的位置,其右尾与您的数据具有相同的密度“形状”。 (这实际上是一个统计问题而不是 R 问题。)

您可以在维基百科文章的时刻部分找到计算双重截断法线的期望值的公式: http://en.wikipedia.org/wiki/Truncated_normal_distribution它很容易转换为对 pnormqnorm 的调用。

进一步思考:检查在包中处理截断分布的工具:“gamlss”和“gamlss.tr”。

关于r - 截断法线的 fitdist,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12097669/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com