私は(8.00ギガバイトのRAMを搭載したインテル®Core™i5-2400 3GHzのプロセッサ)は、Windows 7 Ultimateを使用してPC上でRのバージョン2.14.0を実行していてなされていない可能性があります。他の仕様が必要な場合は教えてください。全精度は「qbeta」
相関ベータ分布データをシミュレートしようとしています。私が使っている方法は、この論文に書かれているものの拡張である:
http://onlinelibrary.wiley.com/doi/10.1002/asmb.901/pdf
- 基本的に、私は(MASSから
mvrnorm()
機能を使用して)多変量正規データをシミュレートすることから始めます。 - は、その後、私は私の新しいデータベクトル(s)は(0,1)に住んでいるようなプロビットは、これらのデータに変換を適用するために
pnorm()
を使用しています。そして、前の声明によれば、依然として相関があります。 - は、その後、特定の平均及び分散特性を有するバック相関ベータデータを取得するために、私は特定のshape1とshape2パラメータで
qbeta()
関数を適用し、これらのプロビット変換されたデータを指定されました。
Iは、データが存在する相関ベータを生成するための他の方法を知っています。私はなぜqbeta()
がこのメソッドを特定の "シード"に対して失敗させるのかに興味があります。以下は私が得るエラーメッセージです。
Warning message:
In qbeta(probit_y0, shape1 = a0, shape2 = b0) :
full precision may not have been achieved in 'qbeta'
これはどういう意味ですか?どのように避けることができますか?大規模なシミュレーションのコンテキスト内で発生した場合、この問題がソースコード全体を終了させないようにする最良の方法は何ですか?
私は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)
上記のコードは、より大きなシミュレーションプロジェクトの一部です。しかし、qbeta()の警告メッセージは、今私に頭痛を与えているものです。
グループが提供できる助けがあれば、非常に感謝しています。
乾杯 クリス
R 3.0.1で警告が表示されません。 Rを更新することを検討してください – Roland
R 2.15.1に関する警告はありません – eddi
ありがとう@Roland。私はR 3.0.1(32ビット)の最新バージョンをダウンロードしました。上記の... set.seed(216)と同じコードを実行し、同じエラーが発生しました:警告メッセージ: qbeta(probit_y1、shape1 = a1、shape2 = b1): 完全精度が ' qbeta ' – Chris