Announcement

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

  • Help: SEM goodness-of-fit

    Hello! I have performed a sem analysis, and I have also tested the goodness of fit of my model with the Stata command of "estat gof, stats(all)". The outcome it has given me is confusing me. It is the first time I am performing this statistic, and although I have read the SEM Stata reference manul and also idre ucla article on that, I really do not understand how to interpret the chi2. Here is the outcome.
    ----------------------------------------------------------------------------
    Fit statistic | Value Description
    ---------------------+------------------------------------------------------
    Likelihood ratio |
    chi2_ms(0) | 0.000 model vs. saturated
    p > chi2 | .
    chi2_bs(11) | 86.468 baseline vs. saturated
    p > chi2 | 0.000
    ---------------------+------------------------------------------------------
    Population error |
    RMSEA | 0.000 Root mean squared error of approximation
    90% CI, lower bound | 0.000
    upper bound | 0.000
    pclose | 1.000 Probability RMSEA <= 0.05
    ---------------------+------------------------------------------------------
    Information criteria |
    AIC | 20059.081 Akaike's information criterion
    BIC | 20112.062 Bayesian information criterion
    ---------------------+------------------------------------------------------
    Baseline comparison |
    CFI | 1.000 Comparative fit index
    TLI | 1.000 Tucker-Lewis index
    ---------------------+------------------------------------------------------
    Size of residuals |
    SRMR | 0.000 Standardized root mean squared residual
    CD | 0.132 Coefficient of determination
    ----------------------------------------------------------------------------
    */

    So my main question is : Why the chi2 reporting my model versus saturated model equals to 0.000. Does it mean that my independent variables contain measurement errors? In that case, how do I need to interpret the second chi2? baseline versus saturated. At first sight it seems to me that the model poorly fits the data, but I am not entirely sure.

    Thank you so much for your help

    Best




  • #2
    Hello Sofie,

    Please use the CODE delimiters to share output, as recommended in the FAQ.

    The chi-square test indicates your model could be improved. We may also see the dfs.

    But you didn't say much about the model neither the variables. In general, there are quite interesting GOF parameters but a low coefficient of determination. Something to reflect about.
    Last edited by Marcos Almeida; 04 Feb 2017, 05:27.
    Best regards,

    Marcos

    Comment


    • #3
      Like Marcos says, this is really really hard to read, plus we don't know anything about the model that was estimated. But your output does say

      Likelihood ratio |
      chi2_ms(0) | 0.000 model vs. saturated

      That implies that whatever model you ran, it was equivalent to the saturated model, i.e. you estimated as many parameters as you had variances and covariances in the data. Your other fit stats suggest the same thing.

      If you show us the sem command and more of the (legible) output, we might be able to say more. But double-check to make sure you were specifying the model you wanted.

      For an excellent source on Stata sem, see

      http://www.stata.com/bookstore/disco...g-using-stata/
      -------------------------------------------
      Richard Williams, Notre Dame Dept of Sociology
      StataNow Version: 19.5 MP (2 processor)

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

      Comment


      • #4
        [Hello. I will try to use dataex and also the option to present my question and data in a more legible way. Here is a sample of my data: clear
        input float sanct byte militarism float inter byte(sex edu age employ income repdem libcons foreignnews)
        4 1 3 1 4 1 1 11 2 2 4
        5 3 4 1 3 2 3 6 2 3 4
        6 4 4 2 3 1 6 11 3 2 3
        6 2 5 2 2 1 6 11 2 1 6
        2 5 2 2 4 1 6 8 3 2 6
        4 1 3 2 4 1 6 1 . 4 4
        2 4 4 2 2 1 6 8 3 2 5
        4 2 3 2 3 1 1 3 2 1 4
        4 3 3 1 4 1 6 6 3 2 4
        4 3 6 2 4 2 1 8 3 3 5
        3 3 1 2 4 5 2 4 4 4 4
        4 3 2 1 4 2 1 3 3 3 4
        6 1 3 2 3 2 2 2 3 2 5
        3 2 3 1 4 1 6 6 2 4 7
        3 3 2 1 2 1 6 6 2 2 6
        6 4 5 1 2 1 1 4 3 1 5
        4 1 4 2 4 2 2 9 3 1 6
        5 3 5 2 4 2 1 8 3 4 5
        2 2 2 1 2 1 3 11 4 1 7
        4 2 3 2 3 2 1 2 3 2 6
        3 2 2 2 3 3 1 4 3 1 4
        6 3 3 1 4 2 4 1 2 4 5
        5 1 4 1 2 1 2 11 2 5 3
        6 3 6 2 3 1 6 6 3 2 6
        6 2 4 1 4 1 6 3 1 4 3
        5 1 5 2 3 1 6 5 2 4 4
        5 2 1 1 2 1 1 2 . 2 7
        6 3 1 1 4 3 1 4 2 6 5
        end
        label values sanct sanct
        label def sanct 1 "strongly disapprove", modify
        label def sanct 2 "disapprove", modify
        label def sanct 3 "somewhat disapprove", modify
        label def sanct 4 "somwhat approve", modify
        label def sanct 5 "approve", modify
        label def sanct 6 "strongly approve", modify
        label values militarism militarism
        label def militarism 1 "agree strongly", modify
        label def militarism 2 "agree", modify
        label def militarism 3 "agree somewhat", modify
        label def militarism 4 "disagree somewhat", modify
        label def militarism 5 "disagree", modify
        label def militarism 6 "disagree strongly", modify
        label values inter inter
        label def inter 1 "disagree strongly", modify
        label def inter 2 "disagree", modify
        label def inter 3 "disagree somewhat", modify
        label def inter 4 "agree somewhat", modify
        label def inter 5 "agree", modify
        label def inter 6 "agree strongly", modify
        label values sex sex
        label def sex 1 "male", modify
        label def sex 2 "female", modify
        label values edu edu
        label def edu 1 "less than high school", modify
        label def edu 2 "high school graduate", modify
        label def edu 3 "high school", modify
        label def edu 4 "associate's/junior college", modify
        label def edu 5 "bachelor's", modify
        label def edu 6 "graduate's (masters, mba, phd, md)", modify
        label values age age
        label def age 1 "18-25", modify
        label def age 2 "26-35", modify
        label def age 3 "36-45", modify
        label def age 4 "46-55", modify
        label def age 5 "56-65", modify
        label values employ employ
        label def employ 1 "employed for wages", modify
        label def employ 2 "self-employed", modify
        label def employ 3 "out of work and looking for work", modify
        label def employ 4 "out of work but not looking for wor", modify
        label def employ 5 "homemaker", modify
        label def employ 6 "student", modify
        label def employ 7 "retired", modify
        label def employ 8 "other", modify
        label values income income
        label def income 1 "less than $10,000", modify
        label def income 2 "$10,000-$19,999", modify
        label def income 3 "$20,000-$29,999", modify
        label def income 4 "$30,000-$39,999", modify
        label def income 5 "$40,000-$49,999", modify
        label def income 6 "$50,000-$59,999", modify
        label def income 7 "$60,000-$69,999", modify
        label def income 8 "$70,000-$79,999", modify
        label def income 9 "$80,000-$89,000", modify
        label def income 10 "$90,000-$99,999", modify
        label def income 11 "$100,000-$149,999", modify
        label def income 12 "more than $150,000", modify
        label values repdem repdem
        label def repdem 1 "republican", modify
        label def repdem 2 "independent", modify
        label def repdem 3 "democrat", modify
        label def repdem 4 "another", modify
        label values libcons libcons
        label def libcons 1 "extremely liberal", modify
        label def libcons 2 "liberal", modify
        label def libcons 3 "slighly liberal", modify
        label def libcons 4 "moderate, middle of the road", modify
        label def libcons 5 "slighly conservative", modify
        label def libcons 6 "conservative", modify
        label def libcons 7 "extremely conservative", modify
        label values foreignnews foreignnews
        label def foreignnews 1 "once a year", modify
        label def foreignnews 2 "2-3 times a year", modify
        label def foreignnews 3 "once a month", modify
        label def foreignnews 4 "2-3 times a month", modify
        label def foreignnews 5 "once a week", modify
        label def foreignnews 6 "2-3 times a week", modify
        label def foreignnews 7 "daily", modify
        [/then I performed this command:
        clear all
        ssd init sanct militarism inter treatment age sex edu employ income repdem libcons foreignnews /*variables*/
        ssd set observations 611 /*observations*/

        *Correlation matrix

        #delimit ;
        ssd set correlations
        1\
        0.0991 1\
        0.2809 0.3513 1\
        0.0128 0.0256 -0.0356 1\
        0.1342 0.1173 0.0712 0.025 1\
        -0.0484 -0.0846 -0.0567 0.0384 0.1524 1\
        0.0938 -0.109 0.0169 -0.0291 0.1533 0.0985 1\
        -0.0751 -0.0154 0.0239 0.0095 -0.2903 0.024 -0.2235 1\
        0.1677 0.027 0.1639 -0.048 -0.0116 -0.0622 0.1518 -0.074 1\
        -0.0518 -0.1985 -0.0433 -0.0065 -0.059 0.137 0.0451 0.0729 -0.0149 1\
        -0.0003 0.3505 -0.0242 -0.0184 0.1353 -0.1398 -0.0703 -0.0894 -0.0453 -0.5675 1\
        0.1747 -0.0032 0.0449 -0.0067 0.1271 -0.132 0.102 -0.0365 0.134 0.0096 -0.018 1;
        #delimit cr
        save ssdmatrix.dat, replace

        * and later sem

        clear
        use ssdmatrix.dat /*use the correlation matrix input as data*/
        ssd list
        sem (sanct<- militarism inter treatment age sex edu employ income repdem libcons foreignnews), standardized /*model*/

        * finally estat gof


        estat gof, stats(all)

        /* the outcome of the "goodness of fit statistics"

        ----------------------------------------------------------------------------
        Fit statistic | Value Description
        ---------------------+------------------------------------------------------
        Likelihood ratio |
        chi2_ms(0) | 0.000 model vs. saturated
        p > chi2 | .
        chi2_bs(11) | 86.468 baseline vs. saturated
        p > chi2 | 0.000
        ---------------------+------------------------------------------------------
        Population error |
        RMSEA | 0.000 Root mean squared error of approximation
        90% CI, lower bound | 0.000
        upper bound | 0.000
        pclose | 1.000 Probability RMSEA <= 0.05
        ---------------------+------------------------------------------------------
        Information criteria |
        AIC | 20059.081 Akaike's information criterion
        BIC | 20112.062 Bayesian information criterion
        ---------------------+------------------------------------------------------
        Baseline comparison |
        CFI | 1.000 Comparative fit index
        TLI | 1.000 Tucker-Lewis index
        ---------------------+------------------------------------------------------
        Size of residuals |
        SRMR | 0.000 Standardized root mean squared residual
        CD | 0.132 Coefficient of determination
        ----------------------------------------------------------------------------
        */

        I hope it makes sense. I am analysing the data this way, because in my next model I am applying a tool to correct for measurement errors; therefore I use the correlation matrix. Thank you so much.
        ]
        ][/CODE]

        Comment


        • #5
          Is it legible this way? I am still learning how to get my head around this forum? Thank you

          Comment


          • #6
            Code:
            ----------------------------------------------------------------------------
            Fit statistic | Value Description
            ---------------------+------------------------------------------------------
            Likelihood ratio |
            chi2_ms(0) | 0.000 model vs. saturated
            p &gt; chi2 | .
            chi2_bs(11) | 86.468 baseline vs. saturated
            p &gt; chi2 | 0.000
            ---------------------+------------------------------------------------------
            Population error |
            RMSEA | 0.000 Root mean squared error of approximation
            90% CI, lower bound | 0.000
            upper bound | 0.000
            pclose | 1.000 Probability RMSEA &lt;= 0.05
            ---------------------+------------------------------------------------------
            Information criteria |
            AIC | 20059.081 Akaike's information criterion
            BIC | 20112.062 Bayesian information criterion
            ---------------------+------------------------------------------------------
            Baseline comparison |
            CFI | 1.000 Comparative fit index
            TLI | 1.000 Tucker-Lewis index
            ---------------------+------------------------------------------------------
            Size of residuals |
            SRMR | 0.000 Standardized root mean squared residual
            CD | 0.132 Coefficient of determination
            ----------------------------------------------------------------------------
            Richard T. Campbell
            Emeritus Professor of Biostatistics and Sociology
            University of Illinois at Chicago

            Comment


            • #7
              Whoops, I hit the send key before I meant to.

              You are part way there. One way to get code tags to work properly is to highlight want you want to appear within code tags and then click on the code icon which is the #.

              That said, in SEM terms you have estimated a regression equation. Your model:

              Code:
              sem (sanct<- militarism inter treatment age sex edu employ income repdem libcons foreignnews), standardized /*model*/
              regresses sanct on a set of right side variables. Such a model will fit the data exactly as this piece of output shows:

              Code:
              Likelihood ratio |
              chi2_ms(0) | 0.000 model vs. saturated
              p > chi2 | .
              chi2_bs(11) | 86.468 baseline vs. saturated
              p > chi2 | 0.000
              To see what is happening, run a simple regression model corresponding to your SEM and compare the results. I''m not sure of what you want to accomplish here but given the model you have shown us you don't really need SEM.
              Richard T. Campbell
              Emeritus Professor of Biostatistics and Sociology
              University of Illinois at Chicago

              Comment


              • #8
                Aside from all previous insightful advices, I fear that the variable "sanct", being a 6-level Likert scale, may not perform great under the proposed - sem - model.
                Best regards,

                Marcos

                Comment

                Working...
                X