首页 > 解决方案 > 在 Optim() 函数中获取参数 ($par) 的所有可能值

问题描述

我在 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 函数梯度 NA NA

$收敛[1] 0

$消息空

标签: rstatisticsregression

解决方案


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


推荐阅读