On Nov 13, 2010, at 10:12 PM, cran.30.miller_2...@spamgourmet.com wrote:

> On Fri, Nov 12, 2010 at 5:28 PM, David Winsemius - 
> cran.30.miller_2...@spamgourmet.com 
>  <+cran 
> +miller_2555+c0e7477398.dwinsemius#comcast....@spamgourmet.com> wrote:
>
> On Nov 12, 2010, at 5:07 PM, David Winsemius wrote:
>
>
> On Nov 12, 2010, at 4:22 PM, cran.30.miller_2...@spamgourmet.com  
> wrote:
>
> Hi -
>
>   I have a dataframe of (x,y) values. I'd like to fit an exponential
> curve to the data for further statistical analysis (pretty much the  
> same
> functionality provided by Excel's LOGEST worksheet array function).  
> Can
> someone point me to the (set of) functions/ package that is best  
> suited to
> provide this functionality? Admittedly, I am a novice in the use of R
> statistical functions, so a brief example of how to compute a  
> correlation
> coefficient off a fitted exponential curve would be greatly  
> appreciated
> (though I could probably work through it over time if I knew the  
> proper R
> tools).
>
>
> Probably (not seeing a clear description of the LOGEST function):
>
> ?exp
> ?log
> ?lm
> ?cor
>
>
> I set up a OO.org Calc spreadsheet which has a lot of Excel work- 
> alike functions and does have a LOGEST. Giving an argument of x=1:26  
> and y=exp(x) to the first two arguments of LOGEST, I get 1 and e.  
> The OO.org help page says
> "FunctionType (optional). If Function_Type = 0, functions in the  
> form y = m^x will be calculated. Otherwise, y = b*m^x functions will  
> be calculated."
>
> This might be the equivalent R operation:
>
> > x<-1:26
> > y<-exp(x)
> > lm(log(y) ~ x)
>
> Call:
> lm(formula = log(y) ~ x)
>
> Coefficients:
> (Intercept)            x
>          0            1
>
> > exp(coef(lm(log(y) ~ x)))
> (Intercept)           x
>   1.000000    2.718282
>
> Note this is not a correlation coefficient but rather an  
> (exponentiated) regression coefficient.
>
> -- 
> David Winsemius, MD
> West Hartford, CT
>
>
>
> Thanks, but I'm looking to fit an exponential curve (not a linear  
> model).


Then WHY did you ask for a function that would duplicate a particular  
Excel function????? ... especially an Excel function which DOES a  
linear fit on the log of the Y argument?

http://support.microsoft.com/kb/828528

> However, I was able to identify the `nls()` function that works well  
> (adapted from John Fox's contribution "Nonlinear Regression and  
> Nonlinear Least Squares" [Jan 2002] ref: 
> http://cran.r-project.org/doc/contrib/Fox-Companion/appendix-nonlinear-regression.pdf)
>  
> . For those interested, the following short script highlights my  
> simple test case (though a little sloppy):
>
> mydf <- as.data.frame(cbind(1:6,rev(c(48.0000, 24.0000, 12.0000,  
> 6.0000, 3.0000, 1.5000)),rev(c( 51.4943, 12.4048, 12.9587, 3.7707,  
> 2.4253, 2.0400))));
> colnames(mydf) <- c("X","Y","Y2");
>
> my.mod <- nls(Y2 ~ a*exp(b*X), data=mydf, start=list(a=3.00,b=2.00),  
> trace=T)
>
> plot(mydf[,"X"],residuals(my.mod))
> plot(mydf[,"X"],mydf[,"Y2"], lwd=1)
> lines(mydf[,"X"],fitted.values(my.mod), lwd=2)
>

David Winsemius, MD
West Hartford, CT


        [[alternative HTML version deleted]]

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to