Search in sources :

Example 1 with FixedNonLinearFunction

use of uk.ac.sussex.gdsc.smlm.function.FixedNonLinearFunction in project GDSC-SMLM by aherbert.

the class MaximumLikelihoodFitter method computeObservedLogLikelihood.

@Override
protected double computeObservedLogLikelihood(double[] y, double[] a) {
    if (lastY != null) {
        final int n = y.length;
        // The function value must be scaled to the expected value of a Poisson process.
        double[] scaledy;
        if (alpha != 0) {
            scaledy = new double[n];
            for (int i = n; i-- > 0; ) {
                scaledy[i] = y[i] * alpha;
            }
        } else {
            scaledy = y;
        }
        final LikelihoodWrapper maximumLikelihoodFunction = createLikelihoodWrapper(new FixedNonLinearFunction(scaledy), n, lastY, a);
        final double l = maximumLikelihoodFunction.likelihood(a);
        if (l == Double.POSITIVE_INFINITY) {
            return Double.NEGATIVE_INFINITY;
        }
        // Reverse negative log likelihood for maximum likelihood score
        value = -l;
    }
    throw new IllegalStateException();
}
Also used : FixedNonLinearFunction(uk.ac.sussex.gdsc.smlm.function.FixedNonLinearFunction) LikelihoodWrapper(uk.ac.sussex.gdsc.smlm.function.LikelihoodWrapper) PoissonLikelihoodWrapper(uk.ac.sussex.gdsc.smlm.function.PoissonLikelihoodWrapper) PoissonGammaGaussianLikelihoodWrapper(uk.ac.sussex.gdsc.smlm.function.PoissonGammaGaussianLikelihoodWrapper) PoissonGaussianLikelihoodWrapper(uk.ac.sussex.gdsc.smlm.function.PoissonGaussianLikelihoodWrapper)

Aggregations

FixedNonLinearFunction (uk.ac.sussex.gdsc.smlm.function.FixedNonLinearFunction)1 LikelihoodWrapper (uk.ac.sussex.gdsc.smlm.function.LikelihoodWrapper)1 PoissonGammaGaussianLikelihoodWrapper (uk.ac.sussex.gdsc.smlm.function.PoissonGammaGaussianLikelihoodWrapper)1 PoissonGaussianLikelihoodWrapper (uk.ac.sussex.gdsc.smlm.function.PoissonGaussianLikelihoodWrapper)1 PoissonLikelihoodWrapper (uk.ac.sussex.gdsc.smlm.function.PoissonLikelihoodWrapper)1