@Override public ExponentialDistribution estimateFromMeanVariance(MeanVariance mv) { final double scale = mv.getMean(); if(!(scale > 0.)) { throw new ArithmeticException("Data with non-positive mean cannot be exponential distributed."); } return new ExponentialDistribution(1. / scale); }
@Override public ExponentialDistribution estimateFromMeanVariance(MeanVariance mv) { final double scale = mv.getMean(); if (!(scale > 0.)) { throw new ArithmeticException("Data with non-positive mean cannot be exponential distributed."); } return new ExponentialDistribution(1. / scale); }
/** * Return the normalized value (centered at the mean, distance normalized by * standard deviation) * * @param val original value * @return normalized value */ public double normalizeValue(double val) { return (val - getMean()) / getSampleStddev(); }
/** * Return the unnormalized value (centered at the mean, distance normalized by * standard deviation) * * @param val normalized value * @return de-normalized value */ public double denormalizeValue(double val) { return (val * getSampleStddev()) + getMean(); }
@Override public ExponentialDistribution estimateFromMeanVariance(MeanVariance mv) { final double scale = mv.getMean(); if(!(scale > 0.)) { throw new ArithmeticException("Data with non-positive mean cannot be exponential distributed."); } return new ExponentialDistribution(1. / scale); }
@Override public String toString() { return "MeanVariance(mean=" + getMean() + ",var=" + getNaiveVariance() + ",weight=" + n + ")"; }
@Override public String toString() { return "MeanVariance(mean=" + getMean() + ",var=" + getNaiveVariance() + ",weight=" + n + ")"; }
@Override public LogNormalDistribution estimateFromLogMeanVariance(MeanVariance mv, double shift) { return new LogNormalDistribution(mv.getMean(), Math.max(mv.getSampleStddev(), Double.MIN_NORMAL), shift); }
@Override public NormalDistribution estimateFromMeanVariance(MeanVariance mv) { return new NormalDistribution(mv.getMean(), Math.max(mv.getSampleStddev(), Double.MIN_NORMAL)); }
@Override public LogNormalDistribution estimateFromLogMeanVariance(MeanVariance mv, double shift) { return new LogNormalDistribution(mv.getMean(), Math.max(mv.getSampleStddev(), Double.MIN_NORMAL), shift); }
@Override public LogNormalDistribution estimateFromLogMeanVariance(MeanVariance mv, double shift) { return new LogNormalDistribution(mv.getMean(), Math.max(mv.getSampleStddev(), Double.MIN_NORMAL), shift); }
@Override public NormalDistribution estimateFromMeanVariance(MeanVariance mv) { return new NormalDistribution(mv.getMean(), Math.max(mv.getSampleStddev(), Double.MIN_NORMAL)); }
@Override public InverseGaussianDistribution estimateFromMeanVariance(MeanVariance mv) { double mean = mv.getMean(); return new InverseGaussianDistribution(mean, mean * mean * mean / mv.getSampleVariance()); }
@Override public InverseGaussianDistribution estimateFromMeanVariance(MeanVariance mv) { double mean = mv.getMean(); return new InverseGaussianDistribution(mean, mean * mean * mean / mv.getSampleVariance()); }
/** * Calculate the statistic of Welch's t test using statistical moments of the * provided data samples * * @param mv1 Mean and variance of first sample * @param mv2 Mean and variance of second sample * @return Welch's t statistic */ public static double calculateTestStatistic(MeanVariance mv1, MeanVariance mv2) { final double delta = mv1.getMean() - mv2.getMean(); final double relvar1 = mv1.getSampleVariance() / mv1.getCount(); final double relvar2 = mv2.getSampleVariance() / mv2.getCount(); return delta / Math.sqrt(relvar1 + relvar2); }
/** * Calculate the statistic of Welch's t test using statistical moments of the * provided data samples * * @param mv1 Mean and variance of first sample * @param mv2 Mean and variance of second sample * @return Welch's t statistic */ public static double calculateTestStatistic(MeanVariance mv1, MeanVariance mv2) { final double delta = mv1.getMean() - mv2.getMean(); final double relvar1 = mv1.getSampleVariance() / mv1.getCount(); final double relvar2 = mv2.getSampleVariance() / mv2.getCount(); return delta / Math.sqrt(relvar1 + relvar2); }
@Override public WaldDistribution estimateFromMeanVariance(MeanVariance mv) { double mean = mv.getMean(); return new WaldDistribution(mean, mean * mean * mean / mv.getSampleVariance()); }
public ExpGammaDistribution estimateFromExpMeanVariance(MeanVariance mv) { final double mu = mv.getMean(); final double var = mv.getSampleVariance(); if(mu < Double.MIN_NORMAL || var < Double.MIN_NORMAL) { throw new ArithmeticException("Cannot estimate Gamma parameters on a distribution with zero mean or variance: " + mv.toString()); } final double theta = mu / var; final double k = mu * theta; if(!(k > 0.) || !(theta > 0.)) { throw new ArithmeticException("Gamma estimation produced non-positive parameter values: k=" + k + " theta=" + theta); } return new ExpGammaDistribution(k, theta, 0); }
public ExpGammaDistribution estimateFromExpMeanVariance(MeanVariance mv) { final double mu = mv.getMean(); final double var = mv.getSampleVariance(); if(mu < Double.MIN_NORMAL || var < Double.MIN_NORMAL) { throw new ArithmeticException("Cannot estimate Gamma parameters on a distribution with zero mean or variance: " + mv.toString()); } final double theta = mu / var; final double k = mu * theta; if(!(k > 0.) || !(theta > 0.)) { throw new ArithmeticException("Gamma estimation produced non-positive parameter values: k=" + k + " theta=" + theta); } return new ExpGammaDistribution(k, theta, 0); }
@Override public GammaDistribution estimateFromMeanVariance(MeanVariance mv) { final double mu = mv.getMean(); final double var = mv.getSampleVariance(); if(mu < Double.MIN_NORMAL || var < Double.MIN_NORMAL) { throw new ArithmeticException("Cannot estimate Gamma parameters on a distribution with zero mean or variance: " + mv.toString()); } final double theta = mu / var; final double k = mu * theta; if(!(k > 0.) || !(theta > 0.)) { throw new ArithmeticException("Gamma estimation produced non-positive parameter values: k=" + k + " theta=" + theta); } return new GammaDistribution(k, theta); }