【问题标题】:Optimise/Optimize() nonlinear function for Ordinal Logistic Regression Function in RR中序数逻辑回归函数的优化/优化()非线性函数
【发布时间】:2020-04-12 14:56:55
【问题描述】:

我想最大化这个非线性函数,但我无法弄清楚我做错了什么。代码如下:

max.fun<-function(y0,y1,y2,pi0,pi1,pi2){y0*log(pi0)+y1*log(pi1)+y2*log(pi2)} 

th = matrix(c(-1,-3,1),nrow=1,ncol = 3)
y0 = matrix(c(26,104),nrow=1,ncol = 2)
y1 = matrix(c(33,72),nrow=1,ncol = 2)
y2 = matrix(c(22,31),nrow=1,ncol = 2)
race = matrix(c(1,0),nrow=1,ncol = 2)

alpha1<-th[1]
alpha2<-th[2]
beta<-th[3]

ex1<-exp(alpha1+beta*race)
ex2<-exp(alpha2+beta*race)

ee1<-ex1/(1+ex1)
ee2<-ex2/(1+ex2)

pi0<-1/(1+ex1)
pi1<-ee1-ee2
pi2<-ee2


optimize(max.fun,
         c(0,1),
         y0=y0,
         y1=y1,
         y2=y2,
         pi0=pi0,
         pi1=pi1,
         pi2=pi2,
         tol = 0.0001)

当我运行优化功能时,我收到以下错误消息:

Error in f(arg, ...) : unused argument (arg)

非常感谢任何帮助。

【问题讨论】:

    标签: r function optimization


    【解决方案1】:

    您要优化什么?如果 x 那么它需要在 LHS 并且必须提供其他值 - 例如如果你想最大化 y0:

    max.fun<-function(y0,y1,y2,pi0,pi1,pi2){y0*log(pi0)+y1*log(pi1)+y2*log(pi2)} 
    
    th = matrix(c(-1,-3,1),nrow=1,ncol = 3)
    y0 = matrix(c(26,104),nrow=1,ncol = 2)
    y1 = matrix(c(33,72),nrow=1,ncol = 2)
    y2 = matrix(c(22,31),nrow=1,ncol = 2)
    race = matrix(c(1,0),nrow=1,ncol = 2)
    
    alpha1<-th[1]
    alpha2<-th[2]
    beta<-th[3]
    
    ex1<-exp(alpha1+beta*race)
    ex2<-exp(alpha2+beta*race)
    
    ee1<-ex1/(1+ex1)
    ee2<-ex2/(1+ex2)
    
    pi0<-1/(1+ex1)
    pi1<-ee1-ee2
    pi2<-ee2
    
    # Using purely illustrative values
    y0m <- optimize(max.fun,
             c(0,1),
             y1=2,
             y2=3,
             pi0=4,
             pi1=5,
             pi2=6,
             tol = 0.0001,
             maximum = T)
    y0m
    
    > y0m
    $maximum
    [1] 0.9999339
    
    $objective
    [1] 9.980357
    
    

    如果提供给您的这个/任何其他答案对您有用,请接受答案 /vote+ !

    【讨论】:

      猜你喜欢
      • 2018-06-26
      • 2010-10-20
      • 2021-06-08
      • 2017-05-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多