R语言的方差结果不同
Variance result differ in R language
我有包含 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
但是当我使用内置函数时
> var(females$Salary)
[1] 291460.3
如您所见,输出不同。为什么会这样?他们不应该是一样的吗?
R中的var
使用分母为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
我有包含 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
但是当我使用内置函数时
> var(females$Salary)
[1] 291460.3
如您所见,输出不同。为什么会这样?他们不应该是一样的吗?
-
R中的
var
使用分母为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