我有困难的时候了解这些统计功能做的,以及它们如何工作。 我有一个更加困难的时间了解STDEV是如何工作的VS STDEVP和VAR equivelant。 是否有人可以打破这些分解成哑巴了吗?
Answer 1:
在统计学中的标准差和方差的措施多少与平均人口偏离(通常平均)标准差度量定义为方差的平方根和方差被定义为平均平方差从平均值,即:
对于一个人口规模为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;
进一步阅读维基百科文章: 标准deviatio n和贝塞尔修正 。
Answer 2:
STDDEV用于计算数据集的标准偏差。 STDDEVP是用来计算人口从你的数据样本的标准偏差。
如果输入的是整个人群,那么总体标准差计算与STDDEV。 更一般地,你的数据集是一个更大的人口样本。 在这种情况下,该数据集的标准偏差不会占人口的真实标准偏差,因为它通常会偏向太低。 与STDDEVP获得基于样本人群的标准偏差的更好的估计。
VAR和VARP的情况是一样的。
对于主题的更深入的讨论,请参阅此Wikipedia文章 。
文章来源: Understanding T-SQL stdev, stdevp, var, and varp