# std


样本标准差

函数库: TySymbolicMath

# 语法

std(itr; corrected::Bool=true, mean=nothing[, dims])

# 说明

std(itr; corrected::Bool=true, mean=nothing[,dims])计算迭代器itr的样本标准差。如果itr是AbstractArray,则可以提供dims来计算指定维度上的标准差,并且均值可能包含itr的每个维度的均值。示例

# 示例

向量的标准差

创建由符号变量组成的向量 A。

using TySymbolicMath
using TyMath
@variables a b c
A = [a, b, c]
3-element Vector{Num}:
a
b
c

计算向量 A 的标准差。默认情况下,计算样本标准差的无偏估计。

std(A)
sqrt((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。

std(A, corrected = false)
sqrt((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

直接计算矩阵的标准差,即计算矩阵按索引排列的向量的标准差。

std(B)
sqrt((1//3)*(abs2(a - (1//4)*(a + b + c + d)) + abs2(-(1//4)*(a + b + c + d) + b) + abs2(-(1//4)*(a + b + c + d) + d) + abs2(-(1//4)*(a + b + c + d) + c)))

按列计算矩阵的标准差。

std(B, dims = 1)
1×2 Matrix{Num}:
sqrt(abs2(a - (1//2)*(a + c)) + abs2(-(1//2)*(a + c) + c))  sqrt(abs2(-(1//2)*(b + d) + b) + abs2(-(1//2)*(b + d) + d))

按行计算矩阵的标准差。

std(B, dims = 2)
2×1 Matrix{Num}:
sqrt(abs2(-(1//2)*(a + b) + b) + abs2(a - (1//2)*(a + b)))
sqrt(abs2(-(1//2)*(c + d) + c) + abs2(-(1//2)*(c + d) + d))
含 NaN 或 missing 的标准差

包含 NaN 的标准差,将 NaN 作为其中一个变量。

using TySymbolicMath
using TyMath
@variables x y
std([x, y, NaN])
sqrt((1//2)*(abs2(-(1//3)*(NaN + x + y) + x) + abs2(NaN - (1//3)*(NaN + x + y)) + abs2(-(1//3)*(NaN + x + y) + y)))

包含 missing 的标准差,返回结果 missing。

@variables x y
std([x, y, missing])
missing

用 skipmissing 函数忽略 missing 后计算非缺失值的标准差。

std(skipmissing([x, y, missing]))
sqrt((-x + y)*(-(1//2)*(-x + y) - x + y))

# 输入参数

itr - 迭代器
符号向量 | 符号矩阵 | 符号多维数组

迭代器,指定为符号变量或表达式的向量、矩阵或多维数组。

corrected - 估计方式
布尔值

估计方式,指定为布尔值 true 或 false。当 corrected = true(默认)时,std 执行无偏估计,即

当 corrected = false 时,执行

mean - 样本均值
符号标量 | 符号向量

样本均值,指定为符号变量或表达式或其向量。std 输入时可以提供预先计算的平均值。当指定了 dims 时,mean 必须是一个与 mean(itr, dims=dims) 具有相同形状的数组(允许额外的单例维度)。

dims - 沿其运算的维度
正整数标量

沿其运算的维度,指定为正整数标量。输入时 “dims=” 不能省略。

维度 dims 表示长度减至 1 的维度。以一个二维输入数组 A 为例。

  • 如果 dims = 1,则 std(A, dims = 1) 返回包含每一列中元素的标准差的行矩阵。
  • 如果 dims = 2,则 std(A, dims = 2) 返回包含每一行中元素的标准差的列矩阵。

# 详细信息

标准差

对于由 n 各标量观测值组成的随机变量 X,标准差定义为

其中 μ 是 X 的均值:

标准差是方差的平方根。有些标准差的定义使用 n 而非 n-1 的归一化因子,您可以通过设定 corrected 参数来进行指定。

# 另请参阅

mean | mean! | stdm | cov | cor | var | varm