The objective is to MAXIMIZE the Kendall Correlation. Given that ?pracma::fmincon minimizes the function, I added a negative sign in the objective function.
Description Find minimum of multivariable functions with nonlinear constraints. Therefore we should not remove the negative sign. On Fri, 28 Mar 2025 at 03:53, Rui Barradas <ruipbarra...@sapo.pt> wrote: > Às 19:36 de 27/03/2025, Daniel Lobo escreveu: > > My code is to minimize the objective function > > > > therefore, shouldnt I expect that > > > > StartingValue = c(0.12, 0.04, 0.07, 0.03, 0.06, 0.07, 0.07, 0.04, 0.09, > > 0.08, 0.02, 0.02, 0.03, 0.06, 0.02, 0, 0.07, 0.05, 0.02, 0.02, 0.02) > > Fn(q1$par) < Fn(StartingValue) > > ## FALSE > > > > Below is the corrected code that can be reproduced: > > > > MyDat = structure(list(c(50L, 0L, 0L, 50L, 75L, 100L, 50L, 0L, 50L, 0L, > > 25L, 50L, 50L, 75L, 75L, 75L, 0L, 75L, 75L, 75L, 0L, 25L, 75L, > > 75L, 0L, 75L, 100L, 0L, 25L, 100L), c(75L, 0L, 0L, 50L, 100L, > > 50L, 75L, 75L, 100L, 25L, 0L, 25L, 100L, 0L, 50L, 0L, 25L, 25L, > > 100L, 75L, 0L, 0L, 0L, 50L, 0L, 75L, 75L, 0L, 50L, 25L), c(50L, > > 0L, 0L, 0L, 100L, 25L, 0L, 0L, 25L, 50L, 0L, 25L, 75L, 50L, 100L, > > 50L, 0L, 75L, 25L, 50L, 0L, 0L, 25L, 0L, 50L, 100L, 100L, 0L, > > 75L, 50L), c(25L, 0L, 0L, 75L, 75L, 25L, 50L, 50L, 100L, 25L, > > 0L, 100L, 50L, 25L, 100L, 25L, 25L, 100L, 50L, 100L, 0L, 0L, > > 100L, 50L, 0L, 50L, 75L, 0L, 50L, 25L), c(50L, 0L, 0L, 75L, 75L, > > 75L, 25L, 25L, 0L, 100L, 0L, 25L, 25L, 75L, 100L, 0L, 25L, 0L, > > 75L, 25L, 25L, 25L, 75L, 25L, 0L, 75L, 100L, 0L, 100L, 100L), > > c(50L, 0L, 0L, 50L, 100L, 25L, 25L, 25L, 50L, 50L, 0L, 50L, > > 75L, 0L, 100L, 50L, 25L, 100L, 50L, 75L, 0L, 0L, 50L, 25L, > > 0L, 100L, 100L, 0L, 75L, 50L), c(50L, 0L, 0L, 50L, 75L, 25L, > > 75L, 50L, 100L, 25L, 0L, 75L, 25L, 0L, 50L, 0L, 50L, 75L, > > 100L, 75L, 0L, 0L, 100L, 0L, 0L, 50L, 75L, 0L, 100L, 100L > > ), c(25L, 75L, 50L, 25L, 75L, 50L, 100L, 75L, 100L, 25L, > > 0L, 75L, 25L, 50L, 25L, 25L, 75L, 75L, 100L, 75L, 75L, 100L, > > 75L, 25L, 0L, 75L, 75L, 0L, 75L, 100L), c(55L, 30L, 20L, > > 30L, 45L, 30L, 30L, 30L, 70L, 30L, 10L, 45L, 45L, 45L, 45L, > > 30L, 30L, 55L, 45L, 45L, 30L, 30L, 30L, NA, 30L, 55L, 45L, > > 20L, 45L, 70L), c(85L, 40L, 40L, 40L, 55L, 40L, 20L, 30L, > > 30L, 30L, 20L, 30L, 70L, 40L, 85L, 55L, 30L, 40L, 30L, 55L, > > 20L, 30L, 55L, 0L, 40L, 55L, 70L, 40L, 85L, 70L), c(45L, > > 45L, 0L, 45L, 45L, 45L, 0L, 0L, 100L, 45L, 0L, 100L, 45L, > > 45L, 100L, 45L, 45L, 100L, 45L, 45L, 45L, 45L, 25L, 45L, > > 0L, 100L, 45L, 0L, 45L, 45L), c(55L, 45L, 45L, 45L, 55L, > > 45L, 45L, 45L, 45L, 45L, 45L, 45L, 45L, 45L, 55L, 55L, 45L, > > 55L, 45L, 45L, 45L, 45L, 45L, 45L, 45L, 55L, 45L, 45L, 45L, > > 45L), c(100L, 100L, 50L, 100L, 100L, 100L, 100L, 100L, 100L, > > 100L, 50L, 100L, 100L, 100L, 100L, 100L, 100L, 100L, 100L, > > 100L, 100L, 100L, 100L, 50L, 100L, 100L, 100L, 100L, 100L, > > 100L), c(100L, 25L, 25L, 0L, 100L, 60L, 0L, 0L, 25L, 60L, > > 0L, 60L, 100L, 60L, 100L, 100L, 25L, 100L, 60L, 100L, 100L, > > 60L, 100L, 60L, 100L, 100L, 100L, 100L, 60L, 60L), c(0L, > > 0L, 50L, 50L, 100L, 100L, 0L, 0L, 100L, 100L, 0L, 100L, 100L, > > 0L, 100L, 100L, 0L, 100L, 100L, 100L, 100L, 100L, 100L, 0L, > > 100L, 100L, 100L, 100L, 100L, 100L), c(40L, 100L, 40L, 100L, > > 100L, 40L, 100L, 100L, 100L, 40L, 100L, 100L, 100L, 100L, > > 100L, 100L, 100L, 100L, 100L, 100L, 100L, 100L, 100L, 100L, > > 100L, 100L, 100L, 0L, 100L, 100L), c(100L, 100L, 100L, 100L, > > 100L, 100L, 100L, 100L, 100L, 100L, 100L, 100L, 100L, 100L, > > 100L, 100L, 100L, 100L, 100L, 100L, 100L, 100L, 100L, -10L, > > 100L, 100L, 100L, -10L, 100L, 100L), c(70L, 0L, 25L, 0L, > > 100L, 25L, 0L, 0L, 0L, 45L, 0L, 25L, 100L, 100L, 100L, 100L, > > 0L, 70L, 0L, 100L, 45L, 45L, 0L, 0L, 100L, 100L, 100L, 0L, > > 100L, 100L), c(55L, 55L, 55L, 55L, 55L, 55L, 55L, 55L, 55L, > > 55L, 55L, 55L, 55L, 55L, 55L, 55L, 20L, 55L, 20L, 55L, 20L, > > 20L, 100L, 55L, 55L, 55L, 55L, 0L, 55L, 55L), c(65L, 65L, > > 100L, 65L, 100L, 100L, 100L, 100L, 100L, 100L, 100L, 100L, > > 100L, 100L, 100L, 100L, 65L, 100L, 100L, 100L, 65L, 100L, > > 0L, 65L, 100L, 100L, 100L, 100L, 100L, 100L), c(85L, 85L, > > 85L, 85L, 85L, 85L, 85L, 85L, 85L, 85L, 85L, 85L, 56L, 85L, > > 100L, 85L, 85L, 85L, 0L, 85L, 85L, 85L, 85L, 85L, 85L, 85L, > > 85L, 28L, 56L, 56L)), row.names = c(NA, -30L), class = "data.frame") > > > > Fn = function(Wts) return(-Kendall::Kendall(1:dim(MyDat)[1], > > rank(-as.vector(as.matrix(MyDat) %*% matrix(Wts, nc = 1)[, 1, drop = > > T])))$tau[1]) > > q1 = pracma::fmincon(c(0.12, 0.04, 0.07, 0.03, 0.06, 0.07, 0.07, 0.04, > > 0.09, 0.08, 0.02, 0.02, 0.03, 0.06, 0.02, 0, 0.07, 0.05, 0.02, 0.02, > 0.02), > > fn = Fn, > > A = matrix(c(rep(0, 20), -1), nrow = 1), b = -2.05/100, Aeq = > > matrix(c(rep(1, 20), 1), nrow = 1), beq = 1, > > lb = rep(0.01, 21), > > tol = 1e-16, maxfeval = 10000000, maxiter = 5000000) > > > > Fn(q1$par) < Fn(c(0.12, 0.04, 0.07, 0.03, 0.06, 0.07, 0.07, 0.04, 0.09, > > 0.08, 0.02, 0.02, 0.03, 0.06, 0.02, 0, 0.07, 0.05, 0.02, 0.02, 0.02)) > > #FALSE > > > > > > On Fri, 28 Mar 2025 at 00:58, Rui Barradas <ruipbarra...@sapo.pt> wrote: > > > >> Às 18:35 de 27/03/2025, Daniel Lobo escreveu: > >>> Hi, > >>> > >>> I have below minimization problem > >>> > >>> > >>> MyDat = structure(list(c(50L, 0L, 0L, 50L, 75L, 100L, 50L, 0L, 50L, 0L, > >>> 25L, 50L, 50L, 75L, 75L, 75L, 0L, 75L, 75L, 75L, 0L, 25L, 75L, > >>> 75L, 0L, 75L, 100L, 0L, 25L, 100L), c(75L, 0L, 0L, 50L, 100L, > >>> 50L, 75L, 75L, 100L, 25L, 0L, 25L, 100L, 0L, 50L, 0L, 25L, 25L, > >>> 100L, 75L, 0L, 0L, 0L, 50L, 0L, 75L, 75L, 0L, 50L, 25L), c(50L, > >>> 0L, 0L, 0L, 100L, 25L, 0L, 0L, 25L, 50L, 0L, 25L, 75L, 50L, 100L, > >>> 50L, 0L, 75L, 25L, 50L, 0L, 0L, 25L, 0L, 50L, 100L, 100L, 0L, > >>> 75L, 50L), c(25L, 0L, 0L, 75L, 75L, 25L, 50L, 50L, 100L, 25L, > >>> 0L, 100L, 50L, 25L, 100L, 25L, 25L, 100L, 50L, 100L, 0L, 0L, > >>> 100L, 50L, 0L, 50L, 75L, 0L, 50L, 25L), c(50L, 0L, 0L, 75L, 75L, > >>> 75L, 25L, 25L, 0L, 100L, 0L, 25L, 25L, 75L, 100L, 0L, 25L, 0L, > >>> 75L, 25L, 25L, 25L, 75L, 25L, 0L, 75L, 100L, 0L, 100L, 100L), > >>> c(50L, 0L, 0L, 50L, 100L, 25L, 25L, 25L, 50L, 50L, 0L, 50L, > >>> 75L, 0L, 100L, 50L, 25L, 100L, 50L, 75L, 0L, 0L, 50L, 25L, > >>> 0L, 100L, 100L, 0L, 75L, 50L), c(50L, 0L, 0L, 50L, 75L, 25L, > >>> 75L, 50L, 100L, 25L, 0L, 75L, 25L, 0L, 50L, 0L, 50L, 75L, > >>> 100L, 75L, 0L, 0L, 100L, 0L, 0L, 50L, 75L, 0L, 100L, 100L > >>> ), c(25L, 75L, 50L, 25L, 75L, 50L, 100L, 75L, 100L, 25L, > >>> 0L, 75L, 25L, 50L, 25L, 25L, 75L, 75L, 100L, 75L, 75L, 100L, > >>> 75L, 25L, 0L, 75L, 75L, 0L, 75L, 100L), c(55L, 30L, 20L, > >>> 30L, 45L, 30L, 30L, 30L, 70L, 30L, 10L, 45L, 45L, 45L, 45L, > >>> 30L, 30L, 55L, 45L, 45L, 30L, 30L, 30L, NA, 30L, 55L, 45L, > >>> 20L, 45L, 70L), c(85L, 40L, 40L, 40L, 55L, 40L, 20L, 30L, > >>> 30L, 30L, 20L, 30L, 70L, 40L, 85L, 55L, 30L, 40L, 30L, 55L, > >>> 20L, 30L, 55L, 0L, 40L, 55L, 70L, 40L, 85L, 70L), c(45L, > >>> 45L, 0L, 45L, 45L, 45L, 0L, 0L, 100L, 45L, 0L, 100L, 45L, > >>> 45L, 100L, 45L, 45L, 100L, 45L, 45L, 45L, 45L, 25L, 45L, > >>> 0L, 100L, 45L, 0L, 45L, 45L), c(55L, 45L, 45L, 45L, 55L, > >>> 45L, 45L, 45L, 45L, 45L, 45L, 45L, 45L, 45L, 55L, 55L, 45L, > >>> 55L, 45L, 45L, 45L, 45L, 45L, 45L, 45L, 55L, 45L, 45L, 45L, > >>> 45L), c(100L, 100L, 50L, 100L, 100L, 100L, 100L, 100L, 100L, > >>> 100L, 50L, 100L, 100L, 100L, 100L, 100L, 100L, 100L, 100L, > >>> 100L, 100L, 100L, 100L, 50L, 100L, 100L, 100L, 100L, 100L, > >>> 100L), c(100L, 25L, 25L, 0L, 100L, 60L, 0L, 0L, 25L, 60L, > >>> 0L, 60L, 100L, 60L, 100L, 100L, 25L, 100L, 60L, 100L, 100L, > >>> 60L, 100L, 60L, 100L, 100L, 100L, 100L, 60L, 60L), c(0L, > >>> 0L, 50L, 50L, 100L, 100L, 0L, 0L, 100L, 100L, 0L, 100L, 100L, > >>> 0L, 100L, 100L, 0L, 100L, 100L, 100L, 100L, 100L, 100L, 0L, > >>> 100L, 100L, 100L, 100L, 100L, 100L), c(40L, 100L, 40L, 100L, > >>> 100L, 40L, 100L, 100L, 100L, 40L, 100L, 100L, 100L, 100L, > >>> 100L, 100L, 100L, 100L, 100L, 100L, 100L, 100L, 100L, 100L, > >>> 100L, 100L, 100L, 0L, 100L, 100L), c(100L, 100L, 100L, 100L, > >>> 100L, 100L, 100L, 100L, 100L, 100L, 100L, 100L, 100L, 100L, > >>> 100L, 100L, 100L, 100L, 100L, 100L, 100L, 100L, 100L, -10L, > >>> 100L, 100L, 100L, -10L, 100L, 100L), c(70L, 0L, 25L, 0L, > >>> 100L, 25L, 0L, 0L, 0L, 45L, 0L, 25L, 100L, 100L, 100L, 100L, > >>> 0L, 70L, 0L, 100L, 45L, 45L, 0L, 0L, 100L, 100L, 100L, 0L, > >>> 100L, 100L), c(55L, 55L, 55L, 55L, 55L, 55L, 55L, 55L, 55L, > >>> 55L, 55L, 55L, 55L, 55L, 55L, 55L, 20L, 55L, 20L, 55L, 20L, > >>> 20L, 100L, 55L, 55L, 55L, 55L, 0L, 55L, 55L), c(65L, 65L, > >>> 100L, 65L, 100L, 100L, 100L, 100L, 100L, 100L, 100L, 100L, > >>> 100L, 100L, 100L, 100L, 65L, 100L, 100L, 100L, 65L, 100L, > >>> 0L, 65L, 100L, 100L, 100L, 100L, 100L, 100L), c(85L, 85L, > >>> 85L, 85L, 85L, 85L, 85L, 85L, 85L, 85L, 85L, 85L, 56L, 85L, > >>> 100L, 85L, 85L, 85L, 0L, 85L, 85L, 85L, 85L, 85L, 85L, 85L, > >>> 85L, 28L, 56L, 56L)), row.names = c(NA, -30L), class = > "data.frame") > >>> > >>> Fn = function(Wts) return(-Kendall::Kendall(1:Nobs, > >>> rank(-as.vector(as.matrix(MyDat) %*% matrix(Wts, nc = 1)[, 1, drop = > >>> T])))$tau[1]) > >>> q1 = pracma::fmincon(c(0.12, 0.04, 0.07, 0.03, 0.06, 0.07, 0.07, 0.04, > >>> 0.09, 0.08, 0.02, 0.02, 0.03, 0.06, 0.02, 0, 0.07, 0.05, 0.02, 0.02, > >> 0.02), > >>> fn = Fn, > >>> A = matrix(c(rep(0, 20), -1), nrow = 1), b = -2.05/100, > Aeq = > >>> matrix(c(rep(1, 20), 1), nrow = 1), beq = 1, > >>> lb = rep(0.01, 21), > >>> tol = 1e-16, maxfeval = 10000000, maxiter = 5000000) > >>> > >>> > >>> However with above code, I got sub-optimal value in terms of > minimization > >>> of the objective function: > >>> > >>> q1$value > >>> #0.1632184 > >>> Fn(c(0.12, 0.04, 0.07, 0.03, 0.06, 0.07, 0.07, 0.04, 0.09, 0.08, 0.02, > >>> 0.02, 0.03, 0.06, 0.02, 0, 0.07, 0.05, 0.02, 0.02, 0.02)) > >>> #0.1586207 > >>> > >>> Could you please help me to understand what went wrong with my code and > >> how > >>> to correct that? > >>> > >>> [[alternative HTML version deleted]] > >>> > >>> ______________________________________________ > >>> R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see > >>> https://stat.ethz.ch/mailman/listinfo/r-help > >>> PLEASE do read the posting guide > >> https://www.R-project.org/posting-guide.html > >>> and provide commented, minimal, self-contained, reproducible code. > >> Hello, > >> > >> I cannot reproduce your result. > >> Instead of checking the result with > >> > >> > >> Fn(c(0.12, 0.04, 0.07, etc, ...) > >> > >> > >> pass the actual return value, q1$par. That's what I did and the result > >> matches the function minimum. > >> Here is the code I ran. > >> > >> > >> > >> > >> MyDat <- structure(list( > >> c(50L, 0L, 0L, 50L, 75L, 100L, 50L, 0L, 50L, 0L, > >> 25L, 50L, 50L, 75L, 75L, 75L, 0L, 75L, 75L, 75L, 0L, 25L, 75L, > >> 75L, 0L, 75L, 100L, 0L, 25L, 100L), > >> c(75L, 0L, 0L, 50L, 100L, > >> 50L, 75L, 75L, 100L, 25L, 0L, 25L, 100L, 0L, 50L, 0L, 25L, 25L, > >> 100L, 75L, 0L, 0L, 0L, 50L, 0L, 75L, 75L, 0L, 50L, 25L), > >> c(50L, 0L, 0L, 0L, 100L, 25L, 0L, 0L, 25L, 50L, 0L, 25L, 75L, 50L, > 100L, > >> 50L, 0L, 75L, 25L, 50L, 0L, 0L, 25L, 0L, 50L, 100L, 100L, 0L, > >> 75L, 50L), > >> c(25L, 0L, 0L, 75L, 75L, 25L, 50L, 50L, 100L, 25L, > >> 0L, 100L, 50L, 25L, 100L, 25L, 25L, 100L, 50L, 100L, 0L, 0L, > >> 100L, 50L, 0L, 50L, 75L, 0L, 50L, 25L), > >> c(50L, 0L, 0L, 75L, 75L, > >> 75L, 25L, 25L, 0L, 100L, 0L, 25L, 25L, 75L, 100L, 0L, 25L, 0L, > >> 75L, 25L, 25L, 25L, 75L, 25L, 0L, 75L, 100L, 0L, 100L, 100L), > >> c(50L, 0L, 0L, 50L, 100L, 25L, 25L, 25L, 50L, 50L, 0L, 50L, > >> 75L, 0L, 100L, 50L, 25L, 100L, 50L, 75L, 0L, 0L, 50L, 25L, > >> 0L, 100L, 100L, 0L, 75L, 50L), > >> c(50L, 0L, 0L, 50L, 75L, 25L, > >> 75L, 50L, 100L, 25L, 0L, 75L, 25L, 0L, 50L, 0L, 50L, 75L, > >> 100L, 75L, 0L, 0L, 100L, 0L, 0L, 50L, 75L, 0L, 100L, 100L), > >> c(25L, 75L, 50L, 25L, 75L, 50L, 100L, 75L, 100L, 25L, > >> 0L, 75L, 25L, 50L, 25L, 25L, 75L, 75L, 100L, 75L, 75L, 100L, > >> 75L, 25L, 0L, 75L, 75L, 0L, 75L, 100L), > >> c(55L, 30L, 20L, > >> 30L, 45L, 30L, 30L, 30L, 70L, 30L, 10L, 45L, 45L, 45L, 45L, > >> 30L, 30L, 55L, 45L, 45L, 30L, 30L, 30L, NA, 30L, 55L, 45L, > >> 20L, 45L, 70L), > >> c(85L, 40L, 40L, 40L, 55L, 40L, 20L, 30L, > >> 30L, 30L, 20L, 30L, 70L, 40L, 85L, 55L, 30L, 40L, 30L, 55L, > >> 20L, 30L, 55L, 0L, 40L, 55L, 70L, 40L, 85L, 70L), > >> c(45L, 45L, 0L, 45L, 45L, 45L, 0L, 0L, 100L, 45L, 0L, 100L, 45L, > >> 45L, 100L, 45L, 45L, 100L, 45L, 45L, 45L, 45L, 25L, 45L, > >> 0L, 100L, 45L, 0L, 45L, 45L), > >> c(55L, 45L, 45L, 45L, 55L, > >> 45L, 45L, 45L, 45L, 45L, 45L, 45L, 45L, 45L, 55L, 55L, 45L, > >> 55L, 45L, 45L, 45L, 45L, 45L, 45L, 45L, 55L, 45L, 45L, 45L, 45L), > >> c(100L, 100L, 50L, 100L, 100L, 100L, 100L, 100L, 100L, > >> 100L, 50L, 100L, 100L, 100L, 100L, 100L, 100L, 100L, 100L, > >> 100L, 100L, 100L, 100L, 50L, 100L, 100L, 100L, 100L, 100L, 100L), > >> c(100L, 25L, 25L, 0L, 100L, 60L, 0L, 0L, 25L, 60L, > >> 0L, 60L, 100L, 60L, 100L, 100L, 25L, 100L, 60L, 100L, 100L, > >> 60L, 100L, 60L, 100L, 100L, 100L, 100L, 60L, 60L), > >> c(0L, 0L, 50L, 50L, 100L, 100L, 0L, 0L, 100L, 100L, 0L, 100L, 100L, > >> 0L, 100L, 100L, 0L, 100L, 100L, 100L, 100L, 100L, 100L, 0L, > >> 100L, 100L, 100L, 100L, 100L, 100L), > >> c(40L, 100L, 40L, 100L, > >> 100L, 40L, 100L, 100L, 100L, 40L, 100L, 100L, 100L, 100L, > >> 100L, 100L, 100L, 100L, 100L, 100L, 100L, 100L, 100L, 100L, > >> 100L, 100L, 100L, 0L, 100L, 100L), > >> c(100L, 100L, 100L, 100L, > >> 100L, 100L, 100L, 100L, 100L, 100L, 100L, 100L, 100L, 100L, > >> 100L, 100L, 100L, 100L, 100L, 100L, 100L, 100L, 100L, -10L, > >> 100L, 100L, 100L, -10L, 100L, 100L), > >> c(70L, 0L, 25L, 0L, > >> 100L, 25L, 0L, 0L, 0L, 45L, 0L, 25L, 100L, 100L, 100L, 100L, > >> 0L, 70L, 0L, 100L, 45L, 45L, 0L, 0L, 100L, 100L, 100L, 0L, > >> 100L, 100L), > >> c(55L, 55L, 55L, 55L, 55L, 55L, 55L, 55L, 55L, > >> 55L, 55L, 55L, 55L, 55L, 55L, 55L, 20L, 55L, 20L, 55L, 20L, > >> 20L, 100L, 55L, 55L, 55L, 55L, 0L, 55L, 55L), > >> c(65L, 65L, > >> 100L, 65L, 100L, 100L, 100L, 100L, 100L, 100L, 100L, 100L, > >> 100L, 100L, 100L, 100L, 65L, 100L, 100L, 100L, 65L, 100L, > >> 0L, 65L, 100L, 100L, 100L, 100L, 100L, 100L), > >> c(85L, 85L, > >> 85L, 85L, 85L, 85L, 85L, 85L, 85L, 85L, 85L, 85L, 56L, 85L, > >> 100L, 85L, 85L, 85L, 0L, 85L, 85L, 85L, 85L, 85L, 85L, 85L, > >> 85L, 28L, 56L, 56L)), > >> row.names = c(NA, -30L), class = "data.frame") > >> > >> > >> > >> Fn <- function(Wts) return( > >> Kendall::Kendall( > >> 1:Nobs, > >> rank(-as.vector(as.matrix(MyDat) %*% matrix(Wts, nc = 1)[, 1, drop > >> = T])) > >> )$tau[1] > >> ) > >> > >> Nobs <- nrow(MyDat) > >> > >> q1 <- pracma::fmincon( > >> c(0.12, 0.04, 0.07, 0.03, 0.06, 0.07, 0.07, 0.04, 0.09, 0.08, > >> 0.02, 0.02, 0.03, 0.06, 0.02, 0, 0.07, 0.05, 0.02, 0.02, 0.02), > >> fn = Fn, > >> A = matrix(c(rep(0, 20), -1), nrow = 1), b = -2.05/100, > >> Aeq = matrix(c(rep(1, 20), 1), nrow = 1), beq = 1, > >> lb = rep(0.01, 21), > >> tol = 1e-16, > >> maxfeval = 10000000, > >> maxiter = 5000000 > >> ) > >> > >> q1$value > >> #> [1] -0.1632184 > >> Fn(q1$par) > >> #> [1] -0.1632184 > >> > >> > >> > >> Hope this helps, > >> > >> Rui Barradas > >> > >> > >> -- > >> Este e-mail foi analisado pelo software antivírus AVG para verificar a > >> presença de vírus. > >> www.avg.com > >> > > > Hello > > The code in answer has Kendall::Kendall when it should be > -Kendall::Kendall. > > Apparently I removed the minus sign when I reformated the function code. > But without the minus sign I get > > > q1$value > #> [1] -0.1632184 > Fn(q1$par) > #> [1] -0.1632184 > Fn(q1$par) < Fn(StartingValue) > #> [1] TRUE > > > Is there a sign error somewhere? > > Hope this helps, > > Rui Barradas > > > -- > Este e-mail foi analisado pelo software antivírus AVG para verificar a > presença de vírus. > www.avg.com > [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide https://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.