我正在尝试生成一组随机数字,这些数字与我拥有的数据集完全相同(以测试它)。数据集由5个变量组成,这些变量都与不同的均值和标准差以及范围相关(它们是加在一起形成1个变量的缩放比例)。我已经能够从mvrnorm
包中获得MASS
来创建一个数据集,该数据集将观察到的观察数量(在500,000次迭代之后)复制相关矩阵,并且我可以轻松地重新分配均值和标准。开发。通过z-score变换,但我仍然在每个变量向量中都有特定值,远远高于或低于我希望复制的分数的可能范围。
有关如何正确修复范围的任何建议吗?
感谢您分享您的知识!
答案 0 :(得分:2)
要生成与原始数据集“完全镜像”的样本,您需要确保样本的边缘分布和依赖结构与原始数据集的边缘分布和依赖结构相匹配。 实现这一目标的一种简单方法是重新取样
my.data <- matrix(runif(1000, -1, 2), nrow = 200, ncol = 5) # Some dummy data
my.ind <- sample(1:nrow(my.data), nrow(my.data), replace = TRUE)
my.sample <- my.data[my.ind, ]
这将确保样本的边距和依赖结构(紧密)与原始数据的边距和依赖结构相匹配。
另一种方法是使用参数模型作为边距和/或依赖结构(copula)。但是,由于@dickoa的存在,这将需要认真的建模工作。
请注意,通过使用多元正态分布,您(隐含)假设原始数据的依赖结构是高斯copula。这是一个强有力的假设,需要事先进行验证。