Re: [R] How to get the minimum ?

From: Christoph Buser <buser_at_stat.math.ethz.ch>
Date: Fri 08 Jul 2005 - 01:04:15 EST

Dear Philipe

You can use optimize (see ?optimize), e.g. :

funToMin <- function(x, data, a = 1, b = 1) {   sum((data[data[,"group"]=="A","y"] - x)^2) +     sum((data[data[,"group"]=="B","y"] - a*x - b)^2) }

dat <- data.frame(y = rnorm(100), group = rep(c("A","B"), each = 50)) (m <- optimize(function(x) funToMin(x,dat), interval = c(-10,10)))

Please be careful. This function is only for demonstration issue. It is bad programmed. It works if x is only 1 number, but if you call the function, using a vector instead of a single number (and I do not prevent this by checking it), you will get warnings or errors. Therefore it will be better to use your own, hopefully better programmed function in optimize.

Regards,

Christoph Buser



Christoph Buser <buser@stat.math.ethz.ch> Seminar fuer Statistik, LEO C13
ETH (Federal Inst. Technology)	8092 Zurich	 SWITZERLAND
phone: x-41-44-632-4673		fax: 632-1228

http://stat.ethz.ch/~buser/

Philippe Lamy writes:
> Hi,
>
> I have a model with differents observations Xi.
> Each observation belongs to a group, either A or B.
> I would like to minimize a fonction like :
>
> sum( Xi - Z)^2 + sum (Xi - aZ -b)^2
> A B
>
> The first sum contains all observations from group A and the second all
> observations from group B.
> I want to find the Z-value wich minimize this function. a and b are predefined
> parameters.
>
> Thanks for help.
>
> Philippe
>
> ______________________________________________
>



R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html Received on Fri Jul 08 01:17:24 2005

This archive was generated by hypermail 2.1.8 : Fri 03 Mar 2006 - 03:33:20 EST