another case of "cannot compute standard errors"

72 views
Skip to first unread message

Evan Hersh

unread,
Aug 12, 2019, 4:54:34 PM8/12/19
to Aster Analysis User Group
Hello aster masters!

I'm a late-stage PhD student with data from a long-term reciprocal transplant experiment, and everyone I've talked to about my analyses has told me "you should use the aster model", so here I am! Briefly, I've got a perennial plant (in the Asteraceae!) that has two reproductive modes (sexual and asexual) that I've planted in 8 common gardens across the range and collected data over 5 years. Currently, I'm just trying to model survival, flowering, and flower head count to compare fitness of sexuals and asexuals in my gardens. I also have plant size data that I'd eventually like to incorporate, but I'll save that for later given that I'm already running into problems with the "simple" model...Here's what I'm running:

aout1 <- aster(resp ~ varb + fit : (ms*garden), pred=pred, fam=fam, varvar=varb, idvar=id, root=root, data = redata)

where "ms" is the reproductive mode of the individuals, and "garden" is the garden site (see attached data and script).

I'm running into model convergence issues (I think?), and receive the "cannot compute standard errors" error after using summary.aster() on my model object. I've read through the post here (https://groups.google.com/forum/#!topic/aster-analysis-user-group/oivUr6Q99rE), and tried fiddling with info.tol and checking for directions of recession. I was able to get one of my models to spit out a summary after setting info.tol = 1e-20 (checking "bar" for direction of recession returned all 0's...), but most of my models still spit out the error regardless of the info.tol value. Reading through the above-linked post, I've attempted to summarize my data to find obvious node problems, and did find that in the final year (2019), there were no surviving sexual individuals in one of the gardens, but I don't really know if that's causing the problem or how to fix it...

All that said, I don't really know what I'm doing, and as Charles wrote in one of his slide decks "If you don't understand what you are doing, then it is probably wrong". Any tips you may provide to get me started on troubleshooting would be much appreciated! 

Thanks,

Evan
aster_example_Hersh.RData
aster_help_Hersh.R

geyer

unread,
Aug 15, 2019, 3:20:06 PM8/15/19
to Aster Analysis User Group
I downloaded your code and fixed it.  See attached.

The problem was that there were no flowers, hence no buds in 2015.  So those 2 nodes need to be removed from the graph.  Then everything works.

Since there were a large number of individuals surviving, we can say the probability of flowering in the first year is essentially zero.  But if you want more aster models course slides deck 9, slides 74 ff
aster_help_Hersh.R
aster_help_Hersh.Rout

Evan Hersh

unread,
Aug 15, 2019, 5:37:53 PM8/15/19
to Aster Analysis User Group
Wow, thanks for the quick and effective response, Charlie! That's quite a relief. I'll likely be reporting back soon with additional questions as I continue my analyses.

Cheers,

Evan

Evan Hersh

unread,
Aug 27, 2019, 4:59:28 PM8/27/19
to Aster Analysis User Group

Hello All,


I've run into another problem along the same lines as above. The model works (thanks to Charlie's help) with 'garden' and 'mating system' effects, but when I attempt to replace ‘mating system’ with 'population' effects, I get "cannot compute standard errors" again. 


aout3 <- aster(resp ~ varb + fit : (pop*garden), pred=pred, fam=fam, varvar=varb, idvar=id, root=root, data = redata)


There are 6 populations per mating system planted in each garden, and after making a few summaries it's clear that there are several '0's' across the dataset (i.e. gardens/years where there are no members of that population alive and/or flowering). This seems like it would be the culprit, but I'm not sure how to deal with it. Please let me know if you have any tips!


Interestingly, I tried putting population as a random effect using reaster, and the model worked (or at least didn’t return the “cannot compute standard errors” error). 


rout <- reaster(resp ~ varb + fit : (garden * ms), list(pop = ~ 0 + fit : pop), pred=pred, fam=fam, varvar=varb, idvar=id, root=root, data = redata)


This type of model (with ‘mating system’ as fixed and ‘population’ as nested/random) is what I originally envisioned, but I’d still like to explore ‘population’ as a fixed effect, so I’d like to get that working if possible.  On a side note, is anova(aout, rout) a meaningful way to compare model fit between aster and reaster models?  


.RData file and R script attached. Thanks for your time and expertise!


Evan

aster_example2_Hersh.RData
aster_help_Hersh.R
Reply all
Reply to author
Forward
0 new messages