gpt4 book ai didi

r - 为什么 var() 函数给出的答案与我计算的方差不同?

转载 作者:行者123 更新时间:2023-12-03 20:28:40 27 4
gpt4 key购买 nike

我不确定这是否应该放在 SO 或其他一些 .SE 中,所以如果这被认为是题外话,我会删除。

我有一个向量,我正在尝试使用以下方程“手动”计算方差(意思是基于方差的定义,但仍在 R 中执行计算):V[X] = E[X^2] - E[X]^2哪里E[X] = sum (x * f(x))E[X^2] = sum (x^2 * f(x))
但是,我计算的方差与 var() 不同。 R 具有的功能(我用来检查我的工作)。为什么是var()功能不同?它是如何计算方差的?我已经多次检查我的计算,所以我对我计算的值相当有信心。我的代码如下。

vec <- c(3, 5, 4, 3, 6, 7, 3, 6, 4, 6, 3, 4, 1, 3, 4, 4)
range(vec)
counts <- hist(vec + .01, breaks = 7)$counts
fx <- counts / (sum(counts)) #the pmf f(x)
x <- c(min(vec): max(vec)) #the values of x
exp <- sum(x * fx) ; exp #expected value of x
exp.square <- sum(x^2 * fx) #expected value of x^2
var <- exp.square - (exp)^2 ; var #calculated variance
var(vec)

这给了我 2.234 的计算方差,但 var()函数表示方差为 2.383。

最佳答案

虽然 V[X] = E[X^2] - E[X]^2 是总体方差(当向量中的值是整个总体,而不仅仅是样本时),var函数计算总体方差(样本方差)的估计量。

关于r - 为什么 var() 函数给出的答案与我计算的方差不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28637908/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com