【发布时间】:2021-10-31 05:01:18
【问题描述】:
我是统计学的新手,我正在学习 R。 我决定做这个练习来练习使用原始数据集进行一些分析。
这就是问题所在:我想创建一个包含 100 个科目的数据集,并且对于每个科目我都有一个测试分数。 这个测试分数的范围是从 0 到 70,平均分数是 48(而且不太可能有人得 0)。
首先我尝试使用 x <- round(runif(100, min=0, max=70)) 创建集合,但后来我发现使用 plot(x) 不是正态分布的。
所以我搜索了另一个 Rcommand 并找到了这个,但我无法确定 min\max:
ex1 <- round(rnorm(100, mean=48 , sd=5))
我真的不明白我要做什么!
我想编写一个函数,为我提供一组正态分布的数据,范围为 0-70,平均值为 48,标准差不大,以便稍后进行一些 T 检验。 .. 有什么帮助吗?
非常感谢各位
【问题讨论】:
-
如果您需要正态分布的最小值和最大值,也许您应该研究一个截断-正态分布?我认为你在随意使用它之前应该了解它背后的概念,但如果你认为它是正确的方法,请查看
truncnorm包。 -
(为了记录,许多“正态性”的说法有点牵强:例如,如果人类身高是正态分布的,那表明有些人会有一个 负高度。我们在大多数统计数据中仍然使用“正态分布”,但很少有事情真正如此。)
-
我会尝试以不同的方式编写它。如果我画一个高斯并开始添加值,例如:我有 100 个科目,10 个做了 48 分,最常见的分数,然后 9 个做了 45,其他 9 个做了 52,依此类推,直到我得到 1 个做低分1分高分不好吗?
-
我认为你错过了我关于数学的观点。确保
rnorm(.)始终在两个范围内的一种方法是使用pmax(0, pmin(70, rnorm(100, mean=38, sd=5)))之类的东西。 但是,在两个极端情况下,您将获得高于正常(非单调)的上涨幅度。作为一个更受限制的例子,试试hist(pmax(28, pmin(48, rnorm(10000, mean=38, sd=5))))看看两个极端。 不是“正常”。我不是在谈论实际考虑,我是在谈论技术想法。 -
使用
truncnorm并非不可能完成的任务。 (坦率地说,许多人可能会争辩说x<1的10e-14可能性足以接受,耸耸肩,并使用pmax/pmin。)
标签: r statistics normal-distribution