function(x) var(sum(((x - mean(x))^2)/(n - 1)))这是我的职责,但似乎行不通。是否允许在函数中使用var?
发布于 2021-02-06 23:08:10
除非我搞错了,否则这比你想的要困难得多;你不能用你想要的方式直接计算它。(提示:当取sum()时,得到一个长度为1的值/向量,因此该向量的样本方差为NA。) 这篇关于数学堆栈交换的文章导出样本方差的方差为mu_4/n - sigma^4*(n-3)/(n*(n-1)),其中mu_4是第四个中心时刻;您还可以看到这篇文章发表在CrossValidated上或这个维基百科页面 (不同的导子以第四中心矩、峰度或过剩峰度.)表示结果.所以:
set.seed(101)
r <- rnorm(100)
mu_4 <- mean((r-mean(r))^4)
sigma_4 <- var(r)^2
n <- length(r)
mu_4/n - sigma_4*(n-3)/(n*(n-1)) ## 0.01122小心:
var(replicate(100000,var(rnorm(100))))大约有0.0202。至少它不是错误的数量级,但是它是一个与上面的例子不同的2的因子。我的猜测是,估计本身是高度可变的(这并不奇怪,因为它取决于第四分钟.)(我尝试了以上几次的估计方法,它确实看起来是高度可变的.)
https://stackoverflow.com/questions/66082826
复制相似问题