r中的人口差异

Yaz*_*ios 15 r variance

如何使用R计算数据的总体方差?

我看到有一个名为popvar的软件包,但我有版本0.99.892,我找不到软件包

Psi*_*dom 24

var()基数R中的函数计算样本方差,种群方差随样本方差的不同而不同n / n - 1.因此,计算总体方差的另一种方法是var(myVector) * (n - 1) / n,其中n是向量的长度,这是一个例子:

x <- 1:10
var(x) * 9 /10
[1] 8.25
Run Code Online (Sandbox Code Playgroud)

从人口方差的定义:

sum((x - mean(x))^2) / 10
[1] 8.25 
Run Code Online (Sandbox Code Playgroud)


Pat*_*ckT 7

您已经有一个很好的答案,但我想表明您可以轻松制作自己的便利功能。令人惊讶的是,base 中没有总体方差/标准差函数R。它在Excel/Calc和其他软件中可用。拥有这样的功能并不难。它可以被命名sdp或被sd.p调用sd(x, pop = TRUE)

这是没有类型检查的总体方差的基本版本:

  x <- 1:10
  varp <- function(x) mean((x-mean(x))^2)
  varp(x)
  ## [1] 8.25
Run Code Online (Sandbox Code Playgroud)

为了扩大规模,如果速度是一个问题,可以使用 colSums 和/或 colMeans(参见:https ://rdrr.io/r/base/colSums.html )