我正在研究关于收入分配的项目......我想生成用于测试理论的随机数据 . 假设我有N = 5个国家,每个国家有n = 1000人口,我想为每个人口中的每个人产生随机收入(正态分布),收入的约束在0到1之间,并且在相同的平均值和不同的标准所有国家的偏差 . 我使用函数rnorm(n,meanx,sd)来完成它 . 我知道UNIFORM DISTRIBUTION(runif(n,min,max)有一些设置min,max但没有rnorm的参数 . 因为rnorm没有提供设置min和max值的参数 . 我必须编写一段代码检查随机数据集,看它们是否满足我的[0,1]约束 .
我成功生成了n = 100的收入数据 . 但是,如果我增加n = k次100,例如 . n = 200,300 ...... 1000 . 我的节目挂了 . 我可以看到为什么程序挂起,因为它只是随机生成数据而没有min,max的约束 . 因此,当我使用较大的n时,我将成功生成的概率小于n = 100 . 并且循环再次运行:生成数据,检查失败 .
从技术上讲,为了解决这个问题,我想把n = 1000分成小批量,比方说b = 100 . 由于rnorm在范围[0,1]中成功生成100个样本并且它是正态分布,如果我为每批100个样本分别运行10次100个样本的循环,它将很好地工作 . 然后,我会将10 * 100个样本的所有数据收集到一个1000的数据中,供以后分析 . 但是,在数学上说话,我不确定n = 1000的正态分布约束是否仍然通过这种方式得到满足 . 我附上了我的代码 . 希望我的解释对你很清楚 . 你的所有意见对我的工作都非常有用 . 非常感谢 .</

在研究收入分配项目时,需要生成满足特定条件的随机数据。博主希望为5个国家的1000个人生成0到1之间的正态分布随机收入。他们使用rnorm函数生成数据,但由于rnorm不直接支持设置最小值和最大值,博主通过循环和检查来约束数据范围。当样本数量增加时,程序因无限循环而挂起。解决方案是将大样本数量分成小批量,每次生成100个样本并确保它们落在[0,1]范围内。博主对此方法的数学正确性提出疑问,并分享了相关代码。"
112970308,9275919,C++深度解析:深拷贝与浅拷贝、new与delete、初始化列表与友元,"['c++', '内存管理', '构造函数', '静态成员', '友元']
最低0.47元/天 解锁文章
611

被折叠的 条评论
为什么被折叠?



