在为变量创建蒙特卡罗模拟模型时,关键步骤是选择最适合变量概率密度的分布。
我通常通过查看密度图并确定最适合密度形状的分布来做到这一点。对于(一个非常蹩脚的)例子,这个......
x <- rnorm(1000)
plot(density(x))
…似乎是一个正态分布(但只是因为它是来自正态分布的随机样本)。
然而,在处理现实世界的数据时,很难知道 17 个内置分布中的哪一个最能代表数据的形状。
例如,这个数据……
data <- c(6.515, 0.243, 0.725, 2.276, 1.456, 4.047, 0.766, 0.29, 2.368,
0.543, 2.223, 0.488, 0.47, 3.511, 0.544, 4.191, 0.414, 0.704,
4.917, 0.434, 0.773, 0.477, 3.257, 0.415, 1.921, 0.278, 3.159,
4.193, 0.132, 1.109, 1.538, 4.088, 0.468, 0.047, 2.204, 3.765,
0.168, 2.231, 0.164, 0.371, 2.33, 4.458, 0.046, 1.195, 1.714,
1.046, 1.915, 2.66, 5.409, 0.466)
plot(density(data))

......似乎最好用卡方分布建模,但它也可能是伽马分布。
我发现适合最佳模型类型的唯一方法是覆盖一堆不同的可能分布,直到我看到一个在视觉上匹配(或接近)的分布。但肯定有一种更数字化、更正式的方式来做到这一点,对吧?
是否有一种系统的、非视觉的(和自动化的)方法来找到给定变量的最佳分布?某些 R 函数中是否有一个函数通过不同的分布来检查它们的拟合优度,或者那是非常低效的?