【问题标题】:Getting all possible values of parameter ($par) in Optim() function在 Optim() 函数中获取参数 ($par) 的所有可能值
【发布时间】:2020-05-21 19:21:10
【问题描述】:

我在 R 中使用 optim 函数,它只给出给定范围内的一个值(下限和上限)的结果,但问题是我需要从 0.3 到 20 的所有参数值及其值用于绘图。那可能吗?下面给出代码和结果?

n <- 20
b0<-b1<-1
x <- rnorm(n)
e <- rnorm(n)
y = b0+b1*x+e

wts <- rep(1,n)
mod <- lm(y~x,weights=wts)
SS <- mad(mod$resid)
err <- mod$resid/sqrt(SS)



optim(par =  3, fn = tau.hat.beta.Qader, x = err,lower = .3, upper=20,method = "Brent")

$par [1] 20

$值 [1] -0.5698667

$counts 函数梯度 呐呐

$收敛 [1] 0

$消息 空

【问题讨论】:

  • 你能给我们一个minimal reproducible example,特别告诉我们tau.hat.beta.Qader的定义吗?
  • 你可以使用任何函数,比如 x^2 什么的
  • 请编辑您的问题以包含函数...
  • 好的,但是如果您将功能提供给我们而不是让我们自己编造,将会有很大帮助。这就是minimal reproducible example 的含义...

标签: r statistics regression


【解决方案1】:

optim() 最小化一个函数,在你的情况下是tau.hat.beta.Qader。你给它一个区间,在这个区间内你假设最优。

如果您想要函数的值与其参数的给定值,请尝试以下操作:

vals <- data.frame(par = seq(from = 0.3, to = 20, by = 0.1), f = NA)
vals$f <- tau.hat.beta.Qader(vals$par)

optim() 产生角点解,函数最小化的参数是区间的上界。如果真实(或全局)最优值超出所提供的区间,通常会出现这种情况。

【讨论】:

  • 无论你在做什么都与 OP 的要求不同。想象一下,你有 y 值,你需要 x 值来得到你所拥有的 y 值。 OP 需要绘制一个图表,其中它们具有 y 值而没有 x 值。另一方面,你给出了一个例子,你有 x 值。
  • 那我误解了这个问题。我认为,重新标记为 x 和 y 具有误导性,因为 OP 在他们的问题中有变量 x 和 y。重读这个问题,我认为 OP 可能正在寻找一个针对 err(目标函数的第二个输入)值的网格扩展参数值,并填充函数值。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-03
  • 2012-05-30
  • 2014-08-28
  • 1970-01-01
  • 1970-01-01
  • 2018-09-18
相关资源
最近更新 更多