public class WeightedMovingAverage extends SimpleMovingAverage
WeightedMovingAverage kernels differ from other discrete moving average
kernels like SimpleMovingAverage
, ExponentialMovingAverage
.
WeightedMovingAverage allow a flexible and fine-grained configuration of each
and every individual weight.
SimpleMovingAverage
,
ExponentialMovingAverage
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
GUI_NAME |
static boolean |
HAS_DELAY |
static boolean |
HAS_OOBP |
static boolean |
HAS_WIDTH |
static int |
NR_EXTRA_FIELDS |
static java.lang.String |
SHORT_NAME |
DEFAULT_OOB_POLICY, DEFAULT_WIDTH
Constructor and Description |
---|
WeightedMovingAverage(double[] theWeights)
Constructs a Weighted Moving Average kernel, using supplied weights.
|
WeightedMovingAverage(int theWidth)
Constructs a Weighted Moving Average kernel, initialised with linear
increasing weights, resulting in recent observations contributing
more to the final result than older ones.
|
Modifier and Type | Method and Description |
---|---|
double[] |
applyTo(double[] theInput)
Deprecated.
|
double[] |
applyTo(double[] theInput,
int theDelay)
Apply the kernel to the specified array, with the specified delay.
|
static double[] |
calculateLinearWeights(int theNrWeights)
Constructs an array of size
theNrWeights , with values
that increase linearly. |
java.lang.String |
getGuiText()
Deprecated.
|
boolean |
getHasDelay()
Deprecated.
|
boolean |
getHasOOBP()
Deprecated.
|
boolean |
getHasWidth()
Deprecated.
|
int |
getNrExtraFields()
Deprecated.
|
java.lang.String |
getShortText()
Deprecated.
|
AbstractKernel |
setWeights(double[] theWeights)
Sets the weights to be used for this
Kernel . |
java.lang.String |
toString()
Returns the
String representation of this
Kernel . |
isValidWidth
getInfo, getKernel, setOutOfBoundsPolicy, setWidth
public static final java.lang.String GUI_NAME
public static final java.lang.String SHORT_NAME
public static final boolean HAS_WIDTH
public static final boolean HAS_OOBP
public static final boolean HAS_DELAY
public static final int NR_EXTRA_FIELDS
public WeightedMovingAverage(int theWidth)
NOTE:s the weights may not sum to 1.0
exactly, because
of rounding errors.
public WeightedMovingAverage(double[] theWeights)
public AbstractKernel setWeights(double[] theWeights)
Kernel
.theWeights
- The weights to useKernel
on which this method was called.public static double[] calculateLinearWeights(int theNrWeights)
theNrWeights
, with values
that increase linearly.theNrWeights
- The size of the output array.double[]
with linearly increasing values.@Deprecated public double[] applyTo(double[] theInput)
BasicKernel
Kernel
to some input array.
Values for which it is not possible to apply the whole
Kernel
are set based on the OutOfBoundsPolicy
.
Note: this method assumes the Kernel
has a positive odd
width
.applyTo
in class SimpleMovingAverage
theInput
- The array on which to apply the Kernel
.theInput
,
containing the result of applying the Kernel
to
theInput
, or an empty array if theInput
is
null
.OutOfBoundsPolicy
,
BasicKernel.setWidth(int)
public double[] applyTo(double[] theInput, int theDelay)
AbstractKernel
The delay may be 0
, positive or negative.
For a delay of 0
the values in the return array map
directly to the input array.
For a positive delay of n
the values in the input array
are 'shifted' n
indices to the right.
For a negative delay this 'shift' is to the left.
In general, for kernels for which AbstractKernel.getHasWidth()
returns
true
, the application of the kernel to the head and
tail of the input array is undefined.
This method will fill in the values for which this condition
applies by using the OutOfBoundsPolicy
set for the kernel.
applyTo
in class SimpleMovingAverage
theInput
- The array to apply the kernel to.theDelay
- The delay to use.double[]
with the result.@Deprecated public java.lang.String getGuiText()
AbstractKernel
For most kernels this method returns the same result as a call to
kernel.class.getSimpleName()
.
For some, the returned String
will include some
white spaces that beak up the various words, such that it forms
regular text.
getGuiText
in class SimpleMovingAverage
String
.@Deprecated public java.lang.String getShortText()
AbstractKernel
getShortText
in class SimpleMovingAverage
String
indicative of the class name.@Deprecated public boolean getHasWidth()
AbstractKernel
This is true
for a DiscreteKernel
, and
false
for a ContinuousKernel
.
getHasWidth
in class SimpleMovingAverage
true
iff the kernel has a width,
false
otherwise.ContinuousKernel
,
DiscreteKernel
@Deprecated public boolean getHasOOBP()
AbstractKernel
OutOfBoundsPolicy
.
This is true
for a DiscreteKernel
, and
false
for a ContinuousKernel
.
getHasOOBP
in class SimpleMovingAverage
true
iff the kernel has an out of
bounds policy, false
otherwise.OutOfBoundsPolicy
,
ContinuousKernel
,
DiscreteKernel
@Deprecated public boolean getHasDelay()
AbstractKernel
This is true
for almost all kernels, but not for
MovingAverage
.
getHasDelay
in class SimpleMovingAverage
true
iff a delay can be set for the
kernel, false
otherwise.@Deprecated public int getNrExtraFields()
AbstractKernel
Extra fields hold kernel specific configuration settings, not shared with other kernels.
getNrExtraFields
in class SimpleMovingAverage
public java.lang.String toString()
String
representation of this
Kernel
.
The items between the braces represent the width
and
OutOfBoundsPolicy
used for this Kernel
, and
the values of the Kernel
itself.toString
in class SimpleMovingAverage
String
representation of the kernel.