r - 从 R 中的正态分布样本生成多个置信区间

标签 r confidence-interval

我是一名统计学学生和 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 个向量。如果有更好的方法,请告诉我。

最佳答案

我想你可以使用t.test()函数。它返回给定数字向量的平均值和 95% 置信区间。

# Create your data
data <- replicate(25, rnorm(20, 50, 6))
data <- as.data.frame(data)

创建数据后,您可以使用 lapply() 函数将 t.test() 函数应用于所有列。

# Apply the t.test function and save the results
results <- lapply(data, t.test)

如果您只想查看返回的置信区间或平均值,您可以使用美元符号运算符来调用它们。例如,对于原始数据框的第一列,您可以键入以下内容:

# Check 95% CI for sample one
results[[1]]$conf.int[1:2]

您可以想出一种更 Eloquent 方式将这些数据保存到结果数据框中。请记住,您始终可以使用 str() 命令查看可以从对象中提取哪些单独的信​​息。例如:

# Example
example <- t.test(data[,1])
str(example)

希望这有帮助。请尝试此链接以获取更多信息:Using R to find Confidence Intervals

关于r - 从 R 中的正态分布样本生成多个置信区间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10453641/

相关文章:

r - 基于成功率填充的 stat_bin2d

r - 在knitr中将字符向量打印为LaTeX列表

python - 将置信区间计算为分位数

R 中的随机森林 : Is there a possibility of calculating casewise confidence intervals?

ggplot2 - 如何绘制 glm 模型(gamma 系列)的置信区间?

mysql - 按 mysql 中的置信度下限排序

r - 尝试使用 RSelenium chromedriver 时出现连接拒绝错误

r - 如何访问/复制 View 功能?

r - 在 Windows 上托管 Shiny 的应用程序

5 个拟合值的贝叶斯区间