Документация Engee

Эмпирическое оценивание

Гистограммы

# StatsBase.HistogramType

Histogram <: AbstractHistogram

Тип Histogram представляет данные, сведенные в интервалы (известные как столбцы) на вещественной прямой либо, в более высоких размерностях, на вещественной плоскости. Гистограммы могут подгоняться к данным с помощью метода fit.

Поля

  • edges: итератор, содержащий границы столбцов в каждом измерении.

  • weights: массив, содержащий вес каждого столбца.

  • closed: символ со значением :right или :left, указывающим, с какой стороны замкнуты интервалы (полуинтервалы или их аналоги более высокой размерности). Пример см. ниже.

  • isdensity: тип Histogram может интерпретироваться двумя способами. Если isdensity=false, вес столбца соответствует количеству величины в столбце. Если isdensity=true, то он соответствует плотности (количество / объем) величины в столбце. Пример см. ниже.

Примеры

Пример, иллюстрирующий closed

julia> using StatsBase

julia> fit(Histogram, [2.],  1:3, closed=:left)
Histogram{Int64, 1, Tuple{UnitRange{Int64}}}
edges:
  1:3
weights: [0, 1]
closed: left
isdensity: false

julia> fit(Histogram, [2.],  1:3, closed=:right)
Histogram{Int64, 1, Tuple{UnitRange{Int64}}}
edges:
  1:3
weights: [1, 0]
closed: right
isdensity: false

Пример, иллюстрирующий isdensity

julia> using StatsBase, LinearAlgebra

julia> bins = [0,1,7]; # маленький и большой столбец

julia> obs = [0.5, 1.5, 1.5, 2.5]; # одно наблюдение в маленьком столбце и три — в большом

julia> h = fit(Histogram, obs, bins)
Histogram{Int64,1,Tuple{Array{Int64,1}}}
edges:
  [0, 1, 7]
weights: [1, 3]
closed: left
isdensity: false

julia> # isdensity = false, а в поле weights указывается количество наблюдений в каждом столбце

julia> normalize(h, mode=:density)
Histogram{Float64,1,Tuple{Array{Int64,1}}}
edges:
  [0, 1, 7]
weights: [1.0, 0.5]
closed: left
isdensity: true

julia> # isdensity = true, а в поле weights указывается количество наблюдений на binsize в каждом столбце

Гистограммы могут подгоняться к данным с помощью метода fit.

# StatsAPI.fitMethod

fit(Histogram, data[, weight][, edges]; closed=:left, nbins)

Подгоняет гистограмму к data.

Аргументы

  • data: вектор (для одномерной гистограммы) или кортеж векторов равной длины (для n-мерной гистограммы).

  • weight: необязательный объект AbstractWeights (той же длины, что и векторы данных), содержащий весовой вклад каждого наблюдения в столбец. Если весовой вектор не задан, каждое наблюдение имеет вес 1.

  • edges: вектор (обычно объект AbstractRange) или кортеж векторов, задающий границы столбцов по каждому измерению. Если границы не заданы, они определяются исходя из данных.

Именованные аргументы

  • closed: при значении :left (по умолчанию) интервалы столбцов замкнуты слева [a,b); при значении :right интервалы замкнуты справа (a,b].

  • nbins: если аргумент edges не указан, то это примерное количество столбцов, которое должно использоваться по каждому измерению (может быть целым числом или кортежем целых чисел).

Примеры

# Одномерный случай
h = fit(Histogram, rand(100))
h = fit(Histogram, rand(100), 0:0.1:1.0)
h = fit(Histogram, rand(100), nbins=10)
h = fit(Histogram, rand(100), weights(rand(100)), 0:0.1:1.0)
h = fit(Histogram, [20], 0:20:100)
h = fit(Histogram, [20], 0:20:100, closed=:right)

# Многомерный случай
h = fit(Histogram, (rand(100),rand(100)))
h = fit(Histogram, (rand(100),rand(100)),nbins=10)

Дополнительные методы

# Base.merge!Function

merge!(target::Histogram, others::Histogram...)

Обновляет гистограмму target, объединяя ее с гистограммами others. Подробные сведения см. в описании merge(histogram::Histogram, others::Histogram...).

# Base.mergeFunction

merge(h::Histogram, others::Histogram...)

Создает гистограмму путем объединения h с others. Все гистограммы должны иметь одинаковые столбцы, форму весов и свойства (closed и isdensity). Веса всех гистограмм суммируются для каждого столбца, причем веса получившейся гистограммы будут иметь тот же тип, что и у h.

# LinearAlgebra.normFunction

norm(h::Histogram)

Calculate the norm of histogram h as the absolute value of its integral.

# LinearAlgebra.normalizeFunction

normalize(h::Histogram{T,N}; mode::Symbol=:pdf) where {T,N}

Normalize the histogram h.

Valid values for mode are:

  • :pdf: Normalize by sum of weights and bin sizes. Resulting histogram has norm 1 and represents a PDF.

  • :density: Normalize by bin sizes only. Resulting histogram represents count density of input and does not have norm 1. Will not modify the histogram if it already represents a density (h.isdensity == 1).

  • :probability: Normalize by sum of weights only. Resulting histogram represents the fraction of probability mass for each bin and does not have norm 1.

  • :none: Leaves histogram unchanged. Useful to simplify code that has to conditionally apply different modes of normalization.

Successive application of both :probability and :density normalization (in any order) is equivalent to :pdf normalization.

normalize(h::Histogram{T,N}, aux_weights::Array{T,N}...; mode::Symbol=:pdf) where {T,N}

Normalize the histogram h and rescales one or more auxiliary weight arrays at the same time (aux_weights may, e.g., contain estimated statistical uncertainties). The values of the auxiliary arrays are scaled by the same factor as the corresponding histogram weight values. Returns a tuple of the normalized histogram and scaled auxiliary weights.

# LinearAlgebra.normalize!Function

normalize!(h::Histogram{T,N}, aux_weights::Array{T,N}...; mode::Symbol=:pdf) where {T<:AbstractFloat,N}

Normalize the histogram h and optionally scale one or more auxiliary weight arrays appropriately. See description of normalize for details. Returns h.

# Base.zeroFunction

zero(h::Histogram)

Создает гистограмму с теми же столбцами, типом и формой весов и с теми же свойствами (closed и isdensity), что и у h, причем все веса задаются равными нулю.

Эмпирическая интегральная функция распределения

# StatsBase.ecdfFunction

ecdf(X; weights::AbstractWeights)

Возвращает эмпирическую интегральную функцию распределения (ECDF) на основе вектора отсчетов, заданного в X. Если указать weights, возвращается взвешенная функция ECDF.

Обратите внимание: эта функция возвращает вызываемый составной тип, который затем можно использовать с целью вычисления значений CDF для других отсчетов.

Также поддерживаются extrema, minimum и maximum для получения диапазона, в пределах которого функция находится внутри интервала ; функция определена на всей вещественной прямой.