# cov
协方差
函数库: TySymbolicMath
# 语法
cov(x::AbstractVector; corrected::Bool=true)
cov(X::AbstractMatrix; dims::Int=1, corrected::Bool=true)
cov(x::AbstractVector, y::AbstractVector; corrected::Bool=true)
cov(X::AbstractVecOrMat, Y::AbstractVecOrMat; dims::Int=1, corrected::Bool=true)
# 说明
cov(x::AbstractVector; corrected::Bool=true) 计算向量 x 的方差。 如果 corrected 为 true (默认值),则总和按 n-1 缩放;而如果 corrected 为 false ,则总和按 n 缩放,其中 n = length(x)。 示例
cov(X::AbstractMatrix; dims::Int=1, corrected::Bool=true) 计算矩阵 X 沿维度 dims 的协方差矩阵。如果 corrected 为 true (默认值),则总和按 n-1 缩放;而如果 corrected 为 false ,则总和按 n 缩放,其中 n = size(X, dims)。 示例
cov(x::AbstractVector, y::AbstractVector; corrected::Bool=true) 计算向量 x 和 y 之间的协方差。 如果 corrected 为 true (默认值),计算
cov(X::AbstractVecOrMat, Y::AbstractVecOrMat; dims::Int=1, corrected::Bool=true) 计算向量或矩阵 X 和 Y 沿维度 dims 之间的协方差。如果 corrected 为 true (默认值),则总和按 n-1 缩放;而如果 corrected 为 false ,则总和按 n 缩放,其中 n = size(X, dims) = size(Y, dims)。 示例
# 示例
向量的方差
创建由符号变量组成的向量 A。
using TySymbolicMath
using TyMath
@variables a b c
A = [a, b, c]
3-element Vector{Num}:
a
b
c
计算向量 A 的方差。默认情况下,计算样本方差的无偏估计。
cov(A)
(1//2)*(abs2(-(1//3)*(a + b + c) + b) + abs2(-(1//3)*(a + b + c) + c) + abs2(a - (1//3)*(a + b + c)))
当方差的归一化因子设定为 n 而非 n-1 时,设置 corrected = false。
cov(A, corrected = false)
(1//3)*(abs2(-(1//3)*(a + b + c) + b) + abs2(-(1//3)*(a + b + c) + c) + abs2(a - (1//3)*(a + b + c)))
矩阵的协方差
创建由符号变量组成的矩阵 B。
using TySymbolicMath
using TyMath
@variables a b c d
B = [a b; c d]
2×2 Matrix{Num}:
a b
c d
计算矩阵的协方差。
cov(B)
2×2 Matrix{Num}:
(a - (1//2)*(a + c))^2 + (-(1//2)*(a + c) + c)^2 (-(1//2)*(a + c) + c)*(-(1//2)*(b + d) + d) + (a - (1//2)*(a + c))*(-(1//2)*(b + d) + b)
(-(1//2)*(a + c) + c)*(-(1//2)*(b + d) + d) + (a - (1//2)*(a + c))*(-(1//2)*(b + d) + b) (-(1//2)*(b + d) + d)^2 + (-(1//2)*(b + d) + b)^2
向量与向量的协方差
计算两向量之间的协方差,即在默认的无偏估计下,计算
其中 * 表示复共轭, n = length(x) = length(y)。
例如,创建两个符号变量的向量,并计算它们的协方差。
using TySymbolicMath
using TyMath
@variables a b c d
A = [a, b]
B = [c, d]
cov(A, B)
(-(1//2)*(a + b) + b)*(-(1//2)*(c + d) + d) + (a - (1//2)*(a + b))*(-(1//2)*(c + d) + c)
向量与矩阵的协方差
计算向量 A 与矩阵 B 的协方差,即向量 A 与矩阵每一列求协方差。
using TySymbolicMath
using TyMath
@variables x y a b c d
A = [x, y]
B = [a b; c d]
cov(A, B)
1×2 transpose(::Vector{Num}) with eltype Num:
(-(1//2)*(a + c) + c)*(-(1//2)*(x + y) + y) + (a - (1//2)*(a + c))*(-(1//2)*(x + y) + x) (-(1//2)*(b + d) + b)*(-(1//2)*(x + y) + x) + (-(1//2)*(b + d) + d)*(-(1//2)*(x + y) + y)
# 输入参数
x, y - 输入向量符号向量
输入向量,指定为符号变量或表达式的向量。
X, Y - 输入向量或矩阵符号向量 | 符号矩阵
输入向量或矩阵,指定为符号变量或表达式的向量或矩阵。
corrected - 估计方式布尔值
估计方式,指定为布尔值 true 或 false。当 corrected = true(默认)时,std 执行无偏估计,即
其中 * 表示复共轭, n = length(x) = length(y)。
当 corrected = false 时,执行
dims - 沿其运算的维度正整数标量
沿其运算的维度,指定为正整数标量。输入时 “dims=” 不能省略。
# 详细信息
协方差
对于两个随机可变向量 A 和 B,协方差定义为
其中
两个随机变量的协方差矩阵是每个变量间成对的协方差计算结果的矩阵:
对于矩阵 A,它的列是由观测值组成的随机变量,其协方差矩阵就是每个列组合之间的成对协方差计算结果。换言之
方差
对于由 n 各标量观测值组成的随机变量 X,方差定义为
其中 μ 是 X 的均值:
标准差是方差的平方根。有些标准差的定义使用 n 而非 n-1 的归一化因子,您可以通过设定 corrected 参数来进行指定。