Announcement

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

  • Error r(43) convergence not achieved. CFA, SEM, estat gof

    Hi,
    I have a dataset with 12 ordinal variables of 4 categories. I use SEM command to perform CFA and to obtain goodness of fit indicators (Chi2, RMSEA, CFI, TLI, etc).

    My model for analysis is:

    sem (F1 F2 F3 F4-> p001 p002 p003 p004 p005 p006 p007 p008 p009 p010 p011 p012), difficult standardized
    estat gof,stats(all)

    (output omitted )
    The iterations of this model are about 15 thousand. And my problem is that, Stata indicate "error r(430) convergence not achieved"

    I know that this SEM command estimate a maximum likelihood model. That technique assumes that the observed variables are continuous and normally distributed. These assumptions are not met when the observed data are discrete (as occurs when using ordinal scales), thus significant problems can result when fitting CFA models for ordinal scales using ML estimation
    (e.g., B. Muthe´n & Kaplan, 1985)

    So, what command or option I should use or consider for calculate a gof indicators and CFA correctally??

    Thanks for yours anwsers.

  • #2
    This seems like an odd CFA. All 12 observed variables are indicators for all 4 unobserved latent variables. Usually it would be more like F1 has indicators p001 to p003, F2 has indicators p004 to p006, etc. Are you sure you are specifying the model you want? Do you maybe want an exploratory faction analysis instead?
    -------------------------------------------
    Richard Williams, Notre Dame Dept of Sociology
    StataNow Version: 19.5 MP (2 processor)

    EMAIL: [email protected]
    WWW: https://www3.nd.edu/~rwilliam

    Comment


    • #3
      To add a little to Richard's comment, I suspect your model is not identified. You have four factors that influence exactly the same thing. There is no way to identify what should be in the first factor and what should be in the second etc. Not converging is a standard outcome of a model that is not identified.

      Exploratory factor analysis handles this problem by imposing alternative rules. I'm not sure precisely (and different variants may do this differently) but I think normally the first factor associates with the dimension that explains the most variance in the observed variables, the second the factor that explains the most of the remaining variance and is orthogonal to the first factor, etc. However, this is inherently unidentified also (which is why you can rotate the factors and not change the fit)

      Comment


      • #4
        Originally posted by Enrique Vera View Post
        Hi,
        I have a dataset with 12 ordinal variables of 4 categories. I use SEM command to perform CFA and to obtain goodness of fit indicators (Chi2, RMSEA, CFI, TLI, etc).

        My model for analysis is:

        sem (F1 F2 F3 F4-> p001 p002 p003 p004 p005 p006 p007 p008 p009 p010 p011 p012), difficult standardized
        estat gof,stats(all)
        ...
        I know that this SEM command estimate a maximum likelihood model. That technique assumes that the observed variables are continuous and normally distributed. These assumptions are not met when the observed data are discrete (as occurs when using ordinal scales), thus significant problems can result when fitting CFA models for ordinal scales using ML estimation
        (e.g., B. Muthe´n & Kaplan, 1985)

        ...
        Once you resolve the issue about identification that Phil and Richard raised, one way to ameliorate the issue you raised about ordinal indicators would be to use the asymptotic distribution free estimation option, which is robust to violations of the multivariate normal assumption. See the section titled Choice of Estimation Method in SEM intro 4. ADF is a form of weighted least squares. I'm pretty sure that MPlus (developed by Bengt Muthen and Linda Muthen) has this as an estimation option. You'd invoke -method(adf)- as an option.

        Now, from what you said, I assume you have 12 variables that are grouped separately into 4 categories. Maybe you are trying to estimate something more like this:

        Code:
        sem (F1 -> p001 p002 p003) (F2 -> p004 p005 p006) (F3 -> p007 p008 p009) (F4 -> p010 p011 p012), method(adf)
        In that case, the above syntax should treat those 4 latent factors as independent, i.e. they're estimated such that their correlation is zero, akin to orthogonal rotation in EFA. This may or may not be what you want. If it isn't what you want, then you need to familiarize yourself with the covariance structure specification. You could just ask for Stata to use unstructured, so each latent variable has its own variance, and the covariance/correlation between each pair of variables is estimated freely, i.e.

        Code:
        sem (F1 -> p001 p002 p003) (F2 -> p004 p005 p006) ///
        (F3 -> p007 p008 p009) (F4 -> p010 p011 p012), ///
        method(adf) covstruct(F1 F2 F3 F4, unstructured)
        (Note: the /// symbols indicate line breaks. If you copy the whole block of code into a .do file, highlight the whole thing, and run it, it will run perfectly. If you run it line by line, it won't run; Stata will see nothing after the line break and think you're done typing the command in.)

        Either way, you need to think about what variable goes with what construct. You will need to alter your syntax to fit that. Somehow, I doubt very much that the syntax you initially proposed is correct. I know the SEM syntax seems difficult because there are a lot of pages in the manual, but we can help you if you say what you're trying to do.
        Last edited by Weiwen Ng; 26 Nov 2018, 12:08.
        Be aware that it can be very hard to answer a question without sample data. You can use the dataex command for this. Type help dataex at the command line.

        When presenting code or results, please use the code delimiters format them. Use the # button on the formatting toolbar, between the " (double quote) and <> buttons.

        Comment

        Working...
        X