.. index:: statisticsp .. _statisticsp/0: .. rst-class:: right **protocol** ``statisticsp`` =============== Statistical calculations over a list of numbers protocol. | **Availability:** | ``logtalk_load(statistics(loader))`` | **Author:** Paulo Moura | **Version:** 1:3:0 | **Date:** 2022-06-20 | **Compilation flags:** | ``static`` | **Dependencies:** | (none) | **Remarks:** | (none) | **Inherited public predicates:** | (none) .. contents:: :local: :backlinks: top Public predicates ----------------- .. index:: product/2 .. _statisticsp/0::product/2: ``product/2`` ^^^^^^^^^^^^^ Calculates the product of all list numbers. Fails if the list is empty. | **Compilation flags:** | ``static`` | **Template:** | ``product(List,Product)`` | **Mode and number of proofs:** | ``product(+list(number),-number)`` - ``zero_or_one`` ------------ .. index:: sum/2 .. _statisticsp/0::sum/2: ``sum/2`` ^^^^^^^^^ Calculates the sum of all list numbers. Fails if the list is empty. | **Compilation flags:** | ``static`` | **Template:** | ``sum(List,Sum)`` | **Mode and number of proofs:** | ``sum(+list(number),-number)`` - ``zero_or_one`` ------------ .. index:: min/2 .. _statisticsp/0::min/2: ``min/2`` ^^^^^^^^^ Determines the minimum value in a list of numbers. Fails if the list is empty. | **Compilation flags:** | ``static`` | **Template:** | ``min(List,Minimum)`` | **Mode and number of proofs:** | ``min(+list,-number)`` - ``zero_or_one`` ------------ .. index:: max/2 .. _statisticsp/0::max/2: ``max/2`` ^^^^^^^^^ Determines the list maximum value in a list of numbers. Fails if the list is empty. | **Compilation flags:** | ``static`` | **Template:** | ``max(List,Maximum)`` | **Mode and number of proofs:** | ``max(+list,-number)`` - ``zero_or_one`` ------------ .. index:: min_max/3 .. _statisticsp/0::min_max/3: ``min_max/3`` ^^^^^^^^^^^^^ Determines the minimum and maximum values in a list of numbers. Fails if the list is empty. | **Compilation flags:** | ``static`` | **Template:** | ``min_max(List,Minimum,Maximum)`` | **Mode and number of proofs:** | ``min_max(+list(number),-number,-number)`` - ``zero_or_one`` ------------ .. index:: range/2 .. _statisticsp/0::range/2: ``range/2`` ^^^^^^^^^^^ Range is the length of the smallest interval which contains all the numbers in List. Fails if the list is empty. | **Compilation flags:** | ``static`` | **Template:** | ``range(List,Range)`` | **Mode and number of proofs:** | ``range(+list,-number)`` - ``zero_or_one`` ------------ .. index:: arithmetic_mean/2 .. _statisticsp/0::arithmetic_mean/2: ``arithmetic_mean/2`` ^^^^^^^^^^^^^^^^^^^^^ Calculates the arithmetic mean of a list of numbers. Fails if the list is empty. | **Compilation flags:** | ``static`` | **Template:** | ``arithmetic_mean(List,Mean)`` | **Mode and number of proofs:** | ``arithmetic_mean(+list(number),-float)`` - ``zero_or_one`` ------------ .. index:: geometric_mean/2 .. _statisticsp/0::geometric_mean/2: ``geometric_mean/2`` ^^^^^^^^^^^^^^^^^^^^ Calculates the geometric mean of a list of numbers. Fails if the list is empty. | **Compilation flags:** | ``static`` | **Template:** | ``geometric_mean(List,Mean)`` | **Mode and number of proofs:** | ``geometric_mean(+list(number),-float)`` - ``zero_or_one`` ------------ .. index:: harmonic_mean/2 .. _statisticsp/0::harmonic_mean/2: ``harmonic_mean/2`` ^^^^^^^^^^^^^^^^^^^ Calculates the harmonic mean of a list of numbers. Fails if the list is empty. | **Compilation flags:** | ``static`` | **Template:** | ``harmonic_mean(List,Mean)`` | **Mode and number of proofs:** | ``harmonic_mean(+list(number),-float)`` - ``zero_or_one`` ------------ .. index:: weighted_mean/3 .. _statisticsp/0::weighted_mean/3: ``weighted_mean/3`` ^^^^^^^^^^^^^^^^^^^ Calculates the weighted mean of a list of numbers. Fails if the list is empty or if the two lists have different lengths. Wights are assume to be non-negative. | **Compilation flags:** | ``static`` | **Template:** | ``weighted_mean(Weights,List,Mean)`` | **Mode and number of proofs:** | ``weighted_mean(+list(number),+list(number),-float)`` - ``zero_or_one`` ------------ .. index:: median/2 .. _statisticsp/0::median/2: ``median/2`` ^^^^^^^^^^^^ Calculates the median of a list of numbers. Fails if the list is empty. | **Compilation flags:** | ``static`` | **Template:** | ``median(List,Median)`` | **Mode and number of proofs:** | ``median(+list(number),-float)`` - ``zero_or_one`` ------------ .. index:: modes/2 .. _statisticsp/0::modes/2: ``modes/2`` ^^^^^^^^^^^ Returns the list of modes of a list of numbers in ascending order. Fails if the list is empty. | **Compilation flags:** | ``static`` | **Template:** | ``modes(List,Modes)`` | **Mode and number of proofs:** | ``modes(+list(number),-list(number))`` - ``zero_or_one`` ------------ .. index:: average_deviation/3 .. _statisticsp/0::average_deviation/3: ``average_deviation/3`` ^^^^^^^^^^^^^^^^^^^^^^^ Calculates the average absolute deviation of a list of numbers given a central tendency (e.g. mean, median, or mode). Fails if the list is empty. | **Compilation flags:** | ``static`` | **Template:** | ``average_deviation(List,CentralTendency,Deviation)`` | **Mode and number of proofs:** | ``average_deviation(+list(number),+float,-float)`` - ``zero_or_one`` ------------ .. index:: mean_deviation/2 .. _statisticsp/0::mean_deviation/2: ``mean_deviation/2`` ^^^^^^^^^^^^^^^^^^^^ Calculates the mean absolute deviation of a list of numbers. Fails if the list is empty. | **Compilation flags:** | ``static`` | **Template:** | ``mean_deviation(List,Deviation)`` | **Mode and number of proofs:** | ``mean_deviation(+list(number),-float)`` - ``zero_or_one`` ------------ .. index:: median_deviation/2 .. _statisticsp/0::median_deviation/2: ``median_deviation/2`` ^^^^^^^^^^^^^^^^^^^^^^ Calculates the median absolute deviation of a list of numbers. Fails if the list is empty. | **Compilation flags:** | ``static`` | **Template:** | ``median_deviation(List,Deviation)`` | **Mode and number of proofs:** | ``median_deviation(+list(number),-float)`` - ``zero_or_one`` ------------ .. index:: standard_deviation/2 .. _statisticsp/0::standard_deviation/2: ``standard_deviation/2`` ^^^^^^^^^^^^^^^^^^^^^^^^ Calculates the standard deviation of a list of numbers. Fails if the list is empty. | **Compilation flags:** | ``static`` | **Template:** | ``standard_deviation(List,Deviation)`` | **Mode and number of proofs:** | ``standard_deviation(+list(number),-float)`` - ``zero_or_one`` ------------ .. index:: coefficient_of_variation/2 .. _statisticsp/0::coefficient_of_variation/2: ``coefficient_of_variation/2`` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Calculates the coefficient of variation of a list of numbers. Fails if the list is empty. | **Compilation flags:** | ``static`` | **Template:** | ``coefficient_of_variation(List,Coefficient)`` | **Mode and number of proofs:** | ``coefficient_of_variation(+list(number),-float)`` - ``zero_or_one`` ------------ .. index:: relative_standard_deviation/2 .. _statisticsp/0::relative_standard_deviation/2: ``relative_standard_deviation/2`` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Calculates the relative standard deviation of a list of numbers. Fails if the list is empty. | **Compilation flags:** | ``static`` | **Template:** | ``relative_standard_deviation(List,Percentage)`` | **Mode and number of proofs:** | ``relative_standard_deviation(+list(number),-float)`` - ``zero_or_one`` ------------ .. index:: skewness/2 .. _statisticsp/0::skewness/2: ``skewness/2`` ^^^^^^^^^^^^^^ Calculates the (moment) skewness of a list of numbers. Fails if the list is empty. | **Compilation flags:** | ``static`` | **Template:** | ``skewness(List,Skewness)`` | **Mode and number of proofs:** | ``skewness(+list(number),-float)`` - ``zero_or_one`` ------------ .. index:: kurtosis/2 .. _statisticsp/0::kurtosis/2: ``kurtosis/2`` ^^^^^^^^^^^^^^ Calculates the (excess) kurtosis of a list of numbers. Fails if the list is empty. | **Compilation flags:** | ``static`` | **Template:** | ``kurtosis(List,Kurtosis)`` | **Mode and number of proofs:** | ``kurtosis(+list(number),-float)`` - ``zero_or_one`` ------------ .. index:: variance/2 .. _statisticsp/0::variance/2: ``variance/2`` ^^^^^^^^^^^^^^ Calculates the unbiased variance of a list of numbers. Fails if the list is empty. | **Compilation flags:** | ``static`` | **Template:** | ``variance(List,Variance)`` | **Mode and number of proofs:** | ``variance(+list(number),-float)`` - ``zero_or_one`` ------------ .. index:: z_normalization/2 .. _statisticsp/0::z_normalization/2: ``z_normalization/2`` ^^^^^^^^^^^^^^^^^^^^^ Normalizes a list of number such that for the resulting list the mean of is close to zero and the standard deviation is close to 1. Fails if the list is empty. | **Compilation flags:** | ``static`` | **Template:** | ``z_normalization(List,NormalizedList)`` | **Mode and number of proofs:** | ``z_normalization(+list(number),-list(float))`` - ``zero_or_one`` ------------ .. index:: fractile/3 .. _statisticsp/0::fractile/3: ``fractile/3`` ^^^^^^^^^^^^^^ Calculates the smallest value in a list of numbers such that the list elements in its fraction ``P`` are less or equal to that value (with ``P`` in the open interval ``(0.0, 1.0)``). Fails if the list is empty. | **Compilation flags:** | ``static`` | **Template:** | ``fractile(P,List,Fractile)`` | **Mode and number of proofs:** | ``fractile(+float,+list(integer),-integer)`` - ``zero_or_one`` | ``fractile(+float,+list(float),-float)`` - ``zero_or_one`` ------------ .. index:: valid/1 .. _statisticsp/0::valid/1: ``valid/1`` ^^^^^^^^^^^ Term is a closed list of numbers. | **Compilation flags:** | ``static`` | **Template:** | ``valid(Term)`` | **Mode and number of proofs:** | ``valid(@nonvar)`` - ``zero_or_one`` ------------ Protected predicates -------------------- (none) Private predicates ------------------ (none) Operators --------- (none) .. seealso:: :ref:`statistics `, :ref:`sample `, :ref:`population `