我很难理解这些统计功能的作用以及它们的工作原理。我有更难以理解stdev如何与stdevp和var equivelant一起工作。有人可以帮我把这些打成愚蠢吗?
答案 0 :(得分:24)
统计数据标准偏差和方差是衡量人口中度量偏离平均值(通常是平均值)的指标。 标准差定义为方差的平方根,方差定义为与平均值的平方差的平均值,即:
对于大小为n的种群:x1,x2,...,xn 用mean: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;
进一步阅读维基百科文章:standard deviatio n和Bessel's Correction。
答案 1 :(得分:-3)
STDDEV用于计算数据集的标准偏差。 STDDEVP用于计算数据样本的总体标准偏差。
如果您的输入是整个总体,则使用STDDEV计算总体标准差。更典型的是,您的数据集是更大人口的样本。在这种情况下,数据集的标准偏差不代表人口的真实标准偏差,因为它通常偏差太低。使用STDDEVP可以更好地估算基于样本的总体标准差。
VAR和VARP的情况是一样的。
有关该主题的更全面讨论,请参阅this Wikipedia article。