为什么这个代码不能针对所有三个点进行优化?

时间:2010-12-06 15:43:53

标签: optimization r probability

背景

我正在尝试将分配符合95%CI和模式。 我使用的成本函数解决了0的两个函数:P(X = 2.5 |μ,sigma)= 0.025,P(X = 7.5 |μ,sigma)= 0.975,以及log-N的模式(mu,sigma) )= 3.3。注意:对数正态的模式是= $ e ^ {\ mu- \ sigma ^ 2)} $:

方法

首先我写一个成本函数prior

prior <- function(parms) {
  a <- abs(plnorm(2.5, parms[1], parms[2]) - 0.025)
  b <- abs(plnorm(7.5, parms[1], parms[2]) - 0.975)
  mode <- exp(parms[1] - parms[2]^2)
  c <- abs(mode-3.3)
  return(a + b + c)
}

然后我寻找最小化成本函数的参数

v = nlm(prior,c(log(3.3),0.14))

显然,对于LCL模式而不是UCL,函数最大化。

abs(plnorm(7.5, parms[1], parms[2]) - 0.975)
> [1] 0.02499989

这是在所需的95%CI下用虚线绘制的图:

x <- seq(0,10,0.1)
plot(x,dlnorm(x, v$estimate[1],v$estimate[2]),type='l')
abline(v=c(2.5,7.5), lty=2) #95%CI

问题

优化两点紧密,所有错误都在第三。但是,我希望它能均匀地适应这些点。

如何让函数对 a b c 术语的大小赋予相同的权重?该功能似乎只适合 a c

注意:这个问题基于[交叉验证] [1]提出的问题,除了这个版本是关于R的nlm()优化算法的功能,而CV问题是关于查找一个更合适的分布。

2 个答案:

答案 0 :(得分:1)

尝试优化功能的替代配方。对数正态分布的95%置信区间的对数由mu-2 * sigma和mu + 2 * sigma给出。所以你基本上可以尝试最小化abs(mu - 2 * sigma - log(2.5))+ abs(mu + 2 * sigma - log(7.5))+ abs(mu - sigma ^ 2 - log(3.3))。< / p>

当我最小化这个时,我发现置信区间非常紧密,而模式稍微偏离。根据应用程序的性质,您可能希望以不同方式对三个术语进行加权

答案 1 :(得分:1)

优化“不起作用”的原因是abc三个参数的比例不匹配。 ab衡量概率的差异,并且通过选择标准差(parms[2])的非常小的值,可以始终设置为不大于0.025,从那时起plnorm(2.5, parms[1], parms[2]) c 1}}将为0(7.5相同)。对于x,相同的误差量(0.025)是不可察觉的 - 这是缩放不匹配。

您可以重写优化函数,以便通过将分位数与2.5和7.5进行比较,在所有三个条件的prior2 <- function(parms) { a <- abs(qlnorm(0.025, parms[1], parms[2]) - 2.5) b <- abs(qlnorm(0.975, parms[1], parms[2]) - 7.5) mode <- exp(parms[1] - parms[2]^2) c <- abs(mode-3.3) return(a + b + c) } 标度上测量错误:

a^2+b^2_c^2

这与Ramnath建议的类似,不同之处在于对数刻度。这种方法在左尾方面并不是很好,因为分布是正确的:第2.5个百分位数的位置的微小变化导致2.5的百分位数的大变化,而7.5的情况则不然。 Ramnath关于在对数尺度上工作的建议解决了这个问题,因为对数正态分布在对数尺度上是对称的。

提高适合度的另一种方法是更改​​优化标准。现在,您正在最小化平均绝对误差。这意味着只要其他两个错误项非常小,一个大错误就可以了。您可以通过最小化均方误差(prior3 <- function(parms) { a <- abs(parms[1] - 1.96*parms[2] - log(2.5)) b <- abs(parms[1] + 1.96*parms[2] - log(7.5)) c <- abs(parms[1] - parms[2]^2 - log(3.3)) return(a^2 + b^2 + c^2) } )来对大错误施加更大的惩罚。这个最新版本(在对数刻度上)从我的角度产生最佳估计。

{{1}}