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

jquery - How do you format the date used in the popover widget title of FullCalendar? -

asp.net mvc - SSO between MVCForum and Umbraco7 -

Python Tkinter keyboard using bind -