4

我试图找到矩阵列的平均值、平均值±标准偏差和某些分位数(5%、50%、95%)。

矩阵的尺寸为 10*20(行表示样本数,列表示时间):

在此处输入图像描述

现在,从这个数据集中,我想找到上面的分位数。我尝试了以下方法:

在此处输入图像描述

但是这些函数只给了我一个值。我希望每次都能获得上述方法(均值、标准差、分位数) 。

然后,我们如何绘制一个图表,其中x 轴是时间tt =1 到t =20),y 轴是基金价值,并显示所有 5 条线(平均值,平均值 ± 标准差,5% 分位数, 50% 分位数和 95% 分位数)。

非常感谢您的帮助。

非常感谢

4

1 回答 1

5

apply将允许您将函数应用于矩阵的每一行或每一列。您定义矩阵、要应用的维度(行=1,列=2)、函数(例如quantile)以及函数的附加参数。

例子:

set.seed(1)
Fund <- matrix(rnorm(20*10), ncol=20, nrow=10)
qs <- apply(Fund, 2, quantile, probs=c(0.05, 0.5, 0.95))
qs
ylim=range(qs)
plot(seq(ncol(Fund)), qs[1,], t="l", lty=2, ylim=ylim) #5%
lines(seq(ncol(Fund)), qs[2,], lty=1, lwd=2) #50%
lines(seq(ncol(Fund)), qs[3,], lty=2, col=2)  #95%
legend("topleft", legend=rev(rownames(qs)), lwd=c(1,2,1), col=c(2,1,1), lty=c(2,1,2))

在此处输入图像描述

于 2013-11-03T16:07:14.833 回答