Thanks for your help, joshua and uwe!

object[[i]] should have class c("corSPT","corSpatial","corStruct"). It looks
like when you and Uwe run this, coef hands it off to coef.corSpatial whereas
mine hands it off the coef.corSPT.
i am so confused...
On Fri, Apr 23, 2010 at 9:06 AM, Joshua Wiley <jwiley.ps...@gmail.com>wrote:

> Hello Michael,
>
> I ran your code (from your email ~19 hours ago).  I believe I had the
> same result as Uwe.  It certainly did not crash.  Here is the output
> from debug right before it reported the error:
>
> debug: coef(object[[i]]) <- value[parMap[, i]]
> Browse[3]>
> Error in `coef<-.corSpatial`(`*tmp*`, value = c(0, 0, 0)) :
>  Cannot change the length of the parameter after initialization
>
> I also included the output from Sys.info() and sessionInfo() so you
> can see what my platform is.  Technically I have Windows 7 x64.
>
> > Sys.info()
>         sysname          release          version         nodename
>       "Windows"      "Vista x64"     "build 7600" "REDACTED"
>         machine            login             user
>           "x86"   "REDACTED"   "REDACTED"
> > sessionInfo(package="nlme")
> R version 2.11.0 (2010-04-22)
> x86_64-pc-mingw32
>
> locale:
> [1] LC_COLLATE=English_United States.1252
> [2] LC_CTYPE=English_United States.1252
> [3] LC_MONETARY=English_United States.1252
> [4] LC_NUMERIC=C
> [5] LC_TIME=English_United States.1252
>
> attached base packages:
> character(0)
>
> other attached packages:
> [1] nlme_3.1-96
>
> loaded via a namespace (and not attached):
> [1] base_2.11.0      graphics_2.11.0  grDevices_2.11.0 grid_2.11.0
> [5] lattice_0.18-5   methods_2.11.0   stats_2.11.0     tools_2.11.0
> [9] utils_2.11.0
>
> On Fri, Apr 23, 2010 at 5:43 AM, Michael Steven Rooney
>  <michael.s.roo...@gmail.com> wrote:
> > hmmmm... mine crashes even if I place:
> >
> > debug(getS3method("coef<-","corSpatial"))
> >
> > before the model run. Below is what R spits out after the seg fault. It's
> > never the same twice. I hope someone else out there will try the code
> > because I really do think this is more than an error.
> >
> >> mymodel <- lme(fixed = e ~ a,random= ~ 1 |
> > g,data=df,correlation=corSPT(corExp(c(1,.5),form = ~ t |
> > g,nugget=TRUE),corExp(c(1,.5),form= ~ x + y | g,
> > nugget=TRUE)),control=list(msVerbose=TRUE,opt="nlminb"))
> > 1 0.51 0.51 0.51 0.51 0.51 0.5
> >  *** caught segfault ***
> > address 0xe0000030, cause 'memory not mapped'
> > Traceback:
> >  1: FUN(X[[2L]], ...)
> >  2: lapply(attr(object[["time"]], "covariate"), function(mat) (1 -
> > time.nug) * exp(-mat/time.rng))
> >  3: corMatrix.corSPT(object)
> >  4: corMatrix(object)
> >  5: unlist(corMatrix(object))
> >  6: corFactor.corSPT(object)
> >  7: corFactor(object)
> >  8: `coef<-.corSPT`(`*tmp*`, value = c(0, 0, 1.49011611938477e-08))
> >  9: `coef<-`(`*tmp*`, value = c(0, 0, 1.49011611938477e-08))
> > 10: `coef<-.modelStruct`(`*tmp*`, value = c(0.360627924013365, 0, 0,
> > 1.49011611938477e-08))
> > 11: `coef<-`(`*tmp*`, value = c(0.360627924013365, 0, 0,
> > 1.49011611938477e-08))
> > 12: logLik.lmeStruct(lmeSt, lmePars)
> > 13: logLik(lmeSt, lmePars)
> > 14: objective(.par, ...)
> > 15: .Call(R_port_nlminb, obj, grad, hess, rho, low, upp, d =
> > rep(as.double(scale),     length.out = length(par)), iv, v)
> > 16: nlminb(c(coef(lmeSt)), function(lmePars) -logLik(lmeSt, lmePars),
> > control = list(iter.max = controlvals$msMaxIter, eval.max =
> > controlvals$msMaxEval,         trace = controlvals$msVerbose))
> > 17: lme.formula(fixed = e ~ a, random = ~1 | g, data = df, correlation =
> > corSPT(corExp(c(1,     0.5), form = ~t | g, nugget = TRUE), corExp(c(1,
> > 0.5), form = ~x +     y | g, nugget = TRUE)), control = list(msVerbose =
> > TRUE,     opt = "nlminb"))
> > 18: lme(fixed = e ~ a, random = ~1 | g, data = df, correlation =
> > corSPT(corExp(c(1,     0.5), form = ~t | g, nugget = TRUE), corExp(c(1,
> > 0.5), form = ~x +     y | g, nugget = TRUE)), control = list(msVerbose =
> > TRUE,     opt = "nlminb"))
> > Possible actions:
> > 1: abort (with core dump, if enabled)
> > 2: normal R exit
> > 3: exit R without saving workspace
> > 4: exit R saving workspace
> >
> >
> > 2010/4/23 Uwe Ligges <lig...@statistik.tu-dortmund.de>
> >
> >> When I try it, I do not get a crash but an error message:
> >>
> >> 1 0.5Error in `coef<-.corSpatial`(`*tmp*`, value = c(0, 0, 0)) :
> >>  Cannot change the length of the parameter after initialization
> >>
> >> Even trying several times I always get the error and cannot reproduce
> any
> >> crash.
> >>
> >> Best wishes,
> >> Uwe
> >>
> >>
> >>
> >>
> >> On 22.04.2010 19:31, Michael Steven Rooney wrote:
> >>
> >>> Hi Uwe,
> >>>
> >>> I downloaded R 2.11.0 and the latest version of nlme. I am still
> getting
> >>> the
> >>> problem. I should also note that I got a message from Viechtbauer
> Wolfgang
> >>> saying that he had experienced a similar problem using nlme.
> >>>
> >> >
> >>
> >>> I have pasted the code below. (The data is generated in the first ~15
> >>> lines). I have bunch of debug() statements, which may or may not be
> >>> useful.
> >>> The code is not as elegant as it could be since I have been constantly
> >>> editing it to try to track down the bug (I replaced the corMatrix C
> >>> routine
> >>> with R code). FYI, the objective of the code is to simultaneously fit
> >>> temporal and spatial correlation (adding one corExp matrix plus
> another)
> >>> where the nuggets are constrained to add to 1.
> >>>
> >>> I really hope you have a chance to look at this. Thanks so much!!
> >>>
> >>> ## BEGIN
> >>>
> >>> N<- 100
> >>> x<- round(sin(rep(1:23/2,length.out=N)),digits=2)+1:N*2/N
> >>> y<- round(cos(rep(1:23/2,length.out=N)),digits=2)+1:N*2/N
> >>> g<- rep(1:5,each=N/5)
> >>> a<- round(runif(N,0,10))
> >>> t<- 1:N
> >>> r<- runif(N,0,5)
> >>> e<- 5*sin(4*x) +
> >>>      5*cos(4*y) +
> >>>      5*sin(t) +
> >>>      2*g +
> >>>      a +
> >>>      r
> >>> e<- round(e)
> >>>
> >>> df<- data.frame(x,y,g,a,t,r,e)
> >>> df<- df[-c(22,23,67),]
> >>>
> >>> library(nlme)
> >>>
> >>> corSPT<- function(a,b) {
> >>>   object<- list("time"=a,"space"=b)
> >>>   class(object)<-  c("corSPT","corSpatial","corStruct")
> >>>   attr(object, "formula")<- formula(object)
> >>>   attr(object, "nugget")<- attr(object[["time"]], "nugget")
> >>>   attr(object, "metric")<- attr(object[["time"]], "metric")
> >>>   attr(object, "fixed")<- attr(object[["time"]], "fixed")
> >>>   return(object)
> >>> }
> >>>
> >>> coef.corSPT<- function(object,...) {
> >>>
> >>>
> >>>
> c("time"=coef(object[["time"]],...),"space"=coef(object[["space"]],...)[1])
> >>> }
> >>>
> >>> "coef<-.corSPT"<- function (object, ..., value) {
> >>>     value<- as.numeric(value)
> >>>     if (length(value) != 3) {
> >>>         stop("Cannot change the length of the parameter of a corSPT
> >>> object")
> >>>     }
> >>>     object[["time"]][]<- value[1:2]
> >>>     object[["space"]][]<- c(value[3],-value[2]) # nugget for space is
> >>> determined by the nugget for time
> >>>     attr(object, "factor")<- NULL
> >>>     attr(object, "factor")<- corFactor(object)
> >>>     attr(object, "logDet")<- NULL
> >>>     attr(object, "logDet")<- logDet(object)
> >>>     object
> >>> }
> >>>
> >>> Initialize.corSPT<- function (object, data, ...) {
> >>>     if (!is.null(attr(object[["time"]], "minD"))) {
> >>>         return(object)
> >>>     }
> >>>     object[["time"]]<-
> >>> getS3method("Initialize","corStruct")(object[["time"]], data)
> >>>     object[["space"]]<-
> >>> getS3method("Initialize","corStruct")(object[["space"]], data)
> >>>     object[["time"]][1]<- log(object[["time"]][1])
> >>>     object[["space"]][1]<- log(object[["space"]][1])
> >>>     object[["time"]][2]<- log(object[["time"]][2]/(1 -
> >>> object[["time"]][2]))
> >>>     object[["space"]][2]<- -object[["time"]][2]
> >>>     attr(object,"groups")<- attr(object[["time"]],"groups")
> >>>     attr(object,"Dim")<- attr(object[["time"]],"Dim")
> >>>     attr(object,"covariate")<- NULL
> >>>     attr(object, "nugget")<- attr(object[["time"]], "nugget")
> >>>     attr(object[["time"]],"minD")<- min(unlist(attr(object[["time"]],
> >>> "covariate")))
> >>>     attr(object[["space"]],"minD")<- min(unlist(attr(object[["space"]],
> >>> "covariate")))
> >>>     attr(object, "minD")<- NULL
> >>>     ###
> >>>     corD<- Dim(object[["time"]])
> >>>     attr(object[["time"]],"covariate")<- lapply(seq(corD$M),function(M)
> {
> >>>       x<- attr(object[["time"]],"covariate")[[M]]
> >>>       l<- corD$len[M]
> >>>       g<- rep(seq(l),(l-1):0)
> >>>       mat<- do.call(rbind,lapply(seq(l),function(G)
> >>> {c(rep(0,G),x[g==G])}))
> >>>       mat<- mat + t(mat)
> >>>     })
> >>>     attr(object[["space"]],"covariate")<-
> lapply(seq(corD$M),function(M) {
> >>>       x<- attr(object[["space"]],"covariate")[[M]]
> >>>       l<- corD$len[M]
> >>>       g<- rep(seq(l),(l-1):0)
> >>>       mat<- do.call(rbind,lapply(seq(l),function(G)
> >>> {c(rep(0,G),x[g==G])}))
> >>>       mat<- mat + t(mat)
> >>>     })
> >>>     ###
> >>>     attr(object, "factor")<- corFactor(object)
> >>>     attr(object, "logDet")<- -attr(attr(object, "factor"), "logDet")
> >>>     object
> >>> }
> >>>
> >>> corMatrix.corSPT<- function(object,covariate = NULL,corr=TRUE, ...) {
> >>>   if (corr) {
> >>>     temp<- coef(object[["time"]],unconstrained=FALSE)
> >>>     cat(temp)
> >>>     time.rng<- temp[1]
> >>>     time.nug<- temp[2]
> >>>     temp<- coef(object[["space"]],unconstrained=FALSE)
> >>>     space.rng<- temp[1]
> >>>     space.nug<- temp[2]
> >>>     cor.time<- lapply(attr(object[["time"]],"covariate"),function(mat)
> >>> (1-time.nug)*exp(-mat/time.rng))
> >>>     cor.space<-
> lapply(attr(object[["space"]],"covariate"),function(mat)
> >>> (1-space.nug)*exp(-mat/space.rng))
> >>>     x<- lapply(seq(length(cor.time)),function(mat)
> >>> round(cor.time[[mat]]+cor.space[[mat]],4))
> >>>     attr(x, "logDet")<- NULL
> >>>   } else {
> >>>     d<- Dim(object)
> >>>     gg<- rep(seq(d$M),each=d$len^2)
> >>>     cf<- corFactor(object)
> >>>     lD<- attr(cf, "logDet")
> >>>     x<- lapply(seq(d$M),function(mm) {mat<- cf[gg==mm];
> >>> matrix(mat,nrow=d$len[mm])})
> >>>     attr(x,"logDet")<- lD
> >>>   }
> >>>   return(x)
> >>> }
> >>>
> >>> corFactor.corSPT<- getS3method("corFactor","corStruct")
> >>> logDet.corSPT<- getS3method("logDet","corStruct")
> >>> recalc.corSPT<- getS3method("recalc","corStruct")
> >>>
> >>> formula.corSPT<- function(object,...) {
> >>>   a<- as.character(formula(object[["time"]]))
> >>>   b<- as.character(formula(object[["space"]]))
> >>>   a<- strsplit(a[2],split="|",fixed=TRUE)[[1]]
> >>>   b<- strsplit(b[2],split="|",fixed=TRUE)[[1]]
> >>>   as.formula(paste("~",a[1],"+",b[1],"|",a[2]))
> >>> }
> >>>
> >>> Dim.corSPT<- function(object,...) {
> >>>   Dim(object[["time"]],...)
> >>> }
> >>>
> >>> debug(corSPT)
> >>> debug(getS3method("recalc","corSpatial"))
> >>> debug(getS3method("recalc","corStruct"))
> >>> debug(getS3method("Initialize","corSPT"))
> >>> debug(getS3method("coef<-","corSPT"))
> >>> debug(getS3method("coef","corSPT"))
> >>> debug(getS3method("corFactor","corSPT"))
> >>> debug(getS3method("logDet","corStruct"))
> >>> debug(getS3method("logLik","lmeStruct"))
> >>> debug(getS3method("recalc","modelStruct"))
> >>> debug(getS3method("recalc","corStruct"))
> >>> debug(getS3method("corMatrix","corSPT"))
> >>> debug(getS3method("coef<-","reStruct"))
> >>> debug(getS3method("coef<-","modelStruct"))
> >>> debug(getS3method("corMatrix","corSpatial"))
> >>> debug(getS3method("Initialize","corSpatial"))
> >>> debug(getS3method("Initialize","corStruct"))
> >>>
> >>> mymodel<- lme(fixed = e ~ a,random= ~ 1 |
> >>> g,data=df,correlation=corSPT(corExp(c(1,.5),form = ~ t |
> >>> g,nugget=TRUE),corExp(c(1,.5),form= ~ x + y | g,
> >>> nugget=TRUE)),control=list(msVerbose=TRUE,opt="nlminb"))
> >>>
> >>> ## End
> >>>
> >>>
> >>> 2010/4/21 Uwe Ligges<lig...@statistik.tu-dortmund.de>
> >>>
> >>>
> >>>>
> >>>> On 21.04.2010 18:19, Michael Steven Rooney wrote:
> >>>>
> >>>> The R version is 2.9.2.
> >>>>>
> >>>>>
> >>>> Please try with R-2.11.0 RC (release candidate) to be released
> tomorrow
> >>>> as
> >>>> well as a recent version of nlme.
> >>>>
> >>>> If its still fails, please send code (and data, if you do not generate
> >>>> them
> >>>> in the code) that reproduces the problem.
> >>>>
> >>>> Uwe Ligges
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>  nlme version is 3.1-93
> >>>>
> >>>>> The OS is Windows XP.
> >>>>> This is for my work computer but I get the same behavior at home
> using
> >>>>> Vista.
> >>>>> ---------- Forwarded message ----------
> >>>>> From: Sarah Goslee<sarah.gos...@gmail.com>
> >>>>> Date: Wed, Apr 21, 2010 at 11:50 AM
> >>>>> Subject: Re: [R] R crashing oddly
> >>>>> To: Michael Steven Rooney<michael.s.roo...@gmail.com>
> >>>>>
> >>>>>
> >>>>> You definitely need to provide the information requested in the
> posting
> >>>>> guide,
> >>>>> specifically OS, R version, package version (and update to the newest
> if
> >>>>> you
> >>>>> haven't yet).
> >>>>>
> >>>>> Sarah
> >>>>>
> >>>>> On Wed, Apr 21, 2010 at 11:41 AM, Michael Steven Rooney
> >>>>> <michael.s.roo...@gmail.com>   wrote:
> >>>>>
> >>>>> Hi,
> >>>>>>
> >>>>>> I am working with the package nlme, and I tried creating a new
> >>>>>> correlation
> >>>>>> class (which, according to the help pages, is possible if you write
> a
> >>>>>> few
> >>>>>> new method functions). Anyways, I think I am 99% of the way there,
> but
> >>>>>> I
> >>>>>> have a recurring problem with R crashing on seemingly innocuous
> >>>>>> statements
> >>>>>> (I have set debug() on nearly every function, so I can see where it
> is
> >>>>>> failing).
> >>>>>>
> >>>>>>  --
> >>>>>>
> >>>>> Sarah Goslee
> >>>>> http://www.functionaldiversity.org
> >>>>>
> >>>>>        [[alternative HTML version deleted]]
> >>>>>
> >>>>> ______________________________________________
> >>>>> 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<http://www.r-project.org/posting-guide.html>
> <http://www.r-project.org/posting-guide.html>
>  >>>>> and provide commented, minimal, self-contained, reproducible code.
> >>>>>
> >>>>>
> >>>>
> >>>
> >
> >        [[alternative HTML version deleted]]
> >
> > ______________________________________________
> > 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<http://www.r-project.org/posting-guide.html>
> > and provide commented, minimal, self-contained, reproducible code.
> >
>
>
>
> --
> Joshua Wiley
> Senior in Psychology
> University of California, Riverside
> http://www.joshuawiley.com/
>

        [[alternative HTML version deleted]]

______________________________________________
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.

Reply via email to