首页 > 解决方案 > 当间隔增加时优化到达错误的答案

问题描述

有谁知道这里的优化功能是怎么回事?鉴于我想要进行 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

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

标签: roptimization

解决方案


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

在此处输入图像描述

因此,如果我们使用简单的二分搜索方法并从中间开始,那么该点的梯度将是平坦的,并且对找到最小值没有帮助。然而,如果间隔更小,第一个猜测实际上可能有一个指向全局最小值的有用梯度。


推荐阅读