non linear regression - Genetic algorithm for parameter estimation -


i use genetic algorithm function in ga package parameter estimation in nonlinear model. use simulation data, of variables have multicolinearity problem. when use ga function, found parameter estimated ga function biased. can explain me why happened? solution estimate parameter using ga function multicolinearity data? thanks.

library("lestat")            beta1<-c(0.1835,0.5932,-0.0065,0.4153,-0.0431) beta2<-c(0.1,0.2,0.3,0.4)  corr<-matrix(1:64,8,8) (i in 1:8){   (j in 1:8){     ifelse (i==j, corr[i,j]<-1, corr[i,j]<-0.8)   } } corr  dist<-mvrnorm(10000,rep(50,8), corr) dist pop1<-dist[,1] pop2<-dist[,2] pop3<-dist[,3] pop4<-dist[,4] pop5<-dist[,5] pop6<-dist[,6] pop7<-dist[,7] pop8<-dist[,8] resp<-exp(beta1[1])*(pop1^beta1[2])*(pop2^beta1[3])*(pop3^beta1[4])*       (pop4^beta1[5])*(pop5^beta2[1])*(pop6^beta2[2])*(pop7^beta2[3])*       (pop8^beta2[4])+e  popgab2<-data.frame(resp,pop1,pop2,pop3,pop4,pop5,pop6,pop7,pop8) popgab2 min(dist) max(dist)  #-----------------------------------------------------------------  e<-rnorm(500,0,1) x1<-sample(pop1,500,replace=false, prob=null) x2<-sample(pop2,500,replace=false, prob=null) x3<-sample(pop3,500,replace=false, prob=null) x4<-sample(pop4,500,replace=false, prob=null) x5<-sample(pop5,500,replace=false, prob=null) x6<-sample(pop6,500,replace=false, prob=null) x7<-sample(pop7,500,replace=false, prob=null) x8<-sample(pop8,500,replace=false, prob=null) y2<-exp(beta1[1])*(x1^beta1[2])*(x2^beta1[3])*(x3^beta1[4])*     (x4^beta1[5])*(x5^beta2[1])*(x6^beta2[2])*(x7^beta2[3])*     (x8^beta2[4])+e  data2<-data.frame(y2,x1,x2,x3,x4,x5,x6,x7,x8) data2  #------------------------------------------------------------------  library(ga) fit.cd <- function(data=data2, a, b1, b2, b3, b4, b5, b6, b7, b8){   attach(data2, warn.conflicts=f)   y_hat <- exp(a)  * x1^b1 * x2^b2 * x3^b3 * x4^b4 * x5^b5 * x6^b6 *            x7^b7 * x8^b8   sse = t(y2-y_hat) %*% (y2-y_hat) #matrix formulation sse   detach(data2)   return(sse) } sys.time()->a ga3<-ga(type="real-valued",         min=c(-10,-1,-1,-1,-1,-1,-1,-1,-1),         max=c(10,1,1,1,1,1,1,1,1),         fitness=function(b) - fit.cd(data2,b[1],b[2],b[3],b[4],b[5],b[6],b[7],b[8],b[9]),         nbits=32,         popsize=1000,         maxiter=1000,         run=1000,         pcrossover=0.8,         pmutation=0.05,         elitism = base::max(1, round(1000*0.05)),         maxfitness=inf,         names = null,         suggestions = null,         keepbest = false,         parallel=false,         monitor=gamonitor,         seed=null ) sys.time()->b summary(ga3) plot(ga3) waktu2<-b-a solusi<-print(summary(ga3)$solution) 


Comments

Popular posts from this blog

python - Installing PyDev in eclipse is failed -

PHP OOP-based login system -

c# - Nested Internal Class with Readonly Hashtable throws Null ref exception.. on assignment -