Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • How to create nonrecursive models with probit regressions, or probit regressions with correlated residuals?

    I have two questions:
    1. I would like to know if the fact that it’s not possible to run gsem with nonrecursive models (feedback loops or correlated errors) is a limitation of Stata or it is not possible in general. If, in theory, it’s possible, is there a way to run it on Stata?
    2. I saw on https://www.statalist.org/forums/for...obit-equations, answer #3, that it’s possible to run a biprobit model using gsem by creating a latent variable from the dependent variables, fixing their variance and beta as 1, and setting covariance between the latent variables. So this procedure creates residuals for the probits,right? Does it make sense to use the same procedure to create residuals for probit regressions but in contexts other than biprobit? I want to create a model with probit regressions with correlated residuals where one dependent variable from a regression explains the other. I also want to add latent variables (so it will become a Generalized Structural Equation Model). I’m thinking of using gsem because, in my case, there is more than one endogenous variable in my model, so the intention is to consider the complex relations between the relevant variables and identify the weight of relevant latent variables. Here is a simplified illustration of the model's structure I’m interested in creating (obs.: the last model is not converging, but the idea is just to show the structure):
    Code:
    webuse school,clear
     
    *biprobit
    biprobit (private = logptax loginc years) (vote = logptax years), nolog
    
    *biprobit using gsem
    gsem (private <- logptax loginc years) (vote <- logptax years) ///
        (private@1 <- F1) (vote@1 <- F2), family(binomial) link(probit) ///
        variance(F1@1 F2@1) covariance(F1*F2)
    
    * A simplified illustration of the model structure I'm interested in creating
    gsem (private <- logptax loginc years, probit) ///
        (vote <- private, probit) ///
        (private@1 <- F1, probit) (vote@1 <- F2, probit) ///
        (vote school <- Latent, probit) ///
        (logeduc <- Latent, ), latent (F1 F2 Latent) ///
        variance(F1@1 F2@1) covariance(F1*F2)
    To make things clearer, I am also posting the figure with the paths from the SEM Builder of the model structure I'm interested in creating:
    Click image for larger version

Name:	SEM_Example.jpg
Views:	1
Size:	21.0 KB
ID:	1679273




    Thank you!
    Last edited by Fernando Flores Tavares; 25 Aug 2022, 10:31.
Working...
X