Wolfram mathematica 一个元素的标准偏差

Wolfram mathematica 一个元素的标准偏差,wolfram-mathematica,Wolfram Mathematica,当我试图执行 StandardDeviation[{1}] 我犯了一个错误 StandardDeviation::shlen: "The argument {1} should have at least two elements" 但是一个元素的std是0,不是吗?标准偏差-这是一种测量实际值与给定集合平均值之间的偏差的方法-对于一个元素的列表来说没有任何意义(如果您愿意,可以将其设置为0)。常数的标准偏差是零 一个样本的估计标准偏差未定义。标准偏差通常定义为方差无偏估计值的平方根: 您

当我试图执行

StandardDeviation[{1}]
我犯了一个错误

StandardDeviation::shlen: "The argument {1} should have at least two elements"

但是一个元素的std是0,不是吗?

标准偏差-这是一种测量实际值与给定集合平均值之间的偏差的方法-对于一个元素的列表来说没有任何意义(如果您愿意,可以将其设置为0)。

常数的标准偏差是零


一个样本的估计标准偏差未定义。

标准偏差通常定义为方差无偏估计值的平方根:

您可以很容易地看到,对于单个样本,
N=1
,您会得到未定义的
0/0
。因此,Mathematica中单个样本的标准偏差未定义

现在,根据您的约定,您可能需要为单个样本定义标准偏差(返回
Null
或某个值或
0
)。下面的示例演示如何为单个示例定义它

std[x_List] := Which[(Length[x] == 1), 0, True, StandardDeviation[x]]
std[{1}]
Out[1]= 0

如果您需要一些形式:

p[x_] := DiracDelta[x - mu];
expValue = Integrate[x p[x] , {x, -Infinity, Infinity}]
stdDev = Sqrt[Integrate[(x - expValue)^2 p[x] , {x, -Infinity, Infinity}]]

(*
-> ConditionalExpression[mu, mu \[Element] Reals]
-> ConditionalExpression[0, mu \[Element] Reals]
*)
编辑

或者更好,使用Mathematica
概率分布[]

dist = ProbabilityDistribution[DiracDelta[x - mu], {x, -Infinity, Infinity}];
{Mean[dist], StandardDeviation[dist]}

(*
 -> { mu, ConditionalExpression[0, mu \[Element] Reals]}
*)

如果总体规模为一个元素,则总体的标准偏差为0。但是,标准偏差通常用于样本,而不是用于整个总体,因此,不是除以样本中的元素数,而是除以元素数减去1。这是由于对样本而不是总体执行计算时固有的错误


对一个大小为1的总体进行标准差计算是完全没有意义的,我认为这就是造成混淆的原因。如果您知道您的总体只包含一个元素,那么找出该元素的标准偏差是毫无意义的,因此通常您会看到单个元素的标准偏差写为未定义。

我不理解这一点。一组元素的平均值等于该元素,因此偏差为0。这是一个退化的情况,但仍然存在该情况的值。不,您得到
sqrt((1-1)*(1-1)/(1-1))
=
sqrt(0/0)
=
未定义的
。如果你不知道平均值,你必须除以
n-1
。。注意除以(长度[list]-1)的部分。。。所以我想这是一个实现choice@moodywoody这不是一个实现选择。除以n-1通常用于计算样本的无偏标准偏差。请看:我同意你的观点,但建议你通过展示人口的s.d.和样本的s.d.公式,使你的推理更加明确。您对moodywoody的评论是一个很好的开始。对于样本的STDEV(
1/(N-1)
),这是正确的,但对于总体的STDEV,有一个
1/N
,因此STDEV将为零。这一点已在公认答案的评论中提到。1号样本的标准偏差为0(在公式中使用$\sigma$并除以$N$),而1号样本的标准偏差为无限(在公式中使用$s$并除以$N-1$)。