当我尝试执行
时StandardDeviation[{1}]
我收到错误
StandardDeviation::shlen: "The argument {1} should have at least two elements"
但是一个元素的标准是0,不是吗?
答案 0 :(得分:14)
标准偏差通常定义为方差无偏估算的平方根:
您可以轻松地看到,对于单个样本N=1
,您会得到0/0
,这是未定义的。因此,对于Mathematica中的单个样本,您的标准偏差是未定义的。
现在,根据您的约定,您可能希望为单个样本定义标准偏差(返回Null
或某个值或0
)。这是一个示例,向您展示如何为单个样本定义它。
std[x_List] := Which[(Length[x] == 1), 0, True, StandardDeviation[x]]
std[{1}]
Out[1]= 0
答案 1 :(得分:8)
常数的标准偏差为零。
一个样本的估计标准偏差未定义。
答案 2 :(得分:1)
如果你想要一些形式:
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 ProbabilityDistribution[]
:
dist = ProbabilityDistribution[DiracDelta[x - mu], {x, -Infinity, Infinity}];
{Mean[dist], StandardDeviation[dist]}
(*
-> { mu, ConditionalExpression[0, mu \[Element] Reals]}
*)
答案 3 :(得分:1)
如果您的人口规模是一个元素,那么您的人口的标准差将为0.但是通常标准偏差用于样本,而不是整个人口,因此不是除以总数中的元素数量。样本,除以元素数减一。这是由于对样本而非人口进行计算所固有的误差。
对1号人口进行标准差的计算绝对没有意义,我认为这是混乱的来源。如果您知道您的总体只包含一个元素,那么找出该元素的标准偏差是没有意义的,因此通常您会看到单个元素的标准偏差被写为未定义。
答案 4 :(得分:0)
标准偏差 - 衡量实际值与给定集合平均值之间的偏差 - 对于一个元素的列表没有任何意义(如果需要,可以将其设置为0)。 / p>