com.yahoo.egads.utilities
Class SpectralMethods
- java.lang.Object
-
- com.yahoo.egads.utilities.SpectralMethods
-
public class SpectralMethods extends java.lang.ObjectSpectralMethods implements utility functions for: 1. Computing the Hankel matrix of a given time-series, 2. Converting the Hankel matrix representation of the time-series to the regular time-series, 3. Computing te Singular Value Decomposition (SVD) of the time-series' Hankel matrix for the purpose of filtering and smoothing the time-series. The larger singular-values of the time-series' Hankel matrix correspond to the high-variance components of the time-series (i.e. trend and seasonality), while the smaller singular-values correspond to the low-variance components (i.e noise components). The filtering methods: 1. 'VARIANCE' keeps the 'methodParameter'% of the variance in the spectrum and filters out the rest. (Default 'methodParameter' = 0.99) 2. 'EXPLICIT' keeps the largest 'methodParameter' singular-values in the spectrum and filters out the rest. (Default 'methodParameter' = 10) 3. 'K_GAP' first finds the smallest singular-value whose eigen-gap is among the 'methodParameter' largest eigen-gaps in the spectrum, and then filters out all the singular-values smaller than that singular-value. (Default 'methodParameter' = 8) 4. 'SMOOTHNESS' keeps throwing away the lowest singular-values of the spectrum until the Smoothness value of the remainder is higher than or equal to the desired 'methodParameter' level. Note: the Smoothness is computed via computeSmoothness(). (Default 'methodParameter' = 0.97) 5. 'EIGEN_RATIO' first finds the largest singular value whose ration to the largest (first) singular value is greter than or equal 'methodParameter' and then filters out all the singular-values smaller than that singular-value. (Default 'methodParameter' = 0.1) 6. 'GAP_RATIO' is similar to 'EIGEN_RATIO' except that the eigen gap to the largest (first) singular value ratio is used instead of the direct ratio of each singular value to the largest (first) singular value. (Default 'methodParameter' = 0.01)
-
-
Nested Class Summary
Nested Classes Modifier and Type Class and Description static classSpectralMethods.FilteringMethod
-
Constructor Summary
Constructors Constructor and Description SpectralMethods()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method and Description static org.apache.commons.math3.linear.RealMatrixaverageHankelMatrix(org.apache.commons.math3.linear.RealMatrix hankelMat, int windowSize)static org.apache.commons.math3.linear.RealMatrixcreateHankelMatrix(org.apache.commons.math3.linear.RealMatrix data, int windowSize)static org.apache.commons.math3.linear.RealMatrixmFilter(org.apache.commons.math3.linear.RealMatrix data, int windowSize, SpectralMethods.FilteringMethod method, double methodParameter)static TimeSeries.DataSequencemFilter(TimeSeries.DataSequence data, int windowSize, SpectralMethods.FilteringMethod method, double methodParameter)
-
-
-
Method Detail
-
createHankelMatrix
public static org.apache.commons.math3.linear.RealMatrix createHankelMatrix(org.apache.commons.math3.linear.RealMatrix data, int windowSize)
-
averageHankelMatrix
public static org.apache.commons.math3.linear.RealMatrix averageHankelMatrix(org.apache.commons.math3.linear.RealMatrix hankelMat, int windowSize)
-
mFilter
public static org.apache.commons.math3.linear.RealMatrix mFilter(org.apache.commons.math3.linear.RealMatrix data, int windowSize, SpectralMethods.FilteringMethod method, double methodParameter)
-
mFilter
public static TimeSeries.DataSequence mFilter(TimeSeries.DataSequence data, int windowSize, SpectralMethods.FilteringMethod method, double methodParameter)
-
-
DataMelt 3.0 © DataMelt by jWork.ORG