optimize integer function parameters
Hi
the integer values in the vectors sim and obs are dates
when I set sim <- f(TS0,TS1,TS2,TB0,TB1,TB2) my A,..,F below
then TS0 and TB0 are depend (and so on)
the main thing in f(...) is something like
for (i in c(1:length(temperature))) {
Temp <- temperature[i]
if (DS < 0) {
DS <- DS + max(Temp-TB0,0) / TS0
} else if (DS < 1) {
... date0 <- i
DS <- DS + max(Temp-TB1,0) / TS1
} else if (DS < 2) {
... date1 <- i
DS <- DS + max(Temp-TB2,0) / TS2
} else {
... date2 <- i
break
}
}
this produced a vector sim = c(date0,date1,date2,...)
now I would like to minimize RMSE(sim,obs) or something like that
thx
Christof
for brute force I would do something like
obs <- ...
act <- 1000
for (TS0 in seq(50,100,10))
for (TS1 in seq(750,850,10))
for (TS2 in seq(400,600,10))
for (TB0 in c(5:7))
for (TB1 in c(5:7))
for (TB2 in c(4:9)) {
sim <- foosim(dat,TS0,TS1,TS2,TB0,TB1,TB2)
rmse <- sqrt(mean((sim - obs)^2, na.rm = TRUE))
if (rmse < act) {
print(paste(rmse,TS0,TS1,TS2,TB0,TB1,TB2))
act <- rmse
}
}
Am 23-07-2013 13:20, schrieb Enrico Schumann:
On Tue, 23 Jul 2013, Christof Klu? <ckluss at email.uni-kiel.de> writes:
I have "observations" obs <- (11455, 11536, 11582, 11825, 11900, ...) and a simulation function f(A,B,C,D,E,F), so sim <- f(A,B,C,D,E,F) e.g. sim = c(11464, 11554, 11603, 11831, 11907, ...) now I would like to fit A,B,C,D,E,F such that "obs" and f(A,B,C,D,E,F) match as well as possible. A,..,F should be integers and have bounds. How would you solve this problem without bruteforce in an acceptable time?
That depends on what your "simulation function" looks like. Could you post a (small) self-contained example?