在 R 脚本中确定 n 个样本大小以拒绝 alpha = 0.01 的空值
Posted
技术标签:
【中文标题】在 R 脚本中确定 n 个样本大小以拒绝 alpha = 0.01 的空值【英文标题】:Determining the n sample size to reject null at alpha =0.01 in R script 【发布时间】:2022-01-13 03:39:16 【问题描述】:创建一个包含 100 个观察值的模拟数据集,其中 x 是一个随机正态变量,平均值为 0,标准差为 1,y = 0.1 + 2 * X + e,其中 epsilon 也是一个随机正态误差,平均值为 0 和 sd 1.
set.seed(1)
# simulate a data set of 100 observations
x <- rnorm(100)
y.1 <- 0.1 + 2*x + rnorm(100)
现在提取前 5 个观察值。
y1.FirstFive <- (y.1[1:5]) # extract first 5 observations from y
x.FirstFive <- (x[1:5]) # extract first 5 observations from x
y1.FirstFive # extracted 5 observations from y1
[1] -1.7732743 0.5094025 -2.4821789 3.4485904 0.1044309
x.FirstFive # extracted 5 observations from x
[1] -0.6264538 0.1836433 -0.8356286 1.5952808 0.3295078
假设您从前五个观察值计算的样本的平均值和标准偏差不会改变,那么您需要能够得出总体的真实平均值不同于0 在 p = 0.01 的置信水平上?
alpha <- 0.01
mu <- 0
for (i in 5:2000)
# Recalculate the standard error and CI
stand_err <- Sd_y1 / sqrt(i)
ci <- sample_mean_y1 + c(qt(alpha/2, i-1), qt(1-alpha/2, i-1))*stand_err
if (ci[2] < mu)
break # condition met, exit loop
i
[1] 2000
在这里,我编写了一个循环,将 n 从初始 n=5 迭代增加到 n=2000,使用 pt 找到 p 值(给定一个固定的 y-bar 和 sd),并在 p
附加信息:y1.FirstFive 的 sd = 2.3 和 y1.FirstFive 的平均值 = -0.04【问题讨论】:
【参考方案1】:假设:
Sd_y1 = sd(y1.FirstFive)
sample_mean_y1 = mean(y1.FirstFive)
sample_mean_y1
[1] -0.03860587
正如@jblood94 所指出的,您需要更大的样本量。
你不需要for循环,你的大部分函数都是矢量化的,所以像这样:
n = 5:30000
stand_err = Sd_y1 / sqrt(n)
ub = sample_mean_y1 + qt(1-alpha/2, n-1)*stand_err
n[min(which(ub<0))]
[1] 23889
【讨论】:
y 的标准差和平均值应来自提取的 5 个观测值。它应该是一个双尾测试。 另外,我用你的建议测试了我的代码,将 ci[2] mu,但输出仍然是 2000。 也许 2000 还不够高。【参考方案2】:因为 n > 2000。
set.seed(1)
x <- rnorm(100)
y.1 <- 0.1 + 2*x + rnorm(100)
Sd_y1 <- sd(y.1[1:5])
sample_mean_y1 <- mean(y.1[1:5])
alpha <- 0.01
sgn <- 2*(sample_mean_y1 > 0) - 1
f <- function(n) qt(alpha/2, n - 1)*Sd_y1 + sgn*sample_mean_y1*sqrt(n)
upper <- 2
while (f(upper) < 0) upper <- upper*2
(n <- ceiling(uniroot(f, lower = upper/2, upper = upper, tol = 0.5)$root))
#> [1] 23889
【讨论】:
以上是关于在 R 脚本中确定 n 个样本大小以拒绝 alpha = 0.01 的空值的主要内容,如果未能解决你的问题,请参考以下文章