/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.commons.math3.stat.descriptive;
import java.io.Serializable;
import org.apache.commons.math3.util.FastMath;
import org.apache.commons.math3.util.MathUtils;
import org.apache.commons.math3.util.Precision;
Value object representing the results of a univariate statistical summary.
/**
* Value object representing the results of a univariate statistical summary.
*
*/
public class StatisticalSummaryValues implements Serializable,
StatisticalSummary {
Serialization id /** Serialization id */
private static final long serialVersionUID = -5108854841843722536L;
The sample mean /** The sample mean */
private final double mean;
The sample variance /** The sample variance */
private final double variance;
The number of observations in the sample /** The number of observations in the sample */
private final long n;
The maximum value /** The maximum value */
private final double max;
The minimum value /** The minimum value */
private final double min;
The sum of the sample values /** The sum of the sample values */
private final double sum;
Constructor
Params: - mean – the sample mean
- variance – the sample variance
- n – the number of observations in the sample
- max – the maximum value
- min – the minimum value
- sum – the sum of the values
/**
* Constructor
*
* @param mean the sample mean
* @param variance the sample variance
* @param n the number of observations in the sample
* @param max the maximum value
* @param min the minimum value
* @param sum the sum of the values
*/
public StatisticalSummaryValues(double mean, double variance, long n,
double max, double min, double sum) {
super();
this.mean = mean;
this.variance = variance;
this.n = n;
this.max = max;
this.min = min;
this.sum = sum;
}
Returns: Returns the max.
/**
* @return Returns the max.
*/
public double getMax() {
return max;
}
Returns: Returns the mean.
/**
* @return Returns the mean.
*/
public double getMean() {
return mean;
}
Returns: Returns the min.
/**
* @return Returns the min.
*/
public double getMin() {
return min;
}
Returns: Returns the number of values.
/**
* @return Returns the number of values.
*/
public long getN() {
return n;
}
Returns: Returns the sum.
/**
* @return Returns the sum.
*/
public double getSum() {
return sum;
}
Returns: Returns the standard deviation
/**
* @return Returns the standard deviation
*/
public double getStandardDeviation() {
return FastMath.sqrt(variance);
}
Returns: Returns the variance.
/**
* @return Returns the variance.
*/
public double getVariance() {
return variance;
}
Returns true iff object
is a
StatisticalSummaryValues
instance and all statistics have
the same values as this.
Params: - object – the object to test equality against.
Returns: true if object equals this
/**
* Returns true iff <code>object</code> is a
* <code>StatisticalSummaryValues</code> instance and all statistics have
* the same values as this.
*
* @param object the object to test equality against.
* @return true if object equals this
*/
@Override
public boolean equals(Object object) {
if (object == this ) {
return true;
}
if (object instanceof StatisticalSummaryValues == false) {
return false;
}
StatisticalSummaryValues stat = (StatisticalSummaryValues) object;
return Precision.equalsIncludingNaN(stat.getMax(), getMax()) &&
Precision.equalsIncludingNaN(stat.getMean(), getMean()) &&
Precision.equalsIncludingNaN(stat.getMin(), getMin()) &&
Precision.equalsIncludingNaN(stat.getN(), getN()) &&
Precision.equalsIncludingNaN(stat.getSum(), getSum()) &&
Precision.equalsIncludingNaN(stat.getVariance(), getVariance());
}
Returns hash code based on values of statistics
Returns: hash code
/**
* Returns hash code based on values of statistics
*
* @return hash code
*/
@Override
public int hashCode() {
int result = 31 + MathUtils.hash(getMax());
result = result * 31 + MathUtils.hash(getMean());
result = result * 31 + MathUtils.hash(getMin());
result = result * 31 + MathUtils.hash(getN());
result = result * 31 + MathUtils.hash(getSum());
result = result * 31 + MathUtils.hash(getVariance());
return result;
}
Generates a text report displaying values of statistics.
Each statistic is displayed on a separate line.
Returns: String with line feeds displaying statistics
/**
* Generates a text report displaying values of statistics.
* Each statistic is displayed on a separate line.
*
* @return String with line feeds displaying statistics
*/
@Override
public String toString() {
StringBuffer outBuffer = new StringBuffer();
String endl = "\n";
outBuffer.append("StatisticalSummaryValues:").append(endl);
outBuffer.append("n: ").append(getN()).append(endl);
outBuffer.append("min: ").append(getMin()).append(endl);
outBuffer.append("max: ").append(getMax()).append(endl);
outBuffer.append("mean: ").append(getMean()).append(endl);
outBuffer.append("std dev: ").append(getStandardDeviation())
.append(endl);
outBuffer.append("variance: ").append(getVariance()).append(endl);
outBuffer.append("sum: ").append(getSum()).append(endl);
return outBuffer.toString();
}
}