我在使用 Windows 7 Ultimate(Intel Core i5-2400 3GHz 处理器和 8.00GB 内存)的 PC 上运行 R 版本 2.14.0。让我知道是否需要其他规格。
我正在尝试模拟相关的 beta 分布式数据。我使用的方法是本文所写内容的扩展:
http://onlinelibrary.wiley.com/doi/10.1002/asmb.901/pdf
- 基本上,我首先模拟多元正态数据(使用
mvrnorm()
MASS 中的函数)。 - 然后我
pnorm()
将概率转换应用于这些数据,以便我的新数据向量位于 (0,1) 上。并且根据前面的说法仍然是相关的。 - 然后给定这些概率转换数据,我应用
qbeta()
具有特定 shape1 和 shape2 参数的函数,以获取具有特定均值和离散属性的相关 beta 数据。
我知道存在其他生成相关 beta 数据的方法。我对为什么qbeta()
导致这种方法对某些“种子”失败感兴趣。以下是我收到的错误消息。
Warning message:
In qbeta(probit_y0, shape1 = a0, shape2 = b0) :
full precision may not have been achieved in 'qbeta'
这是什么意思?如何避免?当它确实发生在更大的模拟环境中时,确保此问题不会终止整个源(使用 source())模拟代码的最佳方法是什么?
我从 1:1000 开始为整数种子运行以下代码。Seed=899 是唯一给我带来问题的值。虽然如果它在这里有问题,它也不可避免地会对其他种子产生问题。
library(MASS)
set.seed(899)
n0 <- 25
n1 <- 25
a0 <- 0.25
b0 <- 4.75
a1 <- 0.25
b1 <- 4.75
varcov_mat <- matrix(rep(0.25,n0*n0),ncol=n0)
diag(varcov_mat) <- 1
y0 <- mvrnorm(1,mu=rep(0,n0),Sigma=varcov_mat)
y1 <- mvrnorm(1,mu=rep(0,n1),Sigma=varcov_mat)
probit_y0 <- pnorm(y0)
probit_y1 <- pnorm(y1)
beta_y0 <- qbeta(probit_y0, shape1=a0, shape2=b0)
beta_y1 <- qbeta(probit_y1, shape1=a1, shape2=b1)
上面的代码是一个更大的模拟项目的一个片段。但是 qbeta() 警告信息现在让我很头疼。
该小组可以提供的任何帮助将不胜感激。
干杯克里斯