I am trying to create a dataset using a Probit regression model in R, where I have an intercept and three covariates. I first fix a set of coefficients for the three covariates, generate these covariates using standard normal or binomial functions. Then I generate the latent variable Z from a normal distribution centered on my linear function of coefficients and covariates and with variance 1. Then I generate the response variable which takes values 0 or 1, depending on a whether my latent variable Z is below or above 0.

My question: is it necessary to have a variance 1 for Z, the latent variable? If I set this to be some other value, does it mean I will first have to scale Z? See code below for this example. Also, does the cut off value need to be 0? I see that this seems to be a standard assumption but how can I have this different, if possible?

My code is:

nobs <- 5000               # observations
t.beta <- c(1, 1.2, -4, 2) # Coefficients 
X <- cbind(rep(1, nobs), rnorm(nobs, -4, sqrt(2.5)), rbinom(nobs, 1, 0.4), rnorm(nobs, 3, sqrt(2))) 
Z <- rnorm(nrow(X), (X%*%t.beta), 1)   
Y <- as.matrix(ifelse(Z<0, 0, 1)) 

When I run a standard probit regression on this dataset:

probitModel<- glm(Y~X[,2]+as.factor(X[,3])+X[,4],     family=binomial(link="probit")) 

In this code, if I change the variance of Z, or use a different cut-off, when I run the probitModel I do not get the correct coefficients. Why is this so? Is it not possible to use a different cut-off or variance for Z?


A latent variable has no scale of itself, i.e. it is not measured in meters, inches, yen, kilos, so we need to give it one otherwise we don't know what we are measuring. In probit we fix the latent variable's scale by setting the residual variance to 1. You can change that if you want, but than you will get differen parameter estimates, because your dependent variable will have a different scale.

So, if you want to create data for a probit and the coefficients you put into it should be the same as the coefficients you get out when estimating a probit regression, then you need to fix the residual variance to 1.

  • $\begingroup$ Ah, I see the intuition now. Thank you very much. Would you also perhaps be aware of a guide/book/lecture on reasons why this variance or the cut-off could be chosen differently and how to perform that analysis? $\endgroup$ – JennyP Mar 1 '15 at 22:32
  • $\begingroup$ Start with estimating a regular probit. If you want the residual standard deviation to be a number $\varepsilon$, you just divide all the coefficients by $\varepsilon$. Now you have your estimates with a probit with a residual standard deviation of $\varepsilon$. There is no way to choose between the models, they lead to exactly the same predictions. This is what one means when one says that the residial standard deviation is not identified in a probit (logit) model: there is no information whatsoever in the data that can help you estimate it. $\endgroup$ – Maarten Buis Mar 2 '15 at 8:48
  • $\begingroup$ Normally we arbitrarily fix the residual standard deviation of a probit at 1, but if you want it to be $\sqrt{\frac{\pi^2}{3}}$ or any other number you think pretty or otherwise desirable then that is fine too. However, if you choose an other number you need to be very clear in communicating it... $\endgroup$ – Maarten Buis Mar 2 '15 at 8:48
  • $\begingroup$ Thanks, that helps to understand better that the variance of Z is not identifiable. How about the value where we truncate the latent variable, Z, in the analysis? Again, this seems to be set in the built-in function at 0. Just like I generate Y above when Z<=0. What if I put 0.5, why can't I recover the coefficients? Or how can I take this into account when I analyse? $\endgroup$ – JennyP Mar 2 '15 at 13:04
  • $\begingroup$ The cut-point just influences the constant. If you want your cutvalue to be some number $c$ instead of the default 0, you just subtract $c$ from the constant. Again, you can choose any number you like, but if you choose a number other than 0 you need to be very careful to communicate that clearly. $\endgroup$ – Maarten Buis Mar 2 '15 at 13:45

Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.