【问题标题】:Solve for maximum likelihood with two parameters under constraints在约束条件下用两个参数求解最大似然
【发布时间】:2014-04-01 18:33:51
【问题描述】:

我正在尝试在 R 中实现一个 beta 几何概率模型(如 this whitepaper 中所述),该模型涉及求解具有两个未知参数的方程。在示例中,他们使用 Excel 来执行此操作,将值从 alpha = beta = 1 开始,并将它们限制为 alpha > 0.0001 < beta

我几乎在 R 中实现了这一点,但我似乎无法让任何求解器为我工作。请帮忙。

RFiddle here

# probability mass function
P = function (alpha, beta, t) {  
    out = numeric(length=length(t))
    for (i in seq_along(t)) {
        if (t[i]==1) {
            out[i] = alpha / (alpha + beta)
        } else {
            out[i] = ((beta + t[i] - 2) / (alpha + beta + t[i] - 1)) * P(alpha, beta, t[i] - 1)
        }
    }
    out
}

# survival probability function
S = function(alpha, beta, t) {
    if (t==1) {
        1 - P(alpha, beta, t=t)
    } else {
        S(alpha, beta, t - 1) - P(alpha, beta, t=t)
    }
}

# log likelihood function
LL = function(alpha, beta=1, t, n) {
    sum(n * log(P(1,1,t))) + (sum(n[1:length(n)-1]) * log(S(alpha, beta, t=t[length(t)])))
}

# make some test data
n = c(239L, 2650L, 1063L, 1014L, 473L, 1304L)
t = 1:6

# log likelihood
LL(alpha=1, beta=1, n=n, t=t)

# use numerical optimization to find values of alpha and beta
optim(c(1,1), fn=LL, n=n, t=t)

require(stats4)
mle(LL, start=list(alpha=1, beta=1), t=t, n=n)

【问题讨论】:

    标签: r mathematical-optimization


    【解决方案1】:

    默认情况下,optim 将最小化,但您希望最大化 LL。此外,您想使用 L-BFGS-B 之类的方法,它使用绑定信息:

    optim(c(1, 1), function(x) -LL(x[1], x[2], n=n, t=t), method="L-BFGS-B",
          lower=c(0.0001, 0.0001))
    # $par
    # [1]    0.0001 9679.3562
    # 
    # $value
    # [1] 17075.64
    # 
    # $counts
    # function gradient 
    #       87       87 
    # 
    # $convergence
    # [1] 0
    # 
    # $message
    # [1] "CONVERGENCE: REL_REDUCTION_OF_F <= FACTR*EPSMCH"
    

    我们可以验证我们已经改进了对数似然:

    LL(1, 1, n=n, t=t)
    # [1] -27659.45
    
    LL(0.0001, 9679.3562, n=n, t=t)
    # [1] -17075.64
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-07
      • 1970-01-01
      • 2019-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-16
      相关资源
      最近更新 更多