【问题标题】:Maxima of function in R [closed]R中的函数最大值
【发布时间】:2018-07-20 15:36:30
【问题描述】:
Y = 20*(1-EXP(-(10*(1-EXP(-X/400)))/5))* Premium - X

我想最大化 Y。在 X 的什么值时,Y 的值将最大化。 我需要为此编写一个函数。

样本数据

 id     premium     Y   X
110936  3300       NA   NA
41492   18000      NA   NA
31300   3300       NA   NA
19415   9600       NA   NA
99379   9600       NA   NA

【问题讨论】:

  • 你尝试了一些你可以展示的东西吗?实际上,我们不知道您是否尝试过某事并且无法从中衡量您的知识水平以写出全面的答案。
  • 在 Excel 中,我们使用求解器通过更改另一列的值来最大化一列。我们想在 R 中实现同样的自动化。

标签: r


【解决方案1】:

在 R 中定义你的函数,然后使用optimize 找到它的最小化器。因为您正在寻找最大值,所以您需要否定函数定义的输出。 您没有指定 Premium 如何适合您的优化任务,所以我只是假设它是一个固定值:

f <- function(x)
{
  Premium <- 3300
  y <- 20*(1-exp(-(10*(1-exp(-x/400)))/5))* Premium - x
  -y  ## Negate the output, because we want to find the maximum
}

对于像您这样的单变量函数,您可以使用optimize。对于多变量函数(例如,如果您想同时优化 xPremium),您将使用 optim。您可以在 R 中执行 ?optimize?optim 以了解有关每个函数的更多信息。

optimize 采用函数和最小化间隔:

optimize(f, c(0,1e6) )
# $minimum
# [1] 1536.798

# $objective
# [1] -55139.53

【讨论】:

    猜你喜欢
    • 2018-09-04
    • 1970-01-01
    • 2013-06-05
    • 1970-01-01
    • 2018-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多