在统计学中,标准差和方差是衡量一个群体中一个指标偏离平均值(通常是平均值)多少的指标。
标准差定义为方差的平方根,方差定义为与平均值的平方差的平均值,即:
对于大小为n的人群:x1,x2,…,xn
平均值:xmean
stdevp=sqrt((x1 xmean)^2+(x2 xmean)^2+…+(xn xmean)^2)/n)
当整个人群的数值不可用时(大多数情况下),通常采用贝塞尔修正法来更好地估计整个人群的实际标准偏差。在计算方差时,贝塞尔的修正只是除以n-1而不是n,即:
stdev=sqrt((x1 xmean)^2+(x2 xmean)^2+…+(xn xmean)^2)/(n-1)
注意,对于足够大的数据集,使用哪个函数并不重要。
您可以通过运行以下T-SQL脚本来验证我的答案:
-- temporary data set with values 2, 3, 4
declare @t table([val] int);
insert into @t values
(2),(3),(4);
select avg(val) as [avg], -- equals to 3.0
-- Estimation of the population standard devisation using a sample and Bessel's Correction:
-- ((x1 - xmean)^2 + (x2 - xmean)^2 + ... + (xn-xmean)^2)/(n-1)
stdev(val) as [stdev],
sqrt( (square(2-3.0) + square(3-3) + square(4-3))/2) as [stdev calculated], -- calculated with value 2, 3, 4
-- Population standard deviation:
-- ((x1 - xmean)^2 + (x2 - xmean)^2 + ... + (xn-xmean)^2)/n
stdevp(val) as [stdevp],
sqrt( (square(2-3.0) + square(3-3) + square(4-3))/3) as [stdevp calculated] -- calculated with value 2, 3, 4
from @t;