RFoptions(seed=0) ## *ANY* simulation will have the random seed 0; set
## RFoptions(seed=NA) to make them all random again
## Here some alternative optimisers to 'optim' are considered.
## All but the \pkg{nloptr} algorithms are largely slower than 'optim'.
## Only a few of them return results as good as 'optim'.
data(soil)
str(soil)
soil <- RFspatialPointsDataFrame(
coords = soil[ , c("x.coord", "y.coord")],
data = soil[ , c("moisture", "NO3.N", "Total.N", "NH4.N", "DOC", "N20N")],
RFparams=list(vdim=6, n=1)
)
data <- soil["moisture"]
model <- ~1 + RMwhittle(scale=NA, var=NA, nu=NA) + RMnugget(var=NA)
## standard optimiser 'optim'
print(system.time(fit <- RFfit(model, data=data)))
print(fit)
opt <- "optimx" # 30 sec; better result
print(system.time(fit2 <- try(RFfit(model, data=data, optimiser=opt))))
print(fit2)
opt <- "minqa" # 330 sec %ok
print(system.time(fit2 <- try(RFfit(model, data=data, optimiser=opt))))
print(fit2)
opt <- "nloptr"
algorithm <- RC_NLOPTR_NAMES
for (i in 1:length(algorithm)) {
print(algorithm[i])
print(system.time(fit2 <- try(RFfit(model, data=data, optimiser=opt,
algorithm=algorithm[i]))))
print(fit2)
}
if (interactive()) {
## the following two optimisers are too slow to be run on CRAN.
opt <- "pso" # 600 sec
print(system.time(fit2 <- try(RFfit(model, data=data, optimiser=opt))))
print(fit2)
opt <- "GenSA" # 10^4 sec
print(system.time(fit2 <- try(RFfit(model, data=data, optimiser=opt))))
print(fit2)
}
Run the code above in your browser using DataLab