# [R] Optim: Function definition

From: Serguei Kaniovski <kaniovsk_at_wifo.ac.at>
Date: Wed 04 Oct 2006 - 13:09:04 GMT

I apply "optim" to the function "obj", which minimizes the goodness of fit statistic and obtains Pearson minimum chi-squared estimate for x, x and x. The vector "fr" contains the four observed frequencies.

Since "fr[i]" appears in the denominator, I would like to substitute "0" in the sum if fr[i]=0.

I tried an "ifelse" condition which works, but in some cases the solution seems rather odd. Is there anything wrong with the way second objective function is coded?

obj<-function(x){
(fr-x*x-x*sqrt(x*(1-x)*x*(1-x)))^2/fr+
(fr-(1-x)*x+x*sqrt(x*(1-x)*x*(1-x)))^2/fr+
(fr-x*(1-x)+x*sqrt(x*(1-x)*x*(1-x)))^2/fr+
(fr-(1-x)*(1-x)-x*sqrt(x*(1-x)*x*(1-x)))^2/fr
}

obj<-function(x){

```ifelse(fr==0,0,(fr-x*x-x*sqrt(x*(1-x)*x*(1-x)))^2/fr)+
ifelse(fr==0,0,(fr-(1-x)*x+x*sqrt(x*(1-x)*x*(1-x)))^2/fr)+
ifelse(fr==0,0,(fr-x*(1-x)+x*sqrt(x*(1-x)*x*(1-x)))^2/fr)+
ifelse(fr==0,0,(fr-(1-x)*(1-x)-x*sqrt(x*(1-x)*x*(1-x)))^2/fr)
```
}

sval=rep(0.1,3)
fr<-c(0,0.1,0.2,0.3)

optim(sval,obj, method="BFGS")\$par

Thank you,
Serguei

```--
___________________________________________________________________

Austrian Institute of Economic Research (WIFO)

Name: Serguei Kaniovski			P.O.Box 91
Tel.: +43-1-7982601-231			Arsenal Objekt 20
Fax:  +43-1-7989386			1103 Vienna, Austria
Mail: Serguei.Kaniovski@wifo.ac.at

http://www.wifo.ac.at/Serguei.Kaniovski

______________________________________________
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help