Type: | Package |
Title: | Functions Relating to the Smoothing of Numerical Data |
Version: | 1.3 |
Date: | 2024-04-03 |
Author: | Nicholas Hamilton |
Maintainer: | Nicholas Hamilton <n.hamilton@unsw.edu.au> |
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. |
License: | GPL-2 |
Depends: | TTR(≥ 0.22) |
Collate: | 'onLoad.R' 'smoother-package.R' 'functions.R' 'smth-gaussian.R' 'smth.R' |
RoxygenNote: | 7.3.1 |
NeedsCompilation: | no |
Packaged: | 2024-04-02 23:09:56 UTC; nick |
Repository: | CRAN |
Date/Publication: | 2024-04-03 02:12:03 UTC |
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 |
... |
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 |
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)