Эмпирическое оценивание
Гистограммы
#
StatsBase.Histogram
— Type
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.fit
— Method
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.merge
— Function
merge(h::Histogram, others::Histogram...)
Создает гистограмму путем объединения h
с others
. Все гистограммы должны иметь одинаковые столбцы, форму весов и свойства (closed
и isdensity
). Веса всех гистограмм суммируются для каждого столбца, причем веса получившейся гистограммы будут иметь тот же тип, что и у h
.
#
LinearAlgebra.norm
— Function
norm(h::Histogram)
Calculate the norm of histogram h
as the absolute value of its integral.
#
LinearAlgebra.normalize
— Function
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.zero
— Function
zero(h::Histogram)
Создает гистограмму с теми же столбцами, типом и формой весов и с теми же свойствами (closed
и isdensity
), что и у h
, причем все веса задаются равными нулю.
Эмпирическая интегральная функция распределения
#
StatsBase.ecdf
— Function
ecdf(X; weights::AbstractWeights)
Возвращает эмпирическую интегральную функцию распределения (ECDF) на основе вектора отсчетов, заданного в X
. Если указать weights
, возвращается взвешенная функция ECDF.
Обратите внимание: эта функция возвращает вызываемый составной тип, который затем можно использовать с целью вычисления значений CDF для других отсчетов.
Также поддерживаются extrema
, minimum
и maximum
для получения диапазона, в пределах которого функция находится внутри интервала ; функция определена на всей вещественной прямой.