[R] checkConv and as.data.frame.default problems in R

John Fox jfox at mcmaster.ca
Thu Jul 2 15:03:22 CEST 2015


Dear Saudi Sadiq,

On Thu, 2 Jul 2015 11:58:38 +0100
 Saudi Sadiq <ss1272 at york.ac.uk> wrote:
> Hi Jon,
> Thanks for your reply. I will try again, after correcting mistakes. Then,
> if the model does not converge, I will come back to you with datasets
> attached.

To be clear, you might have more luck getting an answer if you make your data available to the r-help list, where you originally posted your question, rather than to me personally, since some other list member may have more insight into your problem. I responded to the part of your original message that pertained to the effects package, of which I'm a coauthor.

John

> Best
> 
> On 1 July 2015 at 21:01, John Fox <jfox at mcmaster.ca> wrote:
> 
> > Dear Saudi Sadiq,
> >
> > If you want answers to most of your questions, you'll likely have to
> > provide your data so that people can reproduce the errors. I can, however,
> > answer part of your last question without the data:
> >
> > plot(allEffects(modelqaaf1)) fails because the data set is named q, and
> > there is a standard R function named q(). Obviously there is a scoping
> > issue that confuses allEffects() for a reason I don't yet understand.
> >
> > Here's a simple example that reproduces this error:
> >
> > ---------- snip ------------
> >
> > > library(lme4)
> > Loading required package: Matrix
> > Loading required package: Rcpp
> > > library(effects)
> > > fm1 <- lmer(angle ~ recipe * temperature + (1|recipe:replicate), cake)
> > > allEffects(fm1)
> >  model: angle ~ recipe * temperature
> >
> >  recipe*temperature effect
> >       temperature
> > recipe      175      185      195      205      215      225
> >      A 29.13333 31.53333 30.80000 33.53333 38.66667 35.06667
> >      B 26.86667 29.40000 31.73333 32.13333 34.46667 35.26667
> >      C 27.93333 28.93333 31.73333 30.86667 34.40000 35.73333
> > > q <- cake
> > > fm1 <- lmer(angle ~ recipe * temperature + (1|recipe:replicate), data=q)
> > > allEffects(fm1)
> >
> >  Error in as.data.frame.default(data, optional = TRUE) :
> >   cannot coerce class ""function"" to a data.frame
> >
> > ------------- snip -------------
> >
> > Why, as you claim, you get the same error with
> > plot(allEffects(modelqaaf)), where the data set is qaaf rather than q, is
> > hard to understand, and perhaps you're mistaken.
> >
> > I hope this helps,
> >  John
> >
> > ------------------------------------------------
> > John Fox, Professor
> > McMaster University
> > Hamilton, Ontario, Canada
> > http://socserv.mcmaster.ca/jfox/
> >
> >
> > On Wed, 1 Jul 2015 15:40:48 +0100
> >  Saudi Sadiq <ss1272 at york.ac.uk> wrote:
> > > Hi All,
> > >
> > > I have two datasets, vowels and qaaf, and both have 8 columns clarified
> > as
> > > follows:
> > >
> > > 1.  convergence: DV (whether participants succeeded to use CA (Cairene
> > > Arabic) or fail to do so; hence, they use MA (Minia Arabic)
> > >
> > > 2.  speaker: 62 participants
> > >
> > > 3.  lexical.item: as pronounced
> > >
> > > 4.  style: careful and casual
> > >
> > > 5.  gender: males and females
> > >
> > > 6.  age: continues variable
> > >
> > > 7.  residence: urbanite, migrant to town or villager
> > >
> > > 8.  education: secondary or below, university or postgraduate
> > >
> > > The only difference between the two datasets is the number of items. With
> > > the vowels dataset, there are 1339 items; in the qaaf dataset there are
> > > 4064 items.
> > >
> > > The aim of the test done was to know which independent variable is more
> > > responsible for using CA forms. I used the lme4 package, function glmer.
> > >
> > > I ran the model:
> > >
> > > 1.  modelvowels <- glmer(convergence ~ gender + age + residence +
> > > education +  style+ (1|lexical.item) + (1|speaker), data=vowels,
> > > family='binomial')
> > >
> > > The message came on the screen:
> > >
> > > 2.  Warning message:
> > >
> > > In checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv,  :
> > >
> > >   Model failed to converge with max|grad| = 0.00210845 (tol = 0.001,
> > > component 1)
> > >
> > > Then I ran the model after removing STYLE as follows:
> > >
> > > 3.  modelvowels <- glmer(convergence ~ gender + age + residence +
> > > education + (1|lexical.item) + (1|speaker), data=vowels,
> > > family='binomial')
> > >
> > > This produced a result. Then, I ran
> > >
> > > 4.  plot(allEffects(modelvowels))
> > >
> > >
> > >
> > > and this gave four charts (for the four independent variables: gender,
> > age,
> > > residence and education).
> > >
> > > Then, I moved to the qaaf dataset (4064 items) and ran the same model
> > >
> > > 5.  modelqaaf <- glmer(convergence ~ gender + age + residence +
> > > education + (1|lexical.item) + (1|speaker), data=qaaf,
> > > family='binomial')
> > >
> > > which gave results with the vowels dataset but there was a warning
> > message
> > > this time
> > >
> > > 6.  Warning message:
> > >
> > > In checkConv(attr(opt, "derivs"), opt$par, ctrl = control$checkConv,  :
> > >
> > >   Model failed to converge with max|grad| = 0.429623 (tol = 0.001,
> > component 8)
> > >
> > > So, I removed one independent variable (residence) and ran this model
> > again:
> > >
> > > 7.  modelqaaf <- glmer(convergence ~ gender + age + education +
> > > (1|lexical.item) + (1|speaker), data=qaaf, family='binomial')
> > >
> > > This gave a result. I removed another independent variable (gender) after
> > > returning (residence) and ran the model:
> > >
> > > 8.  modelqaaf1 <- glmer(convergence ~ residence + age + education +
> > > (1|lexical.item) + (1|speaker), data=q, family='binomial')
> > >
> > > This gave a result as well. Then, I tried to create some graphs using
> > >
> > > 9.  plot(allEffects(modelqaaf)) and
> > >
> > > 10. plot(allEffects(modelqaaf1))
> > >
> > >
> > >
> > > but there was the same error for both
> > >
> > > 11. Error in as.data.frame.default(data, optional = TRUE) :
> > >
> > >   cannot coerce class ""function"" to a data.frame
> > >
> > >  Now, my questions:
> > >
> > > a.  why 1 did not work, why 3 worked, why 5 did not work though it has
> > > the same four IVs of 3, why 7 and 8 worked with only three IVs, and
> > > why 9 and 10 did not work though they are like 4 which worked well.
> > >
> > >
> > >
> > > b.  What are the packages that must be installed with, before or after
> > > the lme4 package?
> > >
> > >
> > >
> > >  Best
> > >
> > > --
> > > Saudi Sadiq,
> > > Assistant Lecturer, English Department,
> > > Faculty of Al-Alsun,Minia University,
> > > Minia City, Egypt &
> > > PhD Student, Language and Linguistic Science Department,
> > > University of York, York, North Yorkshire, UK,
> > > YO10 5DD
> > > http://york.academia.edu/SaudiSadiq
> > > https://www.researchgate.net/profile/Saudi_Sadiq
> > > Certified Interpreter by Pearl Linguistics
> > >
> > > Forum for Arabic Linguistics conference ???? ???????
> > > 28-30th July 2015 - call for papers now open
> > > https://sites.google.com/a/york.ac.uk/fal2015/
> > >
> > >       [[alternative HTML version deleted]]
> > >
> > > ______________________________________________
> > > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> > > 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.
> >
> >
> >
> >
> 
> 
> -- 
> Saudi Sadiq,
> Assistant Lecturer, English Department,
> Faculty of Al-Alsun,Minia University,
> Minia City, Egypt &
> PhD Student, Language and Linguistic Science Department,
> University of York, York, North Yorkshire, UK,
> YO10 5DD
> http://york.academia.edu/SaudiSadiq
> https://www.researchgate.net/profile/Saudi_Sadiq
> Certified Interpreter by Pearl Linguistics
> 
> Forum for Arabic Linguistics conference ???? ???????
> 28-30th July 2015 - call for papers now open
> https://sites.google.com/a/york.ac.uk/fal2015/



More information about the R-help mailing list