'qbeta'可能没有实现全精度

Chr*_*ris 6 simulation r beta-distribution

我在使用Windows 7旗舰版(英特尔酷睿i5-2400 3GHz处理器,8.00GB内存)的PC上运行R版本2.14.0.如果需要其他规格,请告诉我.

我试图模拟相关的beta分布式数据.我使用的方法是本文所写内容的扩展:

http://onlinelibrary.wiley.com/doi/10.1002/asmb.901/pdf

  1. 基本上,我首先模拟多元正常数据(使用mvrnorm()MASS中的函数).
  2. 然后我使用pnorm()probit变换应用于这些数据,以便我的新数据向量存在于(0,1).并且根据之前的陈述仍然相关.
  3. 然后给出这些概率转换数据,我应用qbeta()具有某些shape1和shape2参数的函数,以获得具有特定均值和色散属性的相关β数据.

我知道存在生成相关beta数据的其他方法.我感兴趣的是为什么qbeta()导致这种方法失败的某些"种子".以下是我收到的错误消息.

Warning message:
In qbeta(probit_y0, shape1 = a0, shape2 = b0) :
  full precision may not have been achieved in 'qbeta'
Run Code Online (Sandbox Code Playgroud)

这是什么意思?怎么可以避免?当它确实发生在更大模拟的上下文中时,确保此问题不会终止整个源(使用source())模拟代码的最佳方法是什么?

我为1:1000的整数种子运行了以下代码.种子= 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)
Run Code Online (Sandbox Code Playgroud)

上面的代码是一个更大的模拟项目的片段.但qbeta()警告消息现在让我头疼.

我们将非常感谢小组提供的任何帮助.

干杯克里斯

Chr*_*den 4

错误的原因是用于计算 qbeta 的算法对于这些参数值没有收敛。

\n\n

R 使用 AS 109 计算 qbeta (Cran, GW, KJ Martin 和 GE Thomas (1977)。备注 AS R19 和算法 AS 109, Applied Statistics, 26, 111\xe2\x80\x93114,以及后续备注(AS83 和更正) .)。R 尝试在 1000 次迭代中计算该值。如果在 1000 次迭代中不能成功,您将收到所看到的错误消息。

\n\n

这是qbeta的代码。

\n