[R] How to do a trig regression
Greg Snow
Greg.Snow at imail.org
Mon Sep 13 19:01:08 CEST 2010
Without the square term you can just use the rule for addition in sines:
sin(a+b) = sin(a)cos(b) + cos(a)sin(b)
So a regression of y= a + b* sin(2*pi/360*x + c) can be fit as:
lm( y~ sin( 2*pi/360*x) + cos( 2*pi/360/x ) )
If you need the actual values of b and c then you will need to do a little algebra.
The same idea may be sufficient for your formula (or at least a close approximation), or you could switch to nonlinear fits using the nls function and fit your formula directly.
--
Gregory (Greg) L. Snow Ph.D.
Statistical Data Center
Intermountain Healthcare
greg.snow at imail.org
801.408.8111
> -----Original Message-----
> From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-
> project.org] On Behalf Of Aaditya Nanduri
> Sent: Sunday, September 12, 2010 8:23 PM
> To: r-help at r-project.org
> Subject: [R] How to do a trig regression
>
> Hello All,
>
> I cant seem to do a trig regression in R.
>
> The equation is as follows : y = a+b*(sin((2*pi*x/360) - c))^2
>
> a, b, c are coefs that I want.
> y, x are input vectors.
>
> The equation I put into R: lm(y ~ sin(2*pi*x/360)^2)
> This equation is missing the c and I dont get the right answer.
>
> Also, I dont know how to plot the lm over the x values instead of the
> indices.
>
> Any help is sincerely appreciated.
> Thank you all very much.
>
> --
> Aaditya Nanduri
> aaditya.nanduri at gmail.com
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at 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.
More information about the R-help
mailing list