r 中的总体方差

问题描述 投票:0回答:5

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

我读到有一个名为 popvar 的包,但我有版本 0.99.892,但我找不到该包

r variance
5个回答
34
投票

基数 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 

9
投票

您已经有了一个很好的答案,但我想向您展示您可以轻松地创建自己的便利功能。令人惊讶的是,基数

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

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


2
投票

您可以在此处找到有关软件包

popvar
的详细信息:https://cran.r-project.org/web/packages/PopVar/index.html - 您可以使用命令安装它
install.packages("PopVar");
请注意名称区分大小写(大写 P、大写 V)。


2
投票

您可以使用以下函数计算总体方差:

pvar <- function(x) {
  sum((x - mean(x))**2) / length(x)
}

其中

x
是保存总体数据的数值向量。例如:

> x <- c(1, 3, 5, 7, 14)
> pvar(x)
[1] 20

0
投票

这是一个太晚的评论,但是,我想指出的是,可以通过总体平均值获得总体方差。我不认为给定的数据集是一个总体。

© www.soinside.com 2019 - 2024. All rights reserved.