Thanks, Nicholas, for the tip. That did get past that error!
A few new things have happened that are interesting. YourCast seems to crash without
covariates, which I was able to debug (details below). Unfortunately, when I add
covariates, I still get a strange error. I'm hoping you or someone else might have
seen this before too, and got past it.
I'll document this in reverse order-first, the problem after adding a covariate
(arbitrarily defined "time", equal to year-30---as in the example in the
YourCast vignette). Second, for the record, I've described the problem I generated
when YourCast did not have a covariate (might be a bug in the way the lists containing the
data are named when there is only one covariate).
____YourCast returns an error in digitpull().____
I can't tell what is generating this error. I've tried changing the number of
digits in the age group and country codes, but to no avail so far.
dta<-yourprep(dpath=paste(wd,"rawmini",sep=""),# path to text files
+ year.var=TRUE,# year is a column
+ tag="mxmale",# file names begin with mxmale
+ index.code="gggaaa",# 3-digit region and 3-digit age
+ sample.frame=c(1970,2011,2012,2036),# start,end of model yrs and forecast
+ )
Loading cross section files and checking for errors...
...Finished
Total number of cross sections: 24
ylc<-yourcast(formula=log(allcause)~index,
+
dataobj=dta,# name of yourprep data
+ model="LC",# options:bayes,map,ols,poisson,lc
+ sample.frame=c(1970,2011,2012,2036),# provide sample frame from yourprep step
+ )
Creating formulas for all cross-sections...
Adding time to the covariate list...
Applying formulas to data in each cross-section...
Running model frames for data matrices...
Building the covariates list...
Standardizing covariates...
Constructing the list of dependent variables...
Creating the in-sample and out-sample periods for covariates...
Creating lists for dependent variable,in-sample and out-sample...
Saving preprocessing in the file...c:/research/gbdcast/_yourcast/data/yourcast.savetmp
The size of yourcast.savetmp is = 30434
Using LC model
Error in digitpull(cs.vec, digit.age.begin, digit.age.end) :
narrowest element in v not as wide as stopdig in proc digitpull()
Data is inconsistent.
Error in get("lst.output", envir = ewho) : object 'lst.output' not
found
Some things that might be helpful (?). I can't find cs.vec in any of the environments
available after debugger().
Browse[1]> digit.first
digit.first
0
Browse[1]> age.digits
age.digits
3
Browse[1]> ewho$age.vec
[1] "000" "001" "005" "010" "015"
"020" "025" "030" "035" "040"
"045" "050"
[13] "055" "060" "065" "070" "075"
"080" "085" "090" "095" "100"
"105" "110"
____YourCast seems to crash without covariates.____
To my eyes, it appears that yourcast is calling the matrix column with the dependent
variable, "allcause", but that the matrix is not labeled this way when it is the
only variable. This happened until I added a covariate to the input data (i.e., a new
column in the text files read by yourprep).
> wd<-"c:/research/gbdcast/_yourcast/data/"# update working directory
> setwd(wd)
dta<-yourprep(dpath=paste(wd,"rawmini",sep=""),# path to text files
+ year.var=TRUE,# year is a column
+ tag="mxmale",# file names begin with mxmale
+ index.code="gggaaa",# 3-digit region and 3-digit age
+ G.names="isonames.txt",# file containing country abbvs
+ sample.frame=c(1970,2011,2012,2036),# start,end of model yrs and forecast
+ # adjacency="adjacency.txt",# file containing WHO adjacency info
+ verbose=TRUE,# do not suppress output
+ )
Loading cross section files and checking for errors...
mxmale004000.txt
mxmale004001.txt
.[etc, until]
mxmale004110.txt
Loading auxiliary files...
isonames.txt
...Finished
Total number of cross sections: 24
ylc <- yourcast(formula=log(allcauses)~index,
dataobj=dta, model="LC", sample.frame=c(1970,2011,2012,2036))
Error in
mat[, dth] : subscript out of bounds
debugger()
Message: Error in mat[, dth] :
subscript out of bounds
Available environments had calls:
1: yourcast(formula = log(allcauses) ~ index, dataobj = dta, model = "LC", sam
2: input.to.model(datamat = dataobj$data, ff = formula, all.pow = low.pow, sam
3: build.covs.depvar.lst(datamat, ff, all.pow, sample.frame, standard, verbose
4: data.after.first.obv(datamat, ff)
5: lapply(datamat, FUN = "first.obvy", dth, pop)
6: FUN(X[[1]], ...)
Enter an environment number, or 0 to exit Selection: 6
Browsing in the environment with call:
FUN(X[[1]], ...)
Called from: debugger.look(ind)
Browse[1]> ls()
[1] "dth" "mat" "pop" "rnm"
Browse[1]> dth
[1] "allcauses"
Browse[1]> mat
mat
0040001970 0.34498817
0040001971 0.33458412
0040001972 0.32445580
0040001973 0.31145978
0040001974 0.29705149
. [ and so on, until .]
0040002010 0.07250808
0040002011 0.06872911
0040002012 NA
0040002013 NA
0040002014 NA
. [ etc, etc, until.]
0040002035 NA
0040002036 NA
This error was fixed by adding a covariate to the source data, which resulting in the
appropriate naming of the columns in the matrix "mat", e.g.:
dta$data
$`004000`
allcause time
1970 0.34498817 1940
1971 0.33458412 1941
...[etc]
And then mat[,dth] pulls from the correct column.
From: Nicholas Martinez [mailto:martinez.nicholas@gmail.com]
Sent: Tuesday, October 01, 2013 10:24 PM
To: Ethan Sharygin
Cc: yourcast(a)lists.gking.harvard.edu
Subject: Re: [yourcast] Error in yourcast step after successful yourprep.
Ethan,
I had the same problem a couple of years ago. You have to pass the the frame you set in
your.prep into the your.cast sample.frame.
Try this.
ylc <- yourcast(formula=log(allcauses)~index, dataobj=dta, model="LC",
sample.frame=c(1970,2011,2012,2036))
Hope that works.
Best,
Nicholas
On Tue, Oct 1, 2013 at 8:52 PM, Ethan Sharygin <sharygin(a)uw.edu> wrote:
Dear yourcast users or moderator,
I am unable to get yourcast to run any model with data in yourprep. I've formatted my
data into text files for each cross-sectional unit, following the example in the
vignette/documentation for YourCast.
Here is a stripped down example for one geographic unit, 24 age groups, years 1970-2036
(non-missing data for 1970-2011). No auxiliary files are used in this example.
(1) The R command and output:
dta<-yourprep(dpath=paste(wd,"rawmini",sep=""),# path to text files
+ year.var=TRUE,# year is a column
+ tag="mxmale",# file names begin with mxmale
+ index.code="gggaaa",# 3-digit region and 3-digit age
+ sample.frame=c(1970,2011,2012,2036),# start,end of model yrs and forecast
+ #G.names="isonames.txt",# file containing country abbvs
+ #adjacency="mxmale.proxim.txt",# file containing adjacency info
+ verbose=TRUE,# do not suppress output
+ )
Loading cross section files and checking for errors...
mxmale004000.txt
mxmale004001.txt
mxmale004005.txt
mxmale004010.txt
mxmale004015.txt
mxmale004020.txt
mxmale004025.txt
mxmale004030.txt
mxmale004035.txt
mxmale004040.txt
mxmale004045.txt
mxmale004050.txt
mxmale004055.txt
mxmale004060.txt
mxmale004065.txt
mxmale004070.txt
mxmale004075.txt
mxmale004080.txt
mxmale004085.txt
mxmale004090.txt
mxmale004095.txt
mxmale004100.txt
mxmale004105.txt
mxmale004110.txt
...Finished
Total number of cross sections: 24
ylc<-yourcast(formula=log(allcause)~index,
+
dataobj=dta,# name of yourprep data
+ model="LC",# options:bayes,map,ols,poisson,lc
+ debug=TRUE,# add debug info to user space
+ )
Error in seq.default(smpvec[ind], smpvec[ln], by = 1) :
wrong sign in 'by' argument
(2) an example text file (mxmale004000.txt) for one age category (age 0) for one country
(004)
year allcause
1970 .3449881673
1971 .3345841169
1972 .3244557977
1973 .3114597797
1974 .2970514894
[truncated here to save space]
2010 .0725080818
2011 .0687291101
2012 NA
2013 NA
2014 NA
[and so on, NA values until 2036]
Any insights would be appreciated, as I cannot distinguish how my data, after yourprep,
are any different from the example in the documentation.
Thanks sincerely,
--
Ethan Sharygin
-
---
yourcast mailing list served by HUIT
List Address: yourcast(a)lists.gking.harvard.edu
Subscribe/Unsubscribe:
http://lists.gking.harvard.edu/mailman/listinfo/yourcast
Yourcast mailing list
Yourcast(a)lists.gking.harvard.edu
To unsubscribe from this list or get other information:
https://lists.gking.harvard.edu/mailman/listinfo/yourcast