# when can I substitute an inverse with a pseudo-inverse in an estimator

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.