引导矩阵的元素

问题描述 投票:-1回答:1

我有一个获取数据并创建方矩阵M的过程,其中M的元素对应于数据的某些特征。我希望得到矩阵的每个元素的置信区间,以测量我估计的每个特征周围的不确定性。为此,我想引导,所以我在R中初始化一个列表,重新采样我的数据,并将结果矩阵存储在列表中。那么我如何估计每个元素的95%置信区间?

例如,假设我的原始矩阵M是10乘10,并且自举矩阵列表是

mylist <- list()
for(i in 1:1000){
    boot_matrices[[i]] <- matrix(rnorm(10*10, mean=0, sd=1), nrow=10, ncol=10)
}

我希望通过使用1000个自举矩阵来计算M中每个(i,j)元素周围的置信区间,其中i = 1 ... 10且j = 1 ... 10。在这个玩具示例中,我知道每个(i,j)元素的参数分布,并且我希望每个元素的95%置信区间在(-1.96,1.96)附近。但是,在我的实际数据中,我不知道多少,我不想假设(因此,使用bootstrap)。在这种情况下,有没有办法自动计算每个矩阵元素周围的置信区间?

r matrix quantile percentile
1个回答
0
投票

这样的事怎么样?

创建nBS bootstrap 10x10矩阵(我使用set.seed(...)来确保样本数据的可重复性)。生成的矩阵存储在list中。

# List of bootstrap matrices
nBS <- 1000;
set.seed(2017);
lst <- lapply(1:nBS, function(x) 
    matrix(rnorm(10 * 10, mean = 0, sd = 1), nrow = 10, ncol = 10));

计算所有bootstrap样本中每个矩阵元素(i,j)的平均值和标准差:

# Calculate mean and sd of every matrix element (i,j)
mat.mean <- apply(simplify2array(lst), c(1, 2), mean);
mat.sd <- apply(simplify2array(lst), c(1, 2), sd);

计算95%置信区间为mean +- 1.96 * sem

# Calculate lower and upper 95% confidence interval
mat.lowerCI <- mat.mean - 1.96 * mat.sd / sqrt(nBS);
mat.upperCI <- mat.mean + 1.96 * mat.sd / sqrt(nBS);

显示mat.mean

mat.mean;
             [,1]         [,2]          [,3]         [,4]         [,5]
[1,] -0.011862801 -0.017872385 -2.059780e-02 -0.056602452 -0.077408704
[2,]  0.083863805 -0.057467756 -7.920189e-03  0.001923072 -0.010616517
[3,] -0.021193913 -0.021594100 -3.069827e-03  0.082500345 -0.015010818
[4,] -0.001063529 -0.028606045  6.366336e-02  0.021871973  0.014491280
[5,] -0.042912905 -0.020031203  7.075698e-03  0.032309070  0.051875125
[6,] -0.028336190 -0.055650895 -1.119998e-02 -0.030252861 -0.008670326
[7,]  0.006555878 -0.008686383 -1.928690e-02 -0.027290181 -0.002037219
[8,]  0.001513634 -0.057669094 -6.025466e-03  0.028409560  0.052159330
[9,]  0.044741065 -0.026265301  3.915427e-02 -0.011599341  0.006817949
[10,]  0.035356686 -0.039949595 -5.468612e-05  0.007272050  0.013150241
[,6]          [,7]         [,8]         [,9]         [,10]
[1,]  0.054420568  0.0050127337 -0.046358349 -0.029833662 -0.0525282034
[2,] -0.033703118 -0.0623761140 -0.029511715 -0.048816905 -0.0189984349
[3,] -0.013218223 -0.0278959480 -0.036351073  0.028833428 -0.0001538902
[4,]  0.029236408 -0.0046022995  0.019077031  0.069887669 -0.0283910941
[5,] -0.035474785  0.0372263523  0.021329823  0.006252149  0.0395028012
[6,]  0.008978299  0.0266740599 -0.006252266 -0.005793750  0.0072594645
[7,]  0.092958577  0.0047135528  0.019320387  0.011766436 -0.0021045223
[8,]  0.014867452 -0.0001325218  0.014760887 -0.027671024  0.0610503856
[9,] -0.031151561  0.0373095832  0.016197685 -0.050206244 -0.0561044648
[10,]  0.059817479 -0.0669659941  0.020218135 -0.039548025  0.0115156843

mat.lowerCImat.upperCI中给出了较低和较高的95%置信区间。

© www.soinside.com 2019 - 2024. All rights reserved.