/
Home |

S-Archive | Download Script |

lsfreq |
Least Squares
Frequency Estimation |

**DESCRIPTION**- Estimates a sum of sinusoidal signals by separable least squares with Levenberg damping.
**USAGE**`lsfreq(y,x=NULL,freq,constant=F,trace=F)`**REQUIRED ARGUMENTS**`y`numeric vector of observations. Missing values not allowed. `freq`numeric vector of starting values for the frequencies. **OPTIONAL ARGUMENTS**x numeric vector of time points. The default is 0:(length(y)-1). `constant`logical constant. True if a constant term or intercept is to be included in the model. `trace`logical constant. If true frequencies and residual sum of squares are printed at each iteration. **VALUE**`freq`numeric vector of estimated frequencies. `coef`numeric vector of estimated coefficients. `fitted`numeric vector of same length as y of fitted values. `residuals`numeric vector of same length as y of residuals. **DETAILS**- If constant = T then the assumed model is
y = a[1] + a[2]*cos(x*f[1]) + ... + a[p+1]*cos(x*f[p]) + a[p+2]*sin(x*f[1]) + ... + a[2*p+1]*sin(x*f[p])

where coef = a, freq = f and p = length(f). If constant = F then the model is

y = a[1]*cos(x*f[1]) + ... + a[p]*cos(x*f[p]) + a[p+1]*sin(x*f[1]) + ... + a[2*p]*sin(x*f[p])

The estimation algorithm is a Gauss-Newton algorithm in which the linear coefficients a[] are set to their known values conditional on the frequencies. Levenberg damping is used to ensure that each iteration reduces the residual sum of squares.

**REFERENCES**- Smyth, G. K. (1996). Partitioned algorithms for maximum likelihood and other nonlinear
estimation.
*Statistics and Computing*,**6**, 201-216. (PDF). **SEE ALSO**- mmfreq, robfreq
**EXAMPLES**- Estimate the signal for the Variable Star data set. The pronyfreq function is used to obtain starting values. In this case the starting values are good enough!
> ora <- pronyfreq(star,nfreq=2) > ora$freq [1] 0.2166596 0.2617983 > ora$coef [1] 17.0857822411 7.6477245734 0.0009274355 6.4906186247 7.0845674915 > out.ls <- lsfreq(star,freq=ora$freq,constant=T) > out.ls$freq [1] 0.2166595 0.2617983 > out.ls$coef [1] 17.085781788 7.647776911 0.001107758 6.490566875 7.084562954

S-Archive | Download Script |

Gordon Smyth.
Copyright © 1996-2016. *Last modified:
10 February 2004*