JAGS/Winbugs スクリプトの一部に基づいて、データをシミュレートしようとしています。このスクリプトは、Eaves & Erkanli (2003 年、http://psych.colorado.edu/~carey/pdffiles/mcmc_eaves.pdf 、ページ 295-296 を参照)からのものです。
シミュレーションの基にしたいスクリプト (の一部) は次のとおりです (元の論文とは変数名が異なります)。
for(fam in 1 : nmz ){
a2mz[fam, 1:N] ~ dmnorm(mu[1:N], tau.a[1:N, 1:N])
a1mz[fam, 1:N] ~ dmnorm(a2mz[fam, 1:N], tau.a[1:N, 1:N])
}
#Prior
tau.a[1:N, 1:N] ~ dwish(omega.g[,], N)
上記のスクリプトで指定されているように、パラメーター a2mz および a1mz の R でデータをシミュレートしたいと考えています。
したがって、基本的には、シグマ tau.a を持つ -N- (例 = 3) の多変量分布からのデータを -fam- (例: 10) 人でシミュレートしたいと考えています。
これをより具体的に説明すると: 目的は -fam- (例えば 10) 家族の遺伝的影響をシミュレートすることです。遺伝的影響は各家系 (例: 一卵性双生児) で同じで、分散は tau.a (例: 0.5) です。これらの遺伝的影響のうち、3 つの「バージョン」(3 つの多変量分布) をシミュレートする必要があります。
JAGS/Winbugs スクリプトで指定されたデータをシミュレートするために R で試したことは次のとおりです。
library(MASS)
nmz = 10 #number of families, here e.g. 10
var_a = 0.5 #tau.g in the script
a2_mz <- mvrnorm(3, mu = rep(0, nmz), Sigma = diag(nmz)*var_a)
これは、上記の JAGS/Winbugs スクリプトで参照されている a2mz パラメータのデータをシミュレートします。
> print(t(a2_mz))
[,1] [,2] [,3]
[1,] -1.1563683 -0.4478091 -0.15037563
[2,] 0.5673873 -0.7052487 0.44377336
[3,] 0.2560446 0.9901964 -0.65463341
[4,] -0.8366952 0.4924839 -0.56891991
[5,] 0.7343780 0.5429955 0.87529201
[6,] 0.5592868 -0.3899988 -0.33709105
[7,] -1.8233663 -0.7149141 -0.18153049
[8,] -0.8213804 -1.4397075 -0.09159725
[9,] -0.7002797 -0.3996970 -0.29142215
[10,] 1.1084067 0.3884869 -0.46207940
ただし、これらのデータを使用して a1mz (JAGS/Winbugs の 3 行目) スクリプトのデータをシミュレートしようとすると、何かがうまくいかず、何がわからないのですか?
a1_mz <- mvrnorm(3, mu = t(a2_mz), Sigma = c(diag(nmz)*var_a, diag(nmz)*var_a, diag(nmz)*var_a))
これにより、次のエラーが発生します: 固有値のエラー(Sigma、対称 = TRUE、EISPACK = EISPACK) : '固有値' の非正方行列
私が間違っていることについてのヒントやヒントを誰かに教えてもらえますか?
どうもありがとう、よろしく、インガ