Пример #1
0
def AIC(model):
    """Calculates the Akaike information criterion

    AIC = 2 k - 2 ln(L)

    where
    L is the maximum likelihood function value,
    k is the number of free parameters.
    """

    # maybe should not have any Offset components?
    # more than a single pixel, needs iterating, don't do that for now
    if model.axes_manager.navigation_size:
        raise NavigationSizeError(model.axes_manager.navigation_size, 0)

    model._set_p0()  # correctly set the parameters (numbers / values)
    lnL = model._poisson_likelihood_function(
        model.p0, model.axis.axis[model.channel_switches])
    k = len(model.p0) + 1  # +1 for the variance
    return 2 * k - 2 * lnL
Пример #2
0
def BIC(model):
    """Calculates the Bayesian information criterion

    BIC = -2 * ln(L) + k * ln(n)

    where
    L is the maximum likelihood function,
    k is the number of free parameters, and
    n is the number of data points (observations) / sample size.
    """
    # maybe should not have any Offset components?
    # more than a single pixel, needs iterating, don't do that for now
    if model.axes_manager.navigation_size:
        raise NavigationSizeError(model.axes_manager.navigation_size, 0)

    model._set_p0()  # correctly set the parameters (numbers / values)
    lnL = model._poisson_likelihood_function(
        model.p0, model.axis.axis[model.channel_switches])
    n = model.axes_manager.signal_size
    k = len(model.p0) + 1
    return k * np.log(n) - 2. * lnL