1

我正在尝试生成一组随机数字,这些数字完全反映了我拥有的数据集(以对其进行测试)。该数据集由 5 个变量组成,这些变量都与不同的均值和标准差以及范围相关(它们是李克特量表加在一起形成 1 个变量)。我已经能够mvrnormMASS包中创建一个数据集,该数据集使用观察到的观察次数(经过 500,000 多次迭代)复制相关矩阵,并且我可以轻松地重新分配均值和标准差。开发。通过 z 分数转换,但我仍然在每个变量向量中有特定值,这些值远高于或低于我希望复制其分数的可能范围。

任何建议如何适当地固定范围?

感谢您分享你的知识!

4

1 回答 1

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。这是一个强有力的假设,需要事先进行验证。

于 2013-07-07T06:59:51.510 回答