Package 'smoother'

Title: Functions Relating to the Smoothing of Numerical Data
Description: A collection of methods for smoothing numerical data, commencing with a port of the Matlab gaussian window smoothing function. In addition, several functions typically used in smoothing of financial data are included.
Authors: Nicholas Hamilton
Maintainer: Nicholas Hamilton <[email protected]>
License: GPL-2
Version: 1.3
Built: 2024-08-31 06:24:59 UTC
Source: CRAN

Help Index


Smooth Data in R

Description

smoother Package for the Smoothing of Numerical Data

Details

smoother is presently limited to a port of the Matlab 'Gaussian Window' Function, as well as a limited number of moving averages (sma, ema, dema and 'wma'). Code for the gaussian window function has been written locally within this package, however, the moving averages are called from the TTR package (https://CRAN.R-project.org/package=TTR) and are included as a matter of convenience.

For further information (and examples) with regards to utilizing the primary helper function, please refer to the smth function help file

References

The Gaussian Smoothing component of the smoother package has been loosley adapted from elsewhere


Smooth Numerical Data

Description

Helper function to smooth numerical data using methods specified by the user.

Usage

smth(
  x = stop("Numeric Vector 'x' is Required"),
  method = getOption("smoother.method"),
  ...
)

Arguments

x

numeric vector of values to smooth

method

one of 'gaussian', 'sma', 'ema', 'dema' or 'wma'.

...

any other arguments to be passed to each specific smoothing methodology.

Details

At this moment in time, the only method is the 'gaussian' window function (similar to the Matlab Gaussian Window Smoothing Function) and a number of moving averages 'sma', 'ema', 'dema' or 'wma'. These are functions that allows the user to smooth an input vector, returning vector of the same length as the input. This can also be achieved using the specific smth.gaussian function.

Value

a numeric vector of same length as input 'x' vector

References

If the 'method' argument is equal to 'gaussian', then this function is a port of the function described here: https://goo.gl/HGM47U, very loosly based of code which has also been ported to c++ elsewhere

See Also

Refer to specific man files: smth.gaussian, SMA, EMA, DEMA or WMA

Examples

#Prepare Data
n  = 1000
x  = seq(-pi,pi,length.out=n)
y  = sin(x) + (runif(length(x))*0.1) #NOISY DATA
ys = smth(y,window = 0.1,method = "gaussian") #SMOOTHING
plot(x,y,type="l",col="red")
lines(x,ys,col="black",lwd=3)
title("Example Smoothing of Noisy Data")

Smooth Using Gaussian Window

Description

The specific function for smoothing using the gaussian window function

Usage

smth.gaussian(
  x = stop("Numeric Vector 'x' is Required"),
  window = getOption("smoother.window"),
  alpha = getOption("smoother.gaussianwindow.alpha"),
  ...,
  tails = getOption("smoother.tails")
)

Arguments

x

numeric vector of values to smooth, error will be thrown if not provided.

window

the length of the smoothing window, if an integer, represents number of items, else, if a value between 0 and 1, represents the proportion of the input vector

alpha

parameter to determine the breadth of the gaussian window, yielding more or less sensitive smoothing characteristics

...

not used

tails

Logical value as to whether the tail regions should be included or not.

Examples

y  = runif(100)
  ys = smth.gaussian(y)

Smoother Options

Description

Several Global Options have been declared, as described in this help file.

Details

The following global options can be modified, to alter the default calculation behaviour.

NAME VALUE DESCRIPTION
smoother.gaussianwindow.alpha 2.5 Alpha Value in Calculating Window
smoother.window 0.1 Width of Window
smoother.method 'gaussian' Default Smoothing Method
smoother.tails FALSE Include tails in final vector
smoother.verbose FALSE Verbose Reporting

Examples

#Tighten the alpha term for this session.
options('smoother.gaussianwindow.alpha' = 1)

#Include the Tails in Final Calculation
options('smoother.tails' = TRUE)