Re: [R] error calling Winbugs using R2WinBugs to run a multi-level model
Thanks for the suggestions! Unfortunately I get same trap whether I input the data as a named list, list of the names, or text file. I tried the three with and without transposing the matrices (I didn't change the model structure indexing but this should appear as an indexing error later on). Good news is that I experimented with downloading Jags and the model fits fine to the same data directly from r, calling the R2Jags library with minimal changes to any of my scripts. I only had to define couple of more nodes in the model in order to monitor them. I'll send you the txt files in a separate email. Thanks again for your interest! Saana On 6 June 2012 18:17, Uwe Ligges lig...@statistik.tu-dortmund.de wrote: On 06.06.2012 16:51, ilai wrote: 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... That's also OK, from ?bugs.data: data: either a named list (names corresponding to variable names in the ‘model.file’) of the data for the ‘WinBUGS’ model, _or_ (which is not recommended and unsafe) a vector or list of the names of the data objects used by the model To really now what is going on, I'd need the model file and the data. My suspicion is that the matrices have to be transposed. Best, Uwe Ligges HTH On Wed, Jun 6, 2012 at 4:12 AM, Saana Isojunno saana.isoju...@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 [0436H] .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 [0136H] .a Services.Action [025B6790H] .t POINTER [64E10170H] Services.IterateOverActions [02F4H] .p Services.Action [025B6790H] .t POINTER NIL .time LONGINT 4375656 Services.StdHook.Step [034DH] .h Services.StdHook [0248E380H] HostWindows.Idle [4A86H] .focus BOOLEAN FALSE .tick Controllers.TickMsg Fields .w HostWindows.Window NIL HostMenus.TimerTick [3422H] .lParam INTEGER 0 .ops Controllers.PollOpsMsg Fields .wParam INTEGER 1 .wnd INTEGER 1311298 Kernel.Try [3A61H] .a INTEGER 1311298 .b INTEGER 1 .c INTEGER 0 .h PROCEDURE HostMenus.TimerTick HostMenus.ApplWinHandler [3841H] .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
Re: [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.isoju...@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 [0436H] .a BugsScript.Action [025B6790H] .argNum INTEGER 0 .bugsCommands ARRAY 240 OF CHAR 7877X, 75A5X, 0B17X, 3701X ... .p ARRAY 3, 120 OF CHARElements .s BugsScanners.ScannerFields .scriptCommand ARRAY 240 OF CHAR #Bugs:check ... .vectorName BOOLEAN FALSE Services.Exec [0136H] .a Services.Action [025B6790H] .t POINTER [64E10170H] Services.IterateOverActions [02F4H] .p Services.Action [025B6790H] .t POINTER NIL .time LONGINT 4375656 Services.StdHook.Step [034DH] .h Services.StdHook[0248E380H] HostWindows.Idle [4A86H] .focus BOOLEAN FALSE .tick Controllers.TickMsg Fields .w HostWindows.Window NIL HostMenus.TimerTick [3422H] .lParam INTEGER 0 .opsControllers.PollOpsMsg Fields .wParam INTEGER 1 .wndINTEGER 1311298 Kernel.Try [3A61H] .a INTEGER 1311298 .b INTEGER 1 .c INTEGER 0 .h PROCEDURE HostMenus.TimerTick HostMenus.ApplWinHandler [3841H] .Proc PROCEDURE NIL .hitBOOLEAN FALSE .lParam INTEGER 0 .messageINTEGER 275 .resINTEGER 1664639202 .s ARRAY 256 OF SHORTCHAR ... .w INTEGER 1970768325 .wParam INTEGER 1 .wndINTEGER 1311298 system (pc=75778816H, fp=0027FB38H) system (pc=7577898DH, fp=0027FBB0H) system (pc=75778AB8H, fp=0027FC14H) system (pc=757790E2H, fp=0027FC24H) HostMenus.Loop [3BDEH] .done BOOLEAN FALSE .f SET {0..5} .n INTEGER 0 .resINTEGER 0 .w HostWindows.Window NIL Kernel.Start [2B8CH] .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]
Re: [R] error calling Winbugs using R2WinBugs to run a multi-level model
On 06.06.2012 16:51, ilai wrote: 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... That's also OK, from ?bugs.data: data: either a named list (names corresponding to variable names in the ‘model.file’) of the data for the ‘WinBUGS’ model, _or_ (which is not recommended and unsafe) a vector or list of the names of the data objects used by the model To really now what is going on, I'd need the model file and the data. My suspicion is that the matrices have to be transposed. Best, Uwe Ligges HTH On Wed, Jun 6, 2012 at 4:12 AM, Saana Isojunno saana.isoju...@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 [0436H] .a BugsScript.Action [025B6790H] .argNum INTEGER 0 .bugsCommands ARRAY 240 OF CHAR 7877X, 75A5X, 0B17X, 3701X ... .p ARRAY 3, 120 OF CHARElements .s BugsScanners.ScannerFields .scriptCommand ARRAY 240 OF CHAR #Bugs:check ... .vectorName BOOLEAN FALSE Services.Exec [0136H] .a Services.Action [025B6790H] .t POINTER [64E10170H] Services.IterateOverActions [02F4H] .p Services.Action [025B6790H] .t POINTER NIL .time LONGINT 4375656 Services.StdHook.Step [034DH] .h Services.StdHook[0248E380H] HostWindows.Idle [4A86H] .focus BOOLEAN FALSE .tick Controllers.TickMsg Fields .w HostWindows.Window NIL HostMenus.TimerTick [3422H] .lParam INTEGER 0 .opsControllers.PollOpsMsg Fields .wParam INTEGER 1 .wndINTEGER 1311298 Kernel.Try [3A61H] .a INTEGER 1311298 .b INTEGER 1 .c INTEGER 0 .h PROCEDURE HostMenus.TimerTick HostMenus.ApplWinHandler [3841H] .Proc PROCEDURE NIL .hitBOOLEAN FALSE .lParam INTEGER 0 .messageINTEGER 275 .resINTEGER 1664639202 .s ARRAY 256 OF SHORTCHAR ... .w INTEGER 1970768325 .wParam INTEGER 1 .wndINTEGER 1311298 system(pc=75778816H, fp=0027FB38H) system(pc=7577898DH, fp=0027FBB0H) system(pc=75778AB8H, fp=0027FC14H) system(pc=757790E2H, fp=0027FC24H) HostMenus.Loop [3BDEH] .done BOOLEAN FALSE .f SET {0..5} .n INTEGER 0 .resINTEGER 0 .w HostWindows.Window NIL Kernel.Start [2B8CH] .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