2009-09-21 246 views
8

我很難理解這些統計函數的功能以及它們的工作方式。我有一個更難以理解stdev如何工作vs stdevp和var equivelant。有人可以把它們分解爲啞嗎?瞭解T-SQL stdev,stdevp,var和varp

+1

你不明白這些功能是做什麼的,或者你不確定標準偏差或變體是什麼?換句話說,您是否需要T-SQL或統計信息(或兩者兼而有之)的幫助? – 2009-09-21 16:21:16

+0

我需要了解T-SQL和統計方面 – 2009-09-23 14:30:25

回答

23

統計中標準偏差和方差是指總體中的度量偏離平均值的多少(通常是平均值)。 標準偏差定義爲方差的平方根,方差定義爲從平均的平均的平方差,即:

對於人口大小爲n的:X1,X2,...,XN 均值:xmean

STDEVP = SQRT(((X1-xmean)^2 +(x2-xmean)^ 2 + ... +(xn-xmean)^ 2)/ n)

整個人口不可用(大部分時間),通常應用貝塞爾的修正來更好地估計整個人口的實際標準偏差。當計算方差時,貝塞爾的校正僅僅被n-1而不是n除,即:

(等式xn-xmean)^ 2)/(n-1))

請注意,對於足夠大的數據集,使用哪個函數並不重要。

您可以通過運行下面的T-SQL腳本驗證我的回答:standard deviatio n和Bessel's Correction

-- 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; 

進一步閱讀維基百科文章。

-3

STDDEV用於計算數據集的標準偏差。 STDDEVP用於計算您的數據爲樣本的總體的標準偏差。

如果你的輸入是整個人口,那麼總體標準差是用STDDEV來計算的。更典型的是,你的數據集是一個更大的人口樣本。在這種情況下,數據集的標準偏差不會代表總體的真實標準偏差,因爲它通常偏低。使用STDDEVP可以更好地估計基於樣本的總體標準偏差。

VAR和VARP的情況是相同的。請參閱this Wikipedia article

+1

我不確定SQL,但這似乎與STDEV和STDEVP的Excel定義不一致。維基百科的文章解釋瞭如何通過計算樣本的實際標準偏差(除以n)來低估總體標準偏差,並且因此它通常被校正(除以n-1)。 STDEVP是(n)[http://office.microsoft.com/en-us/excel-help/stdevp-HP005209281.aspx?CTT=1]和STDEV是(n-1)[http://office.microsoft .COM/EN-US/Excel的幫助/ STDEV-HP005209277.aspx?CTT = 1]。 – 2010-07-05 20:01:42

+1

說明是向後的。 STDDEV是當你只有一個樣本,STDDEVP是當你有完整的人口。 – 2011-08-26 15:30:08