在随机向量的多个实现列表中找到经验方差

时间:2014-12-12 20:03:54

标签: r

我已经使用以下命令创建了1000个随机向量实现的列表:

  

复制(1000,矩阵(rnorm(1 * 10,mean = 0,sd = 1),1,10))

然后,我想找到每个实现的经验方差。我试图在我的模拟数据上使用“var”函数,但是我收到一个错误,告诉我输入不是原子的。 任何人都可以帮助智能解决方案吗?

1 个答案:

答案 0 :(得分:0)

您可以在不创建3D阵列的情况下执行此操作。这是一个小例子:

# 3 realizations of a random vector
set.seed(1)
x = replicate(3, rnorm(5,mean=0,sd=1) )

           [,1]       [,2]       [,3]
[1,] -0.6264538 -0.8204684  1.5117812
[2,]  0.1836433  0.4874291  0.3898432
[3,] -0.8356286  0.7383247 -0.6212406
[4,]  1.5952808  0.5757814 -2.2146999
[5,]  0.3295078 -0.3053884  1.1249309

apply将函数应用于每列(在本例中)或矩阵或数据帧的行。在这种情况下,我们将var函数应用于矩阵x的每一列。要按行申请,请将MARGIN设置为1而不是2。

# Calculate variance of each random vector
apply(x, 2, var)

[1] 0.9235968 0.4473392 2.2466246