Short Version: can I substitute the Moore-Penrose generalized inverse of a matrix (R function ginv()) for a matrix inverse (R function solve()) when computing standard errors in a maximum likelihood estimate?

Long Version: I am applying Hausman et. al.'s model for estimating the probability of misclassification in a binary dependent variable in R (ungated version of the paper is here, I am estimating equation 7). This involves estimating a slightly modified likelihood function for a probit model in which we include 2 additional parameters: one for the false-positive rate and the other for the false-negative rate. Briefly, let us call $$\alpha0=Pr(Y^O=1|Y^T=0),$$ and $$\alpha1=Pr(Y^O=0|Y^T=1),$$ where $Y^O$ is the observed binary dependent variable and $Y^T$ is the true value of the binary dependent variable. Thus we can interpret $\alpha0$ as the false positive rate and $\alpha1$ as the false negative rate. Given certain assumptions, we can write the expected value of the $Y^O$ as: $$E(Y^O|X)=\alpha0 + (1 - \alpha0 - \alpha1)F(X'\beta).$$

The values of $\alpha0$ and $\alpha1$ can be computed by maximum likelihood, and I am attempting to do so using the function nlm() (the code is a modified version of a function misclass which was in version 1.1.1 of the R package McSpatial).

To compute standard errors, I need to invert the Hessian matrix generated by my call to nlm(), which I do with the R function solve(). However, I fairly frequently run into the problem that the matrix is not-invertible - although I have no problems in estimating a vanilla probit model with the same design matrix.

Since I am only interested in the misclassification parameters, I experimented with swapping out the function solve() and using a pseudo-inverse with the function ginv(). In simulated data I see no impact on the accuracy with which the model estimates $\alpha0$ and $\alpha1$. However, my simulated data is unlikely to anticipate all the ways the model can break, and I am curious if there is a more formal or rigorous way in which to determine whether and when it is OK to exchange an inverse for a pseudo-inverse. I'd be grateful for any advice about whether it is OK to use the pseudo-inverse, or direction towards readings that could help me figure this out.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.