间隔增加时,优化到达错误答案

时间:2019-06-04 23:54:52

标签: r optimization

有人知道这里的优化功能是怎么回事吗?考虑到我要进行90/10的控制/测试拆分以达到80的功效,我试图找到最小的样本量。

library(pwr)

# Proportions

p1 <- .09*1.2
p2 <- .09

Cohen.h = ES.h(p1, p2)

getNRatio <- function(n, p=.8){

  n1 <- n * .9
  n2 <- n * .1

  power <- pwr.2p2n.test(h = Cohen.h, n1 = n1, n2 = n2, sig.level = .05, power = NULL, alternative='greater')$power
  return((p - power)^2)
}

> optimize(getNRatio, interval=c(0, 1e6), maximum=FALSE, p=.8)
$minimum
[1] 1e+06

$objective
[1] 0.04


> optimize(getNRatio, interval=c(0, 1e5), maximum=FALSE, p=.8)
$minimum
[1] 18875.37

$objective
[1] 6.907866e-20

为什么当我将时间间隔设置为下限并以更高的上限失败时,为什么优化会找到正确的答案?

1 个答案:

答案 0 :(得分:0)

所以我认为这与使用梯度下降的方法有关。整个间隔的图将生成以下内容:

enter image description here

因此,如果我们使用朴素的二进制搜索方法并从中间开始,那么该点的梯度将是平坦的,并且对找到最小值没有帮助。但是,在较小的时间间隔内,第一次猜测实际上可能具有指向全局最小值的有用梯度。