This is an internal function used to check the convergence of the optim function.

check_support(target_stats, stats_statmat, threshold = 0.8, warn = TRUE) check_convergence(optim_output, model, support, crit = 5)

target_stats, stats_statmat | See ergmito_formulae. |
---|---|

threshold | Numeric scalar. Confidence range for flagging an observed statistic as potentially near the boundary. |

warn | logical scalar. |

optim_output | A list output from the stats::optim function. |

model | An object of class ergmito_loglik. |

support | As returned by |

crit | Numeric scalar. Level at which a parameter estimate will be questioned. |

A list with the following components:

`par`

Updated set of parameters`vcov`

Updated variance-covariance matrix`valid`

Vector of integers with the parameters that are marked as OK.`status`

Return code of the analysis. See details.`note`

A note describing the status.

The function makes an analysis of the outcome of the model and makes the corresponding adjustments when required. In particular, we check:

Whether the optimization algorithm converged or not

If the obtained estimates maximize the function. If this is not the case, the function checks whether the MLE may not exist. This usually happens when the log-likelihood function can improve by making increments to parameters that are already tagged as large. If the ll improves, then the value is replaced with

`Inf`

(+- depending on the sign of the parameter).If the Hessian is semi-positive-definite, i.e. if it is invertible. If it is not, it usually means that the function did not converged, in which case we will use MASS::ginv instead.

The return codes are composed of two numbers, the first number gives information regarding of the parameter estimates, while the second number give information about the variance-covariance matrix.

Column 1:

0: Converged and estimates at the max.

1: It did not converged, but I see no issue in the max.

2: One or more estimates went to +/-Inf

3: All went to hell. All estimates went to +/-Inf

Column 2:

0: Hessian is p.s.d.

1: Hessian is not not p.s.d.

Possible codes and corresponding messages:

00 All OK (no message).

01 optim converged, but the Hessian is not p.s.d. .

10 optim did not converged, but the estimates look OK. .

11 optim did not converged, and the Hessian is not p.s.d. .

20 A subset of the parameters estimates was replaced with +/-Inf. .

21 A subset of the parameters estimates was replaced with +/-Inf, and the Hessian matrix is not p.s.d. .

30 All parameters went to +/-Inf suggesting that the MLE may not exists. .