【问题标题】:sample variance样本方差
【发布时间】:2021-02-06 22:53:50
【问题描述】:
function(x) var(sum(((x - mean(x))^2)/(n - 1)))

这是我的功能,但它似乎不起作用。 我们可以在函数中使用 var 吗?

【问题讨论】:

    标签: r variance


    【解决方案1】:

    除非我弄错了,否则这比您想象的要困难得多;您无法按照您尝试的方式直接计算它。 (提示:当您使用 sum() 时,您会得到长度为 1 的单个值/向量,因此该向量的样本方差为 NA。)This post on Mathematics Stack Exchange 得出样本方差的方差为 mu_4/n - sigma^4*(n-3)/(n*(n-1)),其中mu_4第四中心矩;您还可以看到this post on CrossValidatedthis Wikipedia page(不同的推导根据第四中心矩、峰度或超峰度来表示结果......)所以:

    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 倍。我的猜测是估计本身是高度可变的(这并不奇怪,因为它取决于第四时刻......)(我尝试了上面的估计方法几次,它确实看起来确实高度可变......)

    【讨论】:

    • 非常感谢您的帮助!我将不得不对此进行更多了解:)
    猜你喜欢
    • 2014-05-16
    • 2023-03-17
    • 2019-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-14
    • 2017-02-19
    相关资源
    最近更新 更多