Saana Isojunno
2012-Jun-06 10:12 UTC
[R] error calling Winbugs using R2WinBugs to run a multi-level model
Dear all, I'm calling Winbugs (1.4.3) through R2WinBugs (2.1-18 coda_0.14-7) to fit a switching random walk model, but come up with an instant trap with the log only displaying 'check('. I will paste the trap with session info below; I'd be very grateful for any ideas. Couple of leads: 1. I presume the problem relates to the r package itself or the way I call bugs(), because I can use the same text files specifying the model and data directly in Winbugs and it runs fine (i.e syntax ok, compilation ok, updates slow but no traps). 2. The problem occurs in r only when I try to fit the model to multiple individuals, i.e. the data contains a matrix of step lengths (rows) and individuals (columns) instead of a vector for just one individual. I get the same error message regardless of the number of data rows in each column (I even tried just one). The model loops over the path of each animal, estimating a hidden movement state and their parameters. For 4 individuals with 100 data points each the data looks something like this: dat1 : num 100 dat2 : int 4 dat3 : num [1:4] 8 4 2 5 dat4 : num [1:100, 1:4] 1 1 1 1 1 2 2 2 2 2 ... dat5 : num [1:100, 1:4] 2 2 2 2 2 1 2 2 2 2 ... dat6 : num [1:100, 1:4] 16 34.3 33.5 27.9 14.9 ... dat7 : num [1:100, 1:4] 0.357 0.474 0.487 0.495 0.524 ... dat8 : num [1:50, 1:4] 36.4 294.5 24.4 21.1 422.8 ... This is how I've called WinBugs in r: # write data to text file sp.data = list("dat1","dat2","dat3","dat4","dat5","dat6","dat7","dat8") bugs.data(sp.data, digits=5, data.file="dir1\\data1.txt") # test the model runs fit = bugs(data=paste("C:\\Users\\User1\\Documents\\dir1\\data1.txt",dataFile,sep=""), inits=NULL, parameters.to.save=list('par1','par2','par3'), model.file=modelFile, debug=TRUE, n.chains=3, n.iter=20, n.burnin=3, n.thin=1, digits=4) ## The trap incompatible copy BugsScript.Action.Do [00000436H] .a BugsScript.Action [025B6790H] .argNum INTEGER 0 .bugsCommands ARRAY 240 OF CHAR 7877X, 75A5X, 0B17X, 3701X ... .p ARRAY 3, 120 OF CHAR Elements .s BugsScanners.Scanner Fields .scriptCommand ARRAY 240 OF CHAR "#Bugs:check" ... .vectorName BOOLEAN FALSE Services.Exec [00000136H] .a Services.Action [025B6790H] .t POINTER [64E10170H] Services.IterateOverActions [000002F4H] .p Services.Action [025B6790H] .t POINTER NIL .time LONGINT 4375656 Services.StdHook.Step [0000034DH] .h Services.StdHook [0248E380H] HostWindows.Idle [00004A86H] .focus BOOLEAN FALSE .tick Controllers.TickMsg Fields .w HostWindows.Window NIL HostMenus.TimerTick [00003422H] .lParam INTEGER 0 .ops Controllers.PollOpsMsg Fields .wParam INTEGER 1 .wnd INTEGER 1311298 Kernel.Try [00003A61H] .a INTEGER 1311298 .b INTEGER 1 .c INTEGER 0 .h PROCEDURE HostMenus.TimerTick HostMenus.ApplWinHandler [00003841H] .Proc PROCEDURE NIL .hit BOOLEAN FALSE .lParam INTEGER 0 .message INTEGER 275 .res INTEGER 1664639202 .s ARRAY 256 OF SHORTCHAR "" ... .w INTEGER 1970768325 .wParam INTEGER 1 .wnd INTEGER 1311298 <system> (pc=75778816H, fp=0027FB38H) <system> (pc=7577898DH, fp=0027FBB0H) <system> (pc=75778AB8H, fp=0027FC14H) <system> (pc=757790E2H, fp=0027FC24H) HostMenus.Loop [00003BDEH] .done BOOLEAN FALSE .f SET {0..5} .n INTEGER 0 .res INTEGER 0 .w HostWindows.Window NIL Kernel.Start [00002B8CH] .code PROCEDURE HostMenus.Loop ## my current R session specs: R version 2.15.0 (2012-03-30) Platform: x86_64-pc-mingw32/x64 (64-bit) locale: [1] LC_COLLATE=English_United Kingdom.1252 [2] LC_CTYPE=English_United Kingdom.1252 [3] LC_MONETARY=English_United Kingdom.1252 [4] LC_NUMERIC=C [5] LC_TIME=English_United Kingdom.1252 attached base packages: [1] stats graphics grDevices utils datasets methods base other attached packages: [1] R2WinBUGS_2.1-18 coda_0.14-7 lattice_0.20-6 loaded via a namespace (and not attached): [1] grid_2.15.0 tools_2.15.0 ## also tried these specs: R version 2.13.2 (2011-09-30) Platform: x86_64-pc-mingw32/x64 (64-bit) locale: [1] LC_COLLATE=English_United Kingdom.1252 [2] LC_CTYPE=English_United Kingdom.1252 [3] LC_MONETARY=English_United Kingdom.1252 [4] LC_NUMERIC=C [5] LC_TIME=English_United Kingdom.1252 attached base packages: [1] stats graphics grDevices utils datasets methods base other attached packages: [1] R2WinBUGS_2.1-18 coda_0.14-4 lattice_0.19-33 loaded via a namespace (and not attached): [1] grid_2.13.2 tools_2.13.2 Thank you! Saana Isojunno PhD candidate Scottish Oceans Institute University of St Andrews Scotland
ilai
2012-Jun-06 14:51 UTC
[R] error calling Winbugs using R2WinBugs to run a multi-level model
Untested because I don't have (use) winbugs and you didn't provide dat*. But consider a <- 4 ; f <- 6 list('a','f') list(a,f) list(a=a,f=f) My guess is you wanted sp.data to be a named list, not a list of names... HTH On Wed, Jun 6, 2012 at 4:12 AM, Saana Isojunno < saana.isojunno@googlemail.com> wrote:> Dear all, > > I'm calling Winbugs (1.4.3) through R2WinBugs (2.1-18 coda_0.14-7) to > fit a switching random walk model, but come up with an instant trap > with the log only displaying 'check('. > > I will paste the trap with session info below; I'd be very grateful > for any ideas. > > Couple of leads: > > 1. I presume the problem relates to the r package itself or the way I > call bugs(), because I can use the same text files specifying the > model and data directly in Winbugs and it runs fine (i.e syntax ok, > compilation ok, updates slow but no traps). > > 2. The problem occurs in r only when I try to fit the model to > multiple individuals, i.e. the data contains a matrix of step lengths > (rows) and individuals (columns) instead of a vector for just one > individual. I get the same error message regardless of the number of > data rows in each column (I even tried just one). > > The model loops over the path of each animal, estimating a hidden > movement state and their parameters. For 4 individuals with 100 data > points each the data looks something like this: > > dat1 : num 100 > dat2 : int 4 > dat3 : num [1:4] 8 4 2 5 > dat4 : num [1:100, 1:4] 1 1 1 1 1 2 2 2 2 2 ... > dat5 : num [1:100, 1:4] 2 2 2 2 2 1 2 2 2 2 ... > dat6 : num [1:100, 1:4] 16 34.3 33.5 27.9 14.9 ... > dat7 : num [1:100, 1:4] 0.357 0.474 0.487 0.495 0.524 ... > dat8 : num [1:50, 1:4] 36.4 294.5 24.4 21.1 422.8 ... > > This is how I've called WinBugs in r: > > # write data to text file > sp.data = list("dat1","dat2","dat3","dat4","dat5","dat6","dat7","dat8") > bugs.data(sp.data, digits=5, data.file="dir1\\data1.txt") > > # test the model runs > fit > bugs(data=paste("C:\\Users\\User1\\Documents\\dir1\\data1.txt",dataFile,sep=""), > inits=NULL, parameters.to.save=list('par1','par2','par3'), > model.file=modelFile, > debug=TRUE, n.chains=3, n.iter=20, n.burnin=3, n.thin=1, > digits=4) > > ## The trap > > incompatible copy > > BugsScript.Action.Do [00000436H] > .a BugsScript.Action [025B6790H] > .argNum INTEGER 0 > .bugsCommands ARRAY 240 OF CHAR 7877X, 75A5X, 0B17X, 3701X > ... > .p ARRAY 3, 120 OF CHAR Elements > .s BugsScanners.Scanner Fields > .scriptCommand ARRAY 240 OF CHAR "#Bugs:check" ... > .vectorName BOOLEAN FALSE > Services.Exec [00000136H] > .a Services.Action [025B6790H] > .t POINTER [64E10170H] > Services.IterateOverActions [000002F4H] > .p Services.Action [025B6790H] > .t POINTER NIL > .time LONGINT 4375656 > Services.StdHook.Step [0000034DH] > .h Services.StdHook [0248E380H] > HostWindows.Idle [00004A86H] > .focus BOOLEAN FALSE > .tick Controllers.TickMsg Fields > .w HostWindows.Window NIL > HostMenus.TimerTick [00003422H] > .lParam INTEGER 0 > .ops Controllers.PollOpsMsg Fields > .wParam INTEGER 1 > .wnd INTEGER 1311298 > Kernel.Try [00003A61H] > .a INTEGER 1311298 > .b INTEGER 1 > .c INTEGER 0 > .h PROCEDURE HostMenus.TimerTick > HostMenus.ApplWinHandler [00003841H] > .Proc PROCEDURE NIL > .hit BOOLEAN FALSE > .lParam INTEGER 0 > .message INTEGER 275 > .res INTEGER 1664639202 > .s ARRAY 256 OF SHORTCHAR "" ... > .w INTEGER 1970768325 > .wParam INTEGER 1 > .wnd INTEGER 1311298 > <system> (pc=75778816H, fp=0027FB38H) > <system> (pc=7577898DH, fp=0027FBB0H) > <system> (pc=75778AB8H, fp=0027FC14H) > <system> (pc=757790E2H, fp=0027FC24H) > HostMenus.Loop [00003BDEH] > .done BOOLEAN FALSE > .f SET {0..5} > .n INTEGER 0 > .res INTEGER 0 > .w HostWindows.Window NIL > Kernel.Start [00002B8CH] > .code PROCEDURE HostMenus.Loop > > > > > > ## my current R session specs: > > R version 2.15.0 (2012-03-30) > Platform: x86_64-pc-mingw32/x64 (64-bit) > > locale: > [1] LC_COLLATE=English_United Kingdom.1252 > [2] LC_CTYPE=English_United Kingdom.1252 > [3] LC_MONETARY=English_United Kingdom.1252 > [4] LC_NUMERIC=C > [5] LC_TIME=English_United Kingdom.1252 > > attached base packages: > [1] stats graphics grDevices utils datasets methods base > > other attached packages: > [1] R2WinBUGS_2.1-18 coda_0.14-7 lattice_0.20-6 > > loaded via a namespace (and not attached): > [1] grid_2.15.0 tools_2.15.0 > > > > > ## also tried these specs: > > R version 2.13.2 (2011-09-30) > Platform: x86_64-pc-mingw32/x64 (64-bit) > > locale: > [1] LC_COLLATE=English_United Kingdom.1252 > [2] LC_CTYPE=English_United Kingdom.1252 > [3] LC_MONETARY=English_United Kingdom.1252 > [4] LC_NUMERIC=C > [5] LC_TIME=English_United Kingdom.1252 > > attached base packages: > [1] stats graphics grDevices utils datasets methods base > > other attached packages: > [1] R2WinBUGS_2.1-18 coda_0.14-4 lattice_0.19-33 > > loaded via a namespace (and not attached): > [1] grid_2.13.2 tools_2.13.2 > > > > > Thank you! > > Saana Isojunno > > PhD candidate > Scottish Oceans Institute > University of St Andrews > Scotland > > ______________________________________________ > R-help@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide > http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. >[[alternative HTML version deleted]]