#Example happy cat
fun <- function(X){
D <- length(X)
f <- abs(sum(X^2) - D)^(1/4) + (0.5 * sum(X^2) + sum(X))/D + 0.5
return(f)
}
n <- 30
k <- 2
tolerance <- 0.01
lower <- rep(-5,2)
upper <- rep(5,2)
res <- EDA.norm(fun, lower = lower,
upper = upper,n = n,
k = k, tolerance = tolerance,
maxiter = 200)
z <- outer(X = seq(-5, 5, 0.05), Y = seq(-5, 5, 0.05),
FUN = Vectorize(function(X, Y) { fun(c(X, Y)) }))
contour(seq(-5, 5, 0.05),seq(-5, 5, 0.05),z,
nlevels = 20, cex.axis = .8)
points(res$sol[1],res$sol[2],
col = "blue", pch = 19)
#Multiple regression example
set.seed(pi)
x1 <- rnorm(n = 100, mean = 10, sd = 5)
x2 <- rnorm(n = 100, mean = 8, sd = 2)
y <- 7 + 4 * x1 - 6 * x2 + rnorm(n = 100, mean = 0, sd = 3)
ec <- function(par,y,x1,x2){
b0 <- par[1]
b1 <- par[2]
b2 <- par[3]
y_hat <- b0 + b1 * x1 + b2 * x2
value <- sum((y - y_hat)^2)
return(value)
}
opt <- EDA.norm(fun = ec, lower = c(-20,-20,-20),
upper = c(20,20,20), maxiter = 150,
y = y, x1 = x1, x2 = x2)
opt$sol
Run the code above in your browser using DataLab