Khedhaouiria Dikra
2015-Sep-16 21:50 UTC
[R] HELP ERROR WHEN USING GAMMA2 IN VGLM TO SET MU AS AN INTERCEPT
Hi everyone, I'm trying to fit several models with the VGAM packages using the gamma2 function with an identity function link. I have two vectors, x_m and y_m and I try to work on the model y_m~x_m. My code is below, but I want to explain my problem first: First, I took the default model proposed in vgml function (fit1 below), i.e. shape as an intercept --> no problem Then, I tried the model with zero=NULL (fit3 below), meaning that all parameters are modelled as a function of the explanatory variables (x_m) --> again no problem Finally, I tried to model mu parameter as an intercept only , i.e. setting zero=1, here my problems begin. In fact, I have the following error message: VGLM linear loop 1 : loglikelihood = NaN Error in if (take.half.step) { : missing value where TRUE/FALSE needed In addition: Warning message: In dgamma(x = y, shape = c(shapemat), scale = c(mymu/shapemat), : production de NaN I tried to change the initial value (inject estimated parameters of fit2 in fit3) , the number of iteration, but nothing changed, always the same problem. I tried other link functions (log), it worked but I really want to make it works with the identity link. Thank you so much! Dikra Here is my code: # Empty the environnement rm (list=ls()) #--- needed environnment library(VGAM) #------------ set the working directorty pathWork <- "C:/mydata/" setwd(pathWork) #--------- load my data dataXmodel <- read.table("x_m.txt") dataYmodel <- read.table("y_m.txt") # ------ set the data frame xmodel <- dataXmodel$x ymodel <- dataYmodel$x gdata = data.frame(xmodel , ymodel) #------------ fit 1 fit1 <- vglm(ymodel ~ xmodel, family = gamma2(lmu ="identitylink", lshape="identitylink"), trace = TRUE , data = gdata, na.action = "na.omit") # identify potential initial values for next steps CoefFit1 <- coef(fit1) valinitial2 = c(CoefFit1, 0.01) valinitial3 = c(CoefFit1[1], CoefFit1[2], 0.02) # --------- fit 2 fit2 <- vglm(ymodel ~ xmodel, family = gamma2(lmu ="identitylink", lshape="identitylink", zero = NULL), trace = TRUE , data = gdata, na.action = "na.omit", coefstart =valinitial2 ) # --------- fit 3 fit3 <- vglm(ymodel ~ xmodel, family = gamma2(lmu ="identitylink", lshape="identitylink", zero = 1), trace = TRUE , data = gdata, na.action = "na.omit" , coefstart = valinitial3 , maxit=60) -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: x_m.txt URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20150916/a073ab3d/attachment.txt> -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: y_m.txt URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20150916/a073ab3d/attachment-0001.txt>
Rolf Turner
2015-Sep-17 01:33 UTC
[R] HELP ERROR WHEN USING GAMMA2 IN VGLM TO SET MU AS AN INTERCEPT
On 17/09/15 09:50, Khedhaouiria Dikra wrote:> Hi everyone, > > > I'm trying to fit several models with the VGAM packages using the > gamma2 function with an identity function link. ......<SNIP> For questions concerning a particular package it is usually best to contact the package maintainer (see maintainer("VGAM")) in the first instance. If you do not get a response from the maintainer, then address the R-help list. cheers, Rolf Turner -- Technical Editor ANZJS Department of Statistics University of Auckland Phone: +64-9-373-7599 ext. 88276