Statistics
El módulo de la biblioteca estándar de Estadísticas contiene funcionalidad básica de estadísticas.
Statistics.std
— Functionstd(itr; corrected::Bool=true, mean=nothing[, dims])
Calcula la desviación estándar muestral de la colección itr
.
El algoritmo devuelve un estimador de la desviación estándar de la distribución generativa bajo la suposición de que cada entrada de itr
es una muestra extraída de la misma distribución desconocida, con las muestras no correlacionadas. Para arreglos, este cálculo es equivalente a calcular sqrt(sum((itr .- mean(itr)).^2) / (length(itr) - 1))
. Si corrected
es true
, entonces la suma se escala con n-1
, mientras que la suma se escala con n
si corrected
es false
, siendo n
el número de elementos en itr
.
Si itr
es un AbstractArray
, se pueden proporcionar dims
para calcular la desviación estándar sobre dimensiones.
Se puede proporcionar un mean
precomputado. Cuando se especifica dims
, mean
debe ser un arreglo con la misma forma que mean(itr, dims=dims)
(se permiten dimensiones singleton adicionales al final).
Si el arreglo contiene valores NaN
o missing
, el resultado también es NaN
o missing
(missing
tiene prioridad si el arreglo contiene ambos). Usa la función skipmissing
para omitir entradas missing
y calcular la desviación estándar de los valores no faltantes.
Statistics.stdm
— Functionstdm(itr, mean; corrected::Bool=true[, dims])
Calcula la desviación estándar muestral de la colección itr
, con la(s) media(s) conocida(s) mean
.
El algoritmo devuelve un estimador de la desviación estándar de la distribución generativa bajo la suposición de que cada entrada de itr
es una muestra extraída de la misma distribución desconocida, con las muestras no correlacionadas. Para arreglos, este cálculo es equivalente a calcular sqrt(sum((itr .- mean(itr)).^2) / (length(itr) - 1))
. Si corrected
es true
, entonces la suma se escala con n-1
, mientras que la suma se escala con n
si corrected
es false
, siendo n
el número de elementos en itr
.
Si itr
es un AbstractArray
, se pueden proporcionar dims
para calcular la desviación estándar sobre dimensiones. En ese caso, mean
debe ser un arreglo con la misma forma que mean(itr, dims=dims)
(se permiten dimensiones singleton adicionales al final).
Si el arreglo contiene valores NaN
o missing
, el resultado también es NaN
o missing
(missing
tiene prioridad si el arreglo contiene ambos). Usa la función skipmissing
para omitir entradas missing
y calcular la desviación estándar de los valores no faltantes.
Statistics.var
— Functionvar(itr; corrected::Bool=true, mean=nothing[, dims])
Calcula la varianza muestral de la colección itr
.
El algoritmo devuelve un estimador de la varianza de la distribución generativa bajo la suposición de que cada entrada de itr
es una muestra extraída de la misma distribución desconocida, con las muestras no correlacionadas. Para arreglos, este cálculo es equivalente a calcular sum((itr .- mean(itr)).^2) / (length(itr) - 1)
. Si corrected
es true
, entonces la suma se escala con n-1
, mientras que la suma se escala con n
si corrected
es false
, donde n
es el número de elementos en itr
.
Si itr
es un AbstractArray
, se pueden proporcionar dims
para calcular la varianza sobre dimensiones.
Se puede proporcionar un mean
precomputado. Cuando se especifica dims
, mean
debe ser un arreglo con la misma forma que mean(itr, dims=dims)
(se permiten dimensiones singleton adicionales al final).
Si el arreglo contiene valores NaN
o missing
, el resultado también es NaN
o missing
(missing
tiene prioridad si el arreglo contiene ambos). Usa la función skipmissing
para omitir entradas missing
y calcular la varianza de los valores no faltantes.
Statistics.varm
— Functionvarm(itr, mean; dims, corrected::Bool=true)
Calcula la varianza muestral de la colección itr
, con la(s) media(s) conocida(s) mean
.
El algoritmo devuelve un estimador de la varianza de la distribución generativa bajo la suposición de que cada entrada de itr
es una muestra extraída de la misma distribución desconocida, con las muestras no correlacionadas. Para arreglos, este cálculo es equivalente a calcular sum((itr .- mean(itr)).^2) / (length(itr) - 1)
. Si corrected
es true
, entonces la suma se escala con n-1
, mientras que la suma se escala con n
si corrected
es false
, siendo n
el número de elementos en itr
.
Si itr
es un AbstractArray
, se pueden proporcionar dims
para calcular la varianza a través de dimensiones. En ese caso, mean
debe ser un arreglo con la misma forma que mean(itr, dims=dims)
(se permiten dimensiones singleton adicionales al final).
Si el arreglo contiene valores NaN
o missing
, el resultado también es NaN
o missing
(missing
tiene prioridad si el arreglo contiene ambos). Usa la función skipmissing
para omitir entradas missing
y calcular la varianza de los valores no faltantes.
Statistics.cor
— Functioncor(x::AbstractVector)
Devuelve el número uno.
cor(X::AbstractMatrix; dims::Int=1)
Calcula la matriz de correlación de Pearson de la matriz X
a lo largo de la dimensión dims
.
cor(x::AbstractVector, y::AbstractVector)
Calcula la correlación de Pearson entre los vectores x
y y
.
cor(X::AbstractVecOrMat, Y::AbstractVecOrMat; dims=1)
Calcula la correlación de Pearson entre los vectores o matrices X
y Y
a lo largo de la dimensión dims
.
Statistics.cov
— Functioncov(x::AbstractVector; corrected::Bool=true)
Calcula la varianza del vector x
. Si corrected
es true
(el valor por defecto), entonces la suma se escala con n-1
, mientras que la suma se escala con n
si corrected
es false
, donde n = length(x)
.
cov(X::AbstractMatrix; dims::Int=1, corrected::Bool=true)
Calcula la matriz de covarianza de la matriz X
a lo largo de la dimensión dims
. Si corrected
es true
(el valor predeterminado), entonces la suma se escala con n-1
, mientras que la suma se escala con n
si corrected
es false
, donde n = size(X, dims)
.
cov(x::AbstractVector, y::AbstractVector; corrected::Bool=true)
Calcula la covarianza entre los vectores x
y y
. Si corrected
es true
(el valor predeterminado), calcula $\frac{1}{n-1}\sum_{i=1}^n (x_i-\bar x) (y_i-\bar y)^*$ donde $*$ denota el conjugado complejo y n = length(x) = length(y)
. Si corrected
es false
, calcula $\frac{1}{n}\sum_{i=1}^n (x_i-\bar x) (y_i-\bar y)^*$.
cov(X::AbstractVecOrMat, Y::AbstractVecOrMat; dims::Int=1, corrected::Bool=true)
Calcula la covarianza entre los vectores o matrices X
y Y
a lo largo de la dimensión dims
. Si corrected
es true
(el valor predeterminado), entonces la suma se escala con n-1
, mientras que la suma se escala con n
si corrected
es false
, donde n = size(X, dims) = size(Y, dims)
.
Statistics.mean!
— Functionmean!(r, v)
Calcula la media de v
sobre las dimensiones singleton de r
, y escribe los resultados en r
.
Ejemplos
julia> using Statistics
julia> v = [1 2; 3 4]
2×2 Matrix{Int64}:
1 2
3 4
julia> mean!([1., 1.], v)
2-element Vector{Float64}:
1.5
3.5
julia> mean!([1. 1.], v)
1×2 Matrix{Float64}:
2.0 3.0
Statistics.mean
— Functionmean(itr)
Calcule la media de todos los elementos en una colección.
Si itr
contiene valores NaN
o missing
, el resultado también es NaN
o missing
(missing
tiene prioridad si el arreglo contiene ambos). Utilice la función skipmissing
para omitir entradas missing
y calcular la media de los valores no faltantes.
Ejemplos
julia> using Statistics
julia> mean(1:20)
10.5
julia> mean([1, missing, 3])
missing
julia> mean(skipmissing([1, missing, 3]))
2.0
mean(f, itr)
Aplica la función f
a cada elemento de la colección itr
y toma la media.
julia> using Statistics
julia> mean(√, [1, 2, 3])
1.3820881233139908
julia> mean([√1, √2, √3])
1.3820881233139908
mean(f, A::AbstractArray; dims)
Aplica la función f
a cada elemento del array A
y toma la media sobre las dimensiones dims
.
Este método requiere al menos Julia 1.3.
julia> using Statistics
julia> mean(√, [1, 2, 3])
1.3820881233139908
julia> mean([√1, √2, √3])
1.3820881233139908
julia> mean(√, [1 2 3; 4 5 6], dims=2)
2×1 Matrix{Float64}:
1.3820881233139908
2.2285192400943226
mean(A::AbstractArray; dims)
Calcula la media de un array sobre las dimensiones dadas.
mean
para arrays vacíos requiere al menos Julia 1.1.
Ejemplos
julia> using Statistics
julia> A = [1 2; 3 4]
2×2 Matrix{Int64}:
1 2
3 4
julia> mean(A, dims=1)
1×2 Matrix{Float64}:
2.0 3.0
julia> mean(A, dims=2)
2×1 Matrix{Float64}:
1.5
3.5
Statistics.median!
— Functionmedian!(v)
Como median
, pero puede sobrescribir el vector de entrada.
Statistics.median
— Functionmedian(itr)
Calcule la mediana de todos los elementos en una colección. Para un número par de elementos, no existe un elemento de mediana exacto, por lo que el resultado es equivalente a calcular la media de dos elementos de mediana.
Si itr
contiene valores NaN
o missing
, el resultado también es NaN
o missing
(missing
tiene prioridad si itr
contiene ambos). Utilice la función skipmissing
para omitir entradas missing
y calcular la mediana de los valores no faltantes.
Ejemplos
julia> using Statistics
julia> median([1, 2, 3])
2.0
julia> median([1, 2, 3, 4])
2.5
julia> median([1, 2, missing, 4])
missing
julia> median(skipmissing([1, 2, missing, 4]))
2.0
median(A::AbstractArray; dims)
Calcula la mediana de un arreglo a lo largo de las dimensiones dadas.
Ejemplos
julia> using Statistics
julia> median([1 2; 3 4], dims=1)
1×2 Matrix{Float64}:
2.0 3.0
Statistics.middle
— Functionmiddle(x)
Calcula el medio de un valor escalar, que es equivalente a x
mismo, pero del tipo de middle(x, x)
para mantener la consistencia.
middle(x, y)
Calcule el punto medio de dos números x
y y
, que es equivalente en valor y tipo a calcular su media ((x + y) / 2
).
middle(a::AbstractArray)
Calcula el punto medio de un arreglo a
, que consiste en encontrar sus extremos y luego calcular su media.
julia> using Statistics
julia> middle(1:10)
5.5
julia> a = [1,2,3.6,10.9]
4-element Vector{Float64}:
1.0
2.0
3.6
10.9
julia> middle(a)
5.95
Statistics.quantile!
— Functionquantile!([q::AbstractArray, ] v::AbstractVector, p; sorted=false, alpha::Real=1.0, beta::Real=alpha)
Calcula el(los) cuantil(es) de un vector v
en una probabilidad especificada o vector o tupla de probabilidades p
en el intervalo [0,1]. Si p
es un vector, también se puede especificar un array de salida opcional q
. (Si no se proporciona, se crea un nuevo array de salida). El argumento clave sorted
indica si se puede asumir que v
está ordenado; si es false
(el valor predeterminado), entonces los elementos de v
se ordenarán parcialmente en su lugar.
Los cuantiles de muestra se definen por Q(p) = (1-γ)*x[j] + γ*x[j+1]
, donde x[j]
es la j-ésima estadística de orden de v
, j = floor(n*p + m)
, m = alpha + p*(1 - alpha - beta)
y γ = n*p + m - j
.
Por defecto (alpha = beta = 1
), los cuantiles se calculan mediante interpolación lineal entre los puntos ((k-1)/(n-1), x[k])
, para k = 1:n
donde n = length(v)
. Esto corresponde a la Definición 7 de Hyndman y Fan (1996), y es lo mismo que el valor predeterminado de R y NumPy.
Los argumentos clave alpha
y beta
corresponden a los mismos parámetros en Hyndman y Fan, establecerlos en diferentes valores permite calcular cuantiles con cualquiera de los métodos 4-9 definidos en este documento:
- Def. 4:
alpha=0
,beta=1
- Def. 5:
alpha=0.5
,beta=0.5
(valor predeterminado de MATLAB) - Def. 6:
alpha=0
,beta=0
(ExcelPERCENTILE.EXC
, valor predeterminado de Python, Stataaltdef
) - Def. 7:
alpha=1
,beta=1
(valor predeterminado de Julia, R y NumPy, ExcelPERCENTILE
yPERCENTILE.INC
, Python'inclusive'
) - Def. 8:
alpha=1/3
,beta=1/3
- Def. 9:
alpha=3/8
,beta=3/8
Se lanza un ArgumentError
si v
contiene valores NaN
o missing
.
Referencias
- Hyndman, R.J y Fan, Y. (1996) "Sample Quantiles in Statistical Packages", The American Statistician, Vol. 50, No. 4, pp. 361-365
- Quantile en Wikipedia detalla las diferentes definiciones de cuantil
Ejemplos
julia> using Statistics
julia> x = [3, 2, 1];
julia> quantile!(x, 0.5)
2.0
julia> x
3-element Vector{Int64}:
1
2
3
julia> y = zeros(3);
julia> quantile!(y, x, [0.1, 0.5, 0.9]) === y
true
julia> y
3-element Vector{Float64}:
1.2000000000000002
2.0
2.8000000000000003
Statistics.quantile
— Functionquantile(itr, p; sorted=false, alpha::Real=1.0, beta::Real=alpha)
Calcula el(los) cuantil(es) de una colección itr
en una probabilidad especificada o vector o tupla de probabilidades p
en el intervalo [0,1]. El argumento clave sorted
indica si se puede asumir que itr
está ordenado.
Los cuantiles de muestra se definen por Q(p) = (1-γ)*x[j] + γ*x[j+1]
, donde x[j]
es la j-ésima estadística de orden de itr
, j = floor(n*p + m)
, m = alpha + p*(1 - alpha - beta)
y γ = n*p + m - j
.
Por defecto (alpha = beta = 1
), los cuantiles se calculan mediante interpolación lineal entre los puntos ((k-1)/(n-1), x[k])
, para k = 1:n
donde n = length(itr)
. Esto corresponde a la Definición 7 de Hyndman y Fan (1996), y es el mismo que el valor predeterminado de R y NumPy.
Los argumentos clave alpha
y beta
corresponden a los mismos parámetros en Hyndman y Fan, establecerlos en diferentes valores permite calcular cuantiles con cualquiera de los métodos 4-9 definidos en este documento:
- Def. 4:
alpha=0
,beta=1
- Def. 5:
alpha=0.5
,beta=0.5
(valor predeterminado de MATLAB) - Def. 6:
alpha=0
,beta=0
(ExcelPERCENTILE.EXC
, valor predeterminado de Python, Stataaltdef
) - Def. 7:
alpha=1
,beta=1
(valor predeterminado de Julia, R y NumPy, ExcelPERCENTILE
yPERCENTILE.INC
, Python'inclusive'
) - Def. 8:
alpha=1/3
,beta=1/3
- Def. 9:
alpha=3/8
,beta=3/8
Se lanza un ArgumentError
si v
contiene valores NaN
o missing
. Usa la función skipmissing
para omitir entradas missing
y calcular los cuantiles de los valores no faltantes.
Referencias
- Hyndman, R.J y Fan, Y. (1996) "Sample Quantiles in Statistical Packages", The American Statistician, Vol. 50, No. 4, pp. 361-365
- Quantile en Wikipedia detalla las diferentes definiciones de cuantil
Ejemplos
julia> using Statistics
julia> quantile(0:20, 0.5)
10.0
julia> quantile(0:20, [0.1, 0.5, 0.9])
3-element Vector{Float64}:
2.0
10.0
18.000000000000004
julia> quantile(skipmissing([1, 10, missing]), 0.5)
5.5