-
Notifications
You must be signed in to change notification settings - Fork 36
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Penalization option for likelihood function? #590
Comments
If you want something you can try immediately (with the existing code), you might use the penalization scheme from https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0273039. Whether that will help may depend (in addition to other things) on where your original problem lies, and you may need to tweak your computational strategy to take advantage of it. But the basic idea is simple enough: begin with a null model (e.g., a Bernoulli graph with density close to the expected final density); simulate draws from the null model, and calculate your model statistics on these draws (easily done using Anyway, since this only requires setting the Here's an example, using
|
Hi Dylan, An alternative is to try fitting a tapered ERGM model. This has a similar "penalized" aspect to it, although the tapered ERGM is a different model than the plain ERGM. That is, the tapered ERGM will fit because the model is less prone to degeneracy rather than come up with an alternative estimator of the plain ERGM. The tapered ERGM would be less compelling if you had strong theoretical belief in the plain ERGM over the tapered version However, that is rare. For a description see https://github.com/statnet/ergm.tapered. This may fix the original issue of credible simulation. To try it on Carter's alternative you can just try Best, Mark |
Thank you both for these suggestions! I will look into them if the issue persists despite some tweaks to model specification and provide updates if necessary. |
@handcock I have been looking into the option of using a tapered ERGM and have a question about the returned parameter values. My ultimate goal is to use these parameter values to simulate complete networks from the partial network data I have collected; your paper on tapered ERGMs points out that the interpretation of the coefficients for a tapered ERGM are slightly different. Is it still possible to simulate networks from the coefficient values on the tapered ERGM terms directly, or does some kind of adjustment need to be made/the tapering taken into account when the simulations are generated? Thank you. |
Hi Dylan, The Separately, if you have partial network data you will need to specify the tapering centers, and these will need to be estimated from the partial data. We have not extended the code to do this automatically, but is a useful thing to do. |
@handcock Thanks, I think I understand. So basically it is similar to what I would do with a regular ERGM in the sense that I would:
Am I on track here? |
If you are fitting complete/full networks, then you can skip step 3. It is there if you fit the tapered ERGM to an incomplete network (directly). |
One thing to be aware of is that a tapered model assumes the existence of a "restoring force" that tends to drive networks towards the tapering center (like a spring). If you are doing extrapolative simulation, and you think that this is a reasonable interpretation (say, e.g., you have an organizational population where highly deviant structures are likely to be non-functional, and it is plausible that the networks are being actively driven to keep certain properties), then simulating with that assumption may be entirely reasonable. But if not, then relying on that restoring force to patch up an otherwise bad specification may lead to misleading results. That's not a criticism of tapered models - it's just that any model you use is based on certain types of assumptions, and both interpretation of the model and use in extrapolation are sensitive to those assumptions. So be sure that whatever model you use (tapered, non-tapered, etc.) makes some sense in your target application before trusting the networks that come out of it. |
PS. I went and looked at the other thread, and left a comment there. It sounds to me like your underlying issue here may well be bad data. If so, patching that up with penalty functions, tapering, or whatnot is not going to help you (and could even produce misleading results). It seems to me that you probably need to revisit your data before proceeding further with analysis. |
@handcock Thanks very much for the clarification. @CarterButts I responded to your post on the other thread, thanks as well. The TLDR is that I actually don't think the isolates are a major issue but it is possible there are other problems with the data I need to work out first. However, given my conversations with other people that have worked with this type of data before, I don't think these issues should significantly effect estimation. I do also appreciate the suggestion though that I should look more into the assumptions behind the tapered ERGM and make sure they are clear before proceeding further. |
@dylan-munson See my response in the other thread. Your description suggests to me that you have missing data and/or data collection constraints that are not being passed to the model. If so, that is definitely something that is a known source of problems like the ones you are experiencing, so you'd want to take care of that first. |
Hello,
I am having some trouble fitting a model (see my discussion #589 ) and it has been suggested to me that I try penalizing the likelihood function. I know there is a penalized option for the MPLE, but it appears to be broken, I get the error
Error in rep(0, k - 1) : invalid 'times' argument
when I try to pass this argument to
ergm()
. In any case, it is not clear to me from the documentation if this is the type of penalization option that I would want. Thus I wanted to suggest:Thank you.
The text was updated successfully, but these errors were encountered: