【问题标题】:Need Help Understanding R Code需要帮助了解 R 代码
【发布时间】:2017-03-21 10:04:05
【问题描述】:

我试图找出 (a) 少于 62% 或多于 74% 的样本均值是否在预期值的一个标准差内,或者 (b) 少于 92% 或多于 98%样本均值在期望值的两个标准差内。

假设我们已经设置了musigma,而Finv是一个分位数函数。我得到了最后两行代码。有人可以向我解释他们的意思以及我应该得到什么样的输出? (目前我唯一的输出是0

n.iterations <- 100000
n <- 10
xbar <- numeric(n.iterations)

for (i in 1:n.iterations){
  x <- sapply(runif(n), Finv)
   xbar[i] <- mean(x)
 }


mean((mu-1*sigma/sqrt(n) <= xbar) & (xbar <= mu+1*sigma/sqrt(n)))

mean((mu-2*sigma/sqrt(n) <= xbar) & (xbar <= mu+2*sigma/sqrt(n)))

【问题讨论】:

  • 这似乎与某种置信区间有关,如果xbar 是否在该置信区间内。除此之外,这里没有足够的详细信息可以让我们为您提供帮助。此外,如果您不确定代码的各个部分的作用,阅读不同函数和运算符的文档是一个不错的开始。
  • @PaulHiemstra 问题已更新以添加更多详细信息
  • 感谢您的更新。这些代码行似乎完全符合您的要求。究竟是什么不清楚?如果和代码有关,我认为单独运行表达式的每个部分将有助于您了解发生了什么。
  • @AmandaR。最后两行取二进制 (TRUE/FALSE) 向量的平均值,有效地返回 TRUE 的比例。如果乘以 100,您将得到在给定区间内的案例百分比。
  • @AmandaR。正确

标签: r


【解决方案1】:

我对你的问题有点困惑,因为它询问“标准偏差内”的数据,但也询问分位数 - 这似乎很奇怪......这就是为什么

考虑下面代码生成的上图:

mymean <- 5
mysd   <- 2

curve(dnorm(x, mean = mymean, sd = mysd), from = -2, to = 12)
abline(v = mymean, col = "red", lwd = 2)

xtimessd = 1
abline(v = c(mymean - mysd*xtimessd, mymean + mysd*xtimessd), col = "blue", lwd = 1, lty = 2)
xtimessd = 2
abline(v = c(mymean - mysd*xtimessd, mymean + mysd*xtimessd), col = "cyan", lwd = 1, lty = 2)
xtimessd = 3
abline(v = c(mymean - mysd*xtimessd, mymean + mysd*xtimessd), col = "green", lwd = 1, lty = 2)

# 62th and 74th quantile
targetQunatiles <- qnorm(c(0.62, 0.75), mean = mymean, sd = mysd)
abline(v = targetQunatiles, col = "orange", lwd = 2, lty = 1)

鉴于您的总体均值和标准差,该图显示了正态分布的概率密度函数。

虚线是“sd 内的xtimes”值。 (真的没有魔法,不过和68–95–99.7 rule有关)。

另一方面,如果我们查看分位数函数,即在您的示例中,我们正在查看值 62% 和 74%,这可以通过 qnorm 计算。

如您所见,根据您的问题“样本均值少于 62% 或多于 74%”,您将排除 5.6109626.348980 之间的值。

所以,仍然,从你的问题来看,我不知道你在问什么关于“在 sd 内”和“寻找分位数”的陈述之间的关系,因为两者都是相互独立的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-12
    • 1970-01-01
    • 2021-02-06
    • 2021-07-29
    • 2010-11-04
    • 1970-01-01
    • 1970-01-01
    • 2017-06-19
    相关资源
    最近更新 更多