【问题标题】:Trouble computing variance计算方差的麻烦
【发布时间】:2019-03-30 09:02:01
【问题描述】:

我正在尝试手动计算 R 中矩阵内的方差,但我遇到了一些问题,因为我得到了不正确的维数。

我有 x,一个 12x250 矩阵,Temp.means,一个 12x1 矩阵,我将它提供给一个带有 for 的函数。

我基本上想要 x 的方差,所以我正在使用 apply 函数来尝试将我的方差函数应用于我的代码...但是出现了问题。

这是我的代码:

Variance.fun <- function(x,Temp.means) {
for (i in 1:250) {
     vari <- (matrix(x[i,]-Temp.means)^2)/250
 }
 }

【问题讨论】:

  • 请让这个问题可重现。这包括样本数据(例如,dput(head(x)))、警告/错误的文字文本以及预期的输出。参考:stackoverflow.com/questions/5963269stackoverflow.com/help/mcvestackoverflow.com/tags/r/info
  • 如果你只需要每行的方差,为什么不apply(my_matrix, 1, var)
  • x的方差一般理解为一个12×12的矩阵。函数var(x) 有你想要的输出吗?如果没有,也许您可​​以解释一下您的需求有何不同。

标签: r function for-loop statistics apply


【解决方案1】:

如果“差异”是指与“标准行”的行差异(如您的 for 循环所建议的那样),那么获得该差异的一种方法是使用 apply

res <- apply( x, 1, "-", Temp.means)

这可以做成一个函数:

 row.variation.from.std <- function (mat, std){
                            apply( mat, 1, "-", std) }

我怀疑您对“方差”一词的使用误导了一些潜在的响应者,他们认为您指的是统计实践中定义的概念。

【讨论】:

    猜你喜欢
    • 2016-08-06
    • 1970-01-01
    • 2013-02-11
    • 1970-01-01
    • 2011-12-09
    • 2020-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多