Class PSquarePercentile.Markers
- java.lang.Object
-
- org.apache.commons.math3.stat.descriptive.rank.PSquarePercentile.Markers
-
- All Implemented Interfaces:
java.io.Serializable,java.lang.Cloneable,PSquarePercentile.PSquareMarkers
- Enclosing class:
- PSquarePercentile
private static class PSquarePercentile.Markers extends java.lang.Object implements PSquarePercentile.PSquareMarkers, java.io.Serializable
Markers is an encapsulation of the five markers/buckets as indicated in the original works.
-
-
Field Summary
Fields Modifier and Type Field Description private static intHIGHHigh marker indexprivate intkKth cell belonging to [1-5] of the markerArray.private static intLOWLow marker indexprivate PSquarePercentile.Marker[]markerArrayArray of 5+1 Markers (The first marker is dummy just so we can match the rest of indexes [1-5] indicated in the original works which follows unit based index)private static longserialVersionUIDSerial version id
-
Constructor Summary
Constructors Modifier Constructor Description privateMarkers(java.util.List<java.lang.Double> initialFive, double p)ConstructorprivateMarkers(PSquarePercentile.Marker[] theMarkerArray)Constructor
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private voidadjustHeightsOfMarkers()Adjust marker heights by setting quantile estimates to middle markers.java.lang.Objectclone()A clone function to clone the current instance.private static PSquarePercentile.Marker[]createMarkerArray(java.util.List<java.lang.Double> initialFive, double p)Creates a marker array using initial five elements and a quantilebooleanequals(java.lang.Object o).This equals method basically checks for marker array to be deep equals.doubleestimate(int index)An Estimate of the percentile value of a given Markerprivate intfindCellAndUpdateMinMax(double observation)Finds the cell where the input observation / value fits.doublegetPercentileValue()Returns the percentile computed thus far.inthashCode()doubleheight(int markerIndex)Return marker height given indexprivate voidincrementPositions(int d, int startIndex, int endIndex)Increment positions by d.doubleprocessDataPoint(double inputDataPoint)Process a data pointprivate voidreadObject(java.io.ObjectInputStream anInputStream)Sets previous and next markers after default read is done.java.lang.StringtoString()Returns string representation of the Marker array.private voidupdateDesiredPositions()Desired positions incremented by bucket width.
-
-
-
Field Detail
-
serialVersionUID
private static final long serialVersionUID
Serial version id- See Also:
- Constant Field Values
-
LOW
private static final int LOW
Low marker index- See Also:
- Constant Field Values
-
HIGH
private static final int HIGH
High marker index- See Also:
- Constant Field Values
-
markerArray
private final PSquarePercentile.Marker[] markerArray
Array of 5+1 Markers (The first marker is dummy just so we can match the rest of indexes [1-5] indicated in the original works which follows unit based index)
-
k
private transient int k
Kth cell belonging to [1-5] of the markerArray. No need for this to be serialized
-
-
Constructor Detail
-
Markers
private Markers(PSquarePercentile.Marker[] theMarkerArray)
Constructor- Parameters:
theMarkerArray- marker array to be used
-
Markers
private Markers(java.util.List<java.lang.Double> initialFive, double p)Constructor- Parameters:
initialFive- elements required to build Markerp- quantile required to be computed
-
-
Method Detail
-
createMarkerArray
private static PSquarePercentile.Marker[] createMarkerArray(java.util.List<java.lang.Double> initialFive, double p)
Creates a marker array using initial five elements and a quantile- Parameters:
initialFive- list of initial five elementsp- the pth quantile- Returns:
- Marker array
-
hashCode
public int hashCode()
- Overrides:
hashCodein classjava.lang.Object
-
equals
public boolean equals(java.lang.Object o)
.This equals method basically checks for marker array to be deep equals.- Overrides:
equalsin classjava.lang.Object- Parameters:
o- is the other object- Returns:
- true if the object compares with this object are equivalent
-
processDataPoint
public double processDataPoint(double inputDataPoint)
Process a data point- Specified by:
processDataPointin interfacePSquarePercentile.PSquareMarkers- Parameters:
inputDataPoint- is the data point passed- Returns:
- computed percentile
-
getPercentileValue
public double getPercentileValue()
Returns the percentile computed thus far.- Specified by:
getPercentileValuein interfacePSquarePercentile.PSquareMarkers- Returns:
- height of mid point marker
-
findCellAndUpdateMinMax
private int findCellAndUpdateMinMax(double observation)
Finds the cell where the input observation / value fits.- Parameters:
observation- the input value to be checked for- Returns:
- kth cell (of the markers ranging from 1-5) where observed sample fits
-
adjustHeightsOfMarkers
private void adjustHeightsOfMarkers()
Adjust marker heights by setting quantile estimates to middle markers.
-
estimate
public double estimate(int index)
An Estimate of the percentile value of a given Marker- Specified by:
estimatein interfacePSquarePercentile.PSquareMarkers- Parameters:
index- the marker's index in the array of markers- Returns:
- percentile estimate
-
incrementPositions
private void incrementPositions(int d, int startIndex, int endIndex)Increment positions by d. Refer to algorithm paper for the definition of d.- Parameters:
d- The increment value for the positionstartIndex- start index of the marker arrayendIndex- end index of the marker array
-
updateDesiredPositions
private void updateDesiredPositions()
Desired positions incremented by bucket width. The bucket width is basically the desired increments.
-
readObject
private void readObject(java.io.ObjectInputStream anInputStream) throws java.lang.ClassNotFoundException, java.io.IOExceptionSets previous and next markers after default read is done.- Parameters:
anInputStream- the input stream to be deserialized- Throws:
java.lang.ClassNotFoundException- thrown when a desired class not foundjava.io.IOException- thrown due to any io errors
-
height
public double height(int markerIndex)
Return marker height given index- Specified by:
heightin interfacePSquarePercentile.PSquareMarkers- Parameters:
markerIndex- index of marker within (1,6)- Returns:
- marker height
-
clone
public java.lang.Object clone()
A clone function to clone the current instance. It's created as an interface method as well for convenience though Cloneable is just a marker interface..Clone Markers- Specified by:
clonein interfacePSquarePercentile.PSquareMarkers- Overrides:
clonein classjava.lang.Object- Returns:
- cloned object
-
toString
public java.lang.String toString()
Returns string representation of the Marker array.- Overrides:
toStringin classjava.lang.Object- Returns:
- Markers as a string
-
-