计算R中多个样本的置信区间

时间:2014-11-07 09:54:39

标签: r function matrix

这个问题是针对使用R统计包的多个样本的置信区间。

我创建了一个矩阵normsample = matrix(rnorm(25 * 100,man-6,sd = 3),25,100)。我也有这个功能:

>  CIfun <- function(x, alpha, x.var)
>     {
>         ## Computes a confidence interval for mu from X ~ N(mu, x.var)
>         ## x is a vector containing observations from X
>         ## 1-alpha is the desired confidence level
>         ## x.var is the assumed known variance for X
>         n <- length(x)                 # find the number of elements in x
>         x.mean <- mean(x)              # calculate the mean of x
>         z <- qnorm(1-alpha/2)          # appropriate z-value
>         lo <- x.mean - z*sqrt(x.var/n) # lower bound
>         hi <- x.mean + z*sqrt(x.var/n) # upper bound
>         return(c(lo, hi))              # return confidence interval as a vector
>     }

现在我被要求使用“apply”功能和CIfun来创建一个名为meanconf的2x100矩阵。对于尺寸为25的第i个样本,第i列应包含μ的90%置信区间,第一行的下限和第二行的上限。我可以理解他们要求我做什么,但我不知道如何创建这个矩阵。有任何想法吗? (我使用我的CIfun并应用函数,但我得到了整个矩阵的置信区间的值(因为x是一个矩阵)。但我想计算矩阵每个条目的置信区间)

1 个答案:

答案 0 :(得分:1)

可能有帮助:

Reduce(`+`,lapply(lst, function(x) #apply CIfun over individual list elements  
         apply(x, 2, CIfun, 0.10, 9)))/length(lst) 
                                   #get the mean

数据

set.seed(42)                      #set a seed
lst <- lapply(1:10, function(i)   #crete a list of matrices
      matrix(rnorm(25*100, mean=6, sd=3), 25, 100))