R语言的差异结果不同

Dar*_*lyn -1 statistics r variance

我有61个条目的数据集.我想要做的是计算方差.

我是用两种方式做的,但它们不同

第一种方式是跟随

$ var X = E(X ^ {2}) - (EX)^ {2} $

所以

> c = 0

> for( year in females$Salary )
+     c = c + (year^2)
> (c/length(females$Salary) - mean(females$Salary)^2
[1] 286682.3
Run Code Online (Sandbox Code Playgroud)

但是当我使用build in function

> var(females$Salary)
[1] 291460.3
Run Code Online (Sandbox Code Playgroud)

你可以看到输出是不同的.为什么会这样?它们不一样吗?

Lyz*_*deR 5

  • var在R中使用方差的无偏估计(样本方差),其分母为n-1.

  • 您的计算使用方差公式.

检查一下:

vec <- 1:100

#var uses the sample variance where the denominator is n-1 i.e. 99
var(vec)
#[1] 841.6667
1 / 99 * sum((vec - mean(vec))^2)
#[1] 841.6667

#this is what you use to calculate variance, which uses a denominator of n i.e. 100
mean(vec^2) - mean(vec)^2
#[1] 833.25
1 / 100 * sum((vec - mean(vec))^2)
#[1] 833.25
Run Code Online (Sandbox Code Playgroud)