Learn R Programming

ftnonpar (version 0.1-88)

smqreg: Smooth piecewise monotone regression with taut strings

Description

Applies the smooth taut string method to one-dimensional data.

Usage

smqreg(y, thr.const=2.5, verbose=FALSE, bandwidth=-1, sigma=-1, localsqueezing=TRUE, squeezing.factor=0.5, DYADIC=TRUE, firstlambda=100,smqeps=1/length(y),fsign=double(0),gensign=TRUE, tolerance = 1e-12,...)

Arguments

y
observed values (ordered by value of independent variable)
thr.const
smoothing parameter for the multiresolution criterion (should be approximately 2.5)
verbose
logical, if T progress (for each iteration) is illustrated grahically
bandwidth
if set to a positive value the specified bandwidth is used instead of the multiresolution criterion.
sigma
if set to a positive value sigma the standard deviation is set to sigma and not estimated from the data
localsqueezing
logical, if T (default) the bandwidth is changed locally.
squeezing.factor
The amount of decrement applied to the bandwidthes
DYADIC
If TRUE the multiresolution constraints are only checked on dyadic intervals.
firstlambda
Initial value of lambda's for local or global squeezing.
smqeps
Distance between the (equally-spaced) time points.
fsign
Monotonicity constraints, vector of size n-1 of -1,0 and 1's. If fsign[i]==1, then fhat[i+1]>= fhat[i]. If fsign[i]==-1, then fhat[i+1]
gensign
If TRUE the taut string method is used to automatically produce suitable monotonicity constraints.
tolerance
Precision for the nested intervals for solving the minimisation problem.
...
Passed to the plot command if verbose=T.

Value

A list with components
y
The approximation of the given data
nmax
Number of local extreme values
sigma
Standard deviation used

References

Kovac, A. (2006) Smooth functions and local extreme values. Technical Report

See Also

pmreg,mintvmon,l1pmreg,pmden,pmspec

Examples

Run this code
data(djdata)
par(mfrow=c(2,2))
plot(djblocks,col="grey")
lines(smqreg(djblocks)$y,col="red")
plot(djbumps,col="grey")
lines(smqreg(djbumps)$y,col="red")
plot(djheavisine,col="grey")
lines(smqreg(djheavisine)$y,col="red")
plot(djdoppler,col="grey")
lines(smqreg(djdoppler)$y,col="red")

Run the code above in your browser using DataLab