Here are a couple of thoughts, The basic idea of the sine function is: y = a + b * sin( c + d*x ) where: a is a vertical offset from 0 b is the amplitude c is the phase shift d is related to the period. You could put this function into nls or other non-linear optimization problem, however with a few assumptions this can be turned into a linear regression problem: >From the sound of it you already know the period you want to use (1 day or 1 >year) so d is determined by that and does not need to be estimated. The other >nonlinear parameter which may be of interest to estimate is c. The rule from >trig is that: sin( c+dx ) = cos(c) * sin(dx) + sin(c) * cos(dx) so if you calculate sin(dx) (call this x1) and cos(dx) (call this x2) from fixed values and call b*cos(x) beta1 and b*sin(x) beta2 then the model becomes: y= a + beta1 * x1 + beta2 * x2 Now that is a linear regression model and you don't need to fight with non-linear issues, just calculate sin(dx) and cos(dx) and use those as the predictors. If you are interested in the values of b and c then you can use trig and algebra to back transform the estimates of beta1 and beta2 back to b and c (may not have a unique solution in all cases, but should be able to find a good approximation). Another option if you don't want to restrict yourself to sine curves (maybe it climbs faster than it drops) is periodic splines. See: http://www.biostat.wustl.edu/archives/html/s-news/1999-06/msg00235.html for some basic functions to do this. Hope this helps,
________________________________ From: [EMAIL PROTECTED] on behalf of Carson Farmer Sent: Thu 1/10/2008 3:27 PM To: r-help@r-project.org Subject: [R] Cycle Regression Analysis in R? Hello R community, Does anyone know of a package that will perform cycle regression analysis? I have searched the R-help archives etc. but have come up with nothing so far. If I am unable to find an existing R package to do so, is there anyone familiar with fitting sine functions to data. My problem is this: I have a long time-series of daily SWE estimates (SWE = snow water equivalence, or the amount of water stored in a snowpack) which follows a sinusoidal pattern, and I need to estimate the parameters of the sine function that best fits this data. While there may be many contributing sine functions and/or linear trends, I am only interested in a single sine function that most closely fits the data (trends can be removed separately if need be). Perhaps some sort of non-linear least squares method would be best? Any help, or suggestions to get me on the right track are greatly appreciated. Carson ______________________________________________ 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. [[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.