【发布时间】:2012-05-14 06:46:17
【问题描述】:
我是一名统计学专业的学生和 R 初学者(轻描淡写),尝试为随机生成的正态分布样本生成多个置信区间作为作业的一部分。
我使用了函数
data <- replicate(25, rnorm(20, 50, 6))
从 N(50, 6^2) 分布(在双矩阵中)生成 25 个大小为 n=20 的样本。
我的问题是,如何为该分布的每个样本找到 95% 的置信区间?我知道我可以使用 colMeans(data) 和 sd(data) 来查找每个样本的样本均值和样本标准差,但是我脑子里放屁,试图想出一个可以为所有列生成置信区间的函数在双矩阵(数据)中。
到目前为止,我的(非常粗略的)解决方案包括创建函数
left <- function (x,y){x-(qnorm(0.975)*y/sqrt(20))}
right <- function (x,y){x+(qnorm(0.975)*y/sqrt(20))}
left(colMeans(data), sd(data)
right(colMeans(data), sd(data)
生成左右边界的 2 个向量。请让我知道是否有更好的方法可以做到这一点。
【问题讨论】:
-
除了一般的小修改之外,我继续修复了我认为是您的代码中创建函数
left和right的错字。如果您觉得我弄错了,请随时回滚。 -
嗯,如果您有一个仅基于测量平均值和 SD 的样本置信区间的通用公式,那么编写该公式的一个很好的矢量化 R 版本可以让您获得所有答案一次。或者,正如我的一位教授曾经说过的(在互联网出现之前),“不要解决问题:在书中找到类似的问题,然后做同样的事情!” :-)
标签: r confidence-interval