我需要找到一种方法来获得自定义函数获得的估计的引导置信区间。现在,问题是我有一个大矩阵,我随机抽出一行,然后计算所需的数量。R中的自定义引导置信区间
这里是(希望)再现的示例
生成类似随机数据:
mat1 <- matrix(rnorm(300, 80, 20), nrow = 100)
函数来计算所期望的量(其中R是相关矩阵):
IIvar <- function(R) {
d <- eigen(R)$values
p <- length(d)
sum((d-1)^2)/(p*(p-1))}
My功能(omat是由mat1行组成的较小矩阵,freq是omat中的行数,numR是重复次数):
ciint <- function(omat, mat1, freq, numR) {
II <- IIvar(cor(omat))
n <- dim(mat1)[1]
b <- numeric(numR)
for (i in 1:numR) { b[i] <- IIvar(cor(mat1[sample(c(1:n),freq),]))}
hist(b)
abline(v = II, lty = 5, lwd = 3)
return(b) }
所得矢量b具有从MAT1随机选择的行(由数频率确定的)的矩阵可与IIvar从OMAT(与由人口成员选择的行的矩阵)进行比较得到的所有值。
在mat1中,我有5个种群(按行分组),我需要单独计算所有这些种群的IIvar,并为获得的值生成置信区间。
当我像这样运行
ciint(omat, mat1, 61, 1000)
我得到的值的分布,而“真正的” IIvar值的位置我ciint功能,但我不知道如何从这个95周%的时间间隔点。
伟大的建议,这正是我需要的。与此同时,我发现这个[网站](http://codealamode.blogspot.com/2013/08/bootstrap-confidence-interval-methods.html),其中列出了替代bootrstrap配置项以及R代码。你是否知道另一个与你的建议类似的软件包? –