R:多种方法'电话

时间:2018-02-14 17:10:51

标签: r

我遇到了一些问题,包括几个需要传递几个名为'方法的函数的软件包。参数,一个用于原始函数调用,一个作为省略号的一部分' ...'论点。 具体来说,我试图通过普通的最大似然拟合有序的概率模型,但我想将边界应用于参数估计。我在MASS和“序数”中的相关功能遇到了同样的问题。包。我将在MASS中进行说明。

这是MASS中的功能:

polr(formula, data, weights, start, ..., subset, na.action,
     contrasts = NULL, Hess = FALSE, model = TRUE,
     method = c("logistic", "probit", "loglog", "cloglog", "cauchit"))

polr称之为“优化”'函数,它允许通过在省略号处将参数传递给optim来控制优化的各个方面。这是optim的函数声明:

optim(par, fn, gr = NULL, ...,
      method = c("Nelder-Mead", "BFGS", "CG", "L-BFGS-B", "SANN",
                 "Brent"),
      lower = -Inf, upper = Inf,
      control = list(), hessian = FALSE)

为了进行有限的优化,我需要通过L-BFGS-B'优化的方法'争论(以及'降低'和#39;参数)。我会将它作为省略号参数传递给' polr',但当然,' polr'有自己的方法'争论,为了我的目的,我应该设置为“probit'”。 当然,通过'方法'两次在polr赢得了工作。我知道使用不完整的参数名称的技巧(ex' metho')但它对我不起作用。它不能作为“控件”传递。名单。在'序数'包,方法参数更深一层,但结果是相同的困境。什么会起作用?

以下是重现问题的示例代码:

require(MASS)
x <- c(rep(0,6),rep(1,6))
resp <- as.factor(rep(seq(1,6),2))
Freq <- c(7,11,2,0,0,0,2,0,1,3,1,3)
# no problem:
polr(resp ~ x, weights= Freq, method = 'probit')
# but this is what I need (but can't):
polr(resp ~ x, weights = Freq, 
     # ellipsis arguments to pass to optim:
     method = 'L-BFGS-B', lower = rep(-5,6), upper = rep(5,6), 
     # necessary argument to polr:
     method='probit')

有什么建议吗?

0 个答案:

没有答案