2016-06-09 73 views
5

如何使用R來計算我的數據的總體方差?r的人口差異

我看有一個包叫做popvar但我有版本0.99.892,我沒有找到包

+1

什麼軟件有版本0.99.892的?目前的R版本是3.3.0。也許RStudio?不要混淆R和RStudio - RStudio只是編寫R代碼的工具。 – Gregor

+2

默認情況下,R的'var'函數除以n-1。將var的輸出乘以(n-1)/ n會得到你想要的結果。 – Dason

回答

11

基數R中的var()函數計算樣本方差,並且總體方差與樣本方差的差異因子爲n/n - 1。因此,要計算總體方差的替代將是var(myVector) * (n - 1)/n其中n是向量的長度,這裏有一個例子:

x <- 1:10 
var(x) * 9 /10 
[1] 8.25 

從總體方差的定義:

sum((x - mean(x))^2)/10 
[1] 8.25 
1

你可以找到包popvar這裏的細節:https://cran.r-project.org/web/packages/PopVar/index.html - 您可以使用安裝命令install.packages("PopVar");請注意,名稱區分大小寫(大寫字母P,大寫V)。

+0

如果你解釋如何使用它會很有幫助。我嘗試** PopVar(c(1,2,3))**並得到錯誤:*錯誤:找不到函數「PopVar」*。 –

0

你已經有一個很大的回答,但我想表明,您可以輕鬆地創建自己的便利功能。令人驚訝的是,基數R中不存在總體方差/標準偏差函數。它可在Excel/Calc和其他軟件。具備這樣的功能並不困難。它可以被命名爲sdpsd.psd(x, pop = TRUE)

這裏被調用的總體方差的無類型檢測的基本版本:

x <- 1:10 
    varp <- function(x) mean((x-mean(x))^2) 
    varp(x) 
    ## [1] 8.25 

爲了擴大,如果速度是一個問題,colSums和/或colMeans可能會使用(請參閱:https://rdrr.io/r/base/colSums.html

+0

同樣令人驚訝的是,沒有偏差(有/無調整)或峯度或原始時刻以''R''爲基礎...... – PatrickT