Announcement

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

  • help Generalized linear models family gamma log link

    This is my first go round with glm. As my variable distribution appaered positively skewed, i fitted a GLM for continuous gamma-distributed response and log link. how to interpret coefficient?
    below is a simplified example of the model: y is a continue spirometric values and H2S is the esposure variable. i would like to report model coefficients as percent variations in FEV1. can you help me?
    glm best_fev1l H2S, family(gamma) link(log)
    coefficient 0.10
    Last edited by joey sto; 19 Aug 2019, 08:46.

  • #2
    Joey:
    welcome to this forum.
    Set aside that the correct code for what you're seemingly after should be:
    Code:
    glm best_fev1 H2S, family(gamma) link(log)
    instead of:
    Code:
    glm best_fev1| H2S, family(gamma) link(log)
    and assuming that the coefficient for -H2S- is 0.10 (by the way: why did you omit to report what Stata gave you back, as recommended by FAQ? As you can see, my reply heavily draws upon guess-work), each unit increase in -H2S- increases -best_fev1- by:
    Code:
    . di (exp(.10)-1)
    .10517092
    or about 10.52%.
    Kind regards,
    Carlo
    (Stata 19.0)

    Comment


    • #3
      I just want to make sure i've got it right. Let me give you another simple example. As we know the parameter FEV1 decreases with age(coefficient -.010). in exponential terms it becomes .99. What am I supposed to do in this sort of situation? i would like to report model coefficients as percent variations in FEV1.In this case, reduction in percent terms.
      Click image for larger version

Name:	Immagine1.png
Views:	1
Size:	31.7 KB
ID:	1515279

      Comment


      • #4
        the goal is to bring the estimates (coefficient and ci) like this article. J Asthma. 2011 Feb;48(1):84-90. doi: 10.3109/02770903.2010.538106. Epub 2010 Dec 29.

        Asthma symptoms, lung function, and markers of oxidative stress and inflammation in children exposed to oil refinery pollution.

        Rusconi F1, Catelan D, Accetta G, Peluso M, Pistelli R, Barbone F, Di Felice E, Munnia A, Murgia P, Paladini L, Serci A, Biggeri A.

        Author information

        1Unit of Epidemiology, Anna Meyer Children's University Hospital, Florence, Italy. [email protected] Abstract

        OBJECTIVES:

        Little is known about the effects of exposure to petroleum refinery emissions on respiratory health in children. We evaluated lung function and markers of inflammation and oxidative stress in children and adolescents with and without asthma or wheezing symptoms living in a petrochemical polluted area (Sarroch, Sardinia) versus a reference area (Burcei).

        METHODS:

        Parents of 275/300 6- to 14-year-old children living in Sarroch and parents of 214/323 children living in Burcei answered a questionnaire on respiratory symptoms and risk factors. Measurements of forced expiratory volume after 1 second (FEV(1)) and of forced expiratory flow rates at 25-75% of vital capacity (FEF(25-75)) were available in 27 and 23 asthma/wheezing-positive subjects and in 7 and 54 asthma/wheezing-negative subjects in Sarroch and in Burcei, respectively; for fractional exhaled nitric oxide (FE(NO)) corresponding figures were 27 and 24 and 8 and 55 in Sarroch and in Burcei, respectively. Malondialdehyde-deoxyguanosine (MDA-dG) adduct levels in nasal mucosa were measured in 12- to 14-year-old adolescents (8 and 14 asthma/wheezing-positive and 20 and 28 asthma/wheezing-negative subjects in Sarroch and in Burcei, respectively). Air pollutants were assessed during 3 weeks, starting 1 week before lung function, FE(NO), and MDA-dG measurements. Generalized linear models were used to estimate the effect of the area of residence adjusting for confounders.

        RESULTS:

        Weekly average concentrations of sulfur dioxide were 6.9-61.6 μg/m(3) in Sarroch versus 0.3-7.6 μg/m(3) in the rural area of Burcei; of nitrogen dioxide, 5.2-28.7 μg/m(3) versus 1.7-5.3 μg/m(3); and of benzene, 1.8-9.0 μg/m(3) versus 1.3-1.5 μg/m(3), respectively. Children living in Sarroch versus children living in the reference area showed an increase in wheezing symptoms {adjusted prevalence ratio=1.70 [90% confidence interval (CI)=1.01; 2.86]}; a decrease in lung function [variation in FEV(1)=-10.3% (90% CI=-15.0; -6.0%) and in FEF(25-75)=-12.9% (90% CI=-20.7; -4.3%)]; an increase in bronchial inflammation [variation in FE(NO)=+35% (90% CI=11.7; 80.1%)]; and an increase in MDA-dG adducts of +83% (90% CI=22.9; 174.1%).

        CONCLUSIONS:

        Data from this small study are consistent with the role of environmental pollutants on lung function and inflammation.

        Comment


        • #5
          As the label of your coefficient is reported in (almost exact) Italian (eta, should be età; età=age), I was wondering whether you actually subscribed with your real given and family name, as preferred on this forum.
          That said:
          - I would check whether age allows for turning point via adding the interaction
          Code:
          c.eta##c.eta
          in the right hand-side of your regression equation.
          - I would stick with your first -glm- code, where the coefficient for -eta- tells you that each year of age reduces the FEV1 by:
          Code:
           . di exp(-.0100389)-1 -.00998868
          or 0.1%.

          The same transformation can be applied to 90% CI bounds.
          Kind regards,
          Carlo
          (Stata 19.0)

          Comment


          • #6
            To first order, there is no need to transform the coefficient to obtain a percentage change interepretation. When the coefficient is -.01, this says that each increment in eta of one (one year?) reduces the mean value of best_fev11 by 100*(.01) = 1, or 1 percent (not .1%, to correct Carlo above).

            When the coefficient is, say, .10, the approximation is worse, but, still, to first order it's roughly a 10% effect.

            Comment


            • #7
              Thank Jeff for your correction (my copy and paste mishap) and sorry for the confusion.
              "eta of one" is actually one year (un anno, in Italian).
              Kind regards,
              Carlo
              (Stata 19.0)

              Comment


              • #8
                Thank you for your answers. I just want to make sure i've got it right. is the coefficient therefore already interpretable as a percentage?no trasformation is needed(neither eform for exponential coeffiecient). the coefficient multiplies *100 is a percent variations in FEV1. is this correct?





                Comment


                • #9
                  Joey:
                  recycling my previous code (and amending it as per Jeff's helpful correction):
                  your first -glm- code, where the coefficient for -eta- tells you that each year of age reduces the FEV1 by:
                  Code:
                   di exp(-.0100389)-1
                  -.00998868
                  or 1% reduction.

                  However, as Jeff pointed out, the precision of the first order approximation fades away when the coefficient for -eta- increases (no matter its sign).
                  Let'assume that it reaches -0.07 per year.

                  The first order approximation would turn it into a 7% reduction.

                  According the formula:
                  Code:
                  . di (exp(-0.07)-1)*100
                  -6.760618
                  or 6.76% reduction.
                  Kind regards,
                  Carlo
                  (Stata 19.0)

                  Comment


                  • #10
                    Originally posted by Carlo Lazzaro View Post
                    Joey:
                    recycling my previous code (and amending it as per Jeff's helpful correction):
                    your first -glm- code, where the coefficient for -eta- tells you that each year of age reduces the FEV1 by:
                    Code:
                    di exp(-.0100389)-1
                    -.00998868
                    or 1% reduction.

                    However, as Jeff pointed out, the precision of the first order approximation fades away when the coefficient for -eta- increases (no matter its sign).
                    Let'assume that it reaches -0.07 per year.

                    The first order approximation would turn it into a 7% reduction.

                    According the formula:
                    Code:
                    . di (exp(-0.07)-1)*100
                    -6.760618
                    or 6.76% reduction.
                    I am having a problem to interpret GLM log-linked result. My question is if my output is in exponentiated, should the estimates be interpret as normal odds ratio e.g. 1.11 ( 11 % increase).

                    Comment


                    • #11
                      Faizan:
                      posting what you typed and what Stata gave you back (as per FAQ) would enormously help.
                      In the meantime, see the following toy-example on logistic regression:
                      Code:
                      . use "C:\Program Files\Stata16\ado\base\a\auto.dta"
                      (1978 Automobile Data)
                      
                      . logit foreign mpg
                      
                      Iteration 0:   log likelihood =  -45.03321 
                      Iteration 1:   log likelihood = -39.380959 
                      Iteration 2:   log likelihood = -39.288802 
                      Iteration 3:   log likelihood =  -39.28864 
                      Iteration 4:   log likelihood =  -39.28864 
                      
                      Logistic regression                             Number of obs     =         74
                                                                      LR chi2(1)        =      11.49
                                                                      Prob > chi2       =     0.0007
                      Log likelihood =  -39.28864                     Pseudo R2         =     0.1276
                      
                      ------------------------------------------------------------------------------
                           foreign |      Coef.   Std. Err.      z    P>|z|     [95% Conf. Interval]
                      -------------+----------------------------------------------------------------
                               mpg |   .1597621   .0525876     3.04   0.002     .0566922     .262832
                             _cons |  -4.378866   1.211295    -3.62   0.000    -6.752961   -2.004771
                      ------------------------------------------------------------------------------
                      
                      . logit foreign mpg, or
                      
                      Iteration 0:   log likelihood =  -45.03321 
                      Iteration 1:   log likelihood = -39.380959 
                      Iteration 2:   log likelihood = -39.288802 
                      Iteration 3:   log likelihood =  -39.28864 
                      Iteration 4:   log likelihood =  -39.28864 
                      
                      Logistic regression                             Number of obs     =         74
                                                                      LR chi2(1)        =      11.49
                                                                      Prob > chi2       =     0.0007
                      Log likelihood =  -39.28864                     Pseudo R2         =     0.1276
                      
                      ------------------------------------------------------------------------------
                           foreign | Odds Ratio   Std. Err.      z    P>|z|     [95% Conf. Interval]
                      -------------+----------------------------------------------------------------
                               mpg |   1.173232   .0616975     3.04   0.002      1.05833    1.300608
                             _cons |   .0125396   .0151891    -3.62   0.000     .0011674    .1346911
                      ------------------------------------------------------------------------------
                      Note: _cons estimates baseline odds.
                      
                      . di exp(.1597621)
                      1.1732317
                      
                      .
                      Kind regards,
                      Carlo
                      (Stata 19.0)

                      Comment


                      • #12
                        Originally posted by Carlo Lazzaro View Post
                        Faizan:
                        posting what you typed and what Stata gave you back (as per FAQ) would enormously help.
                        In the meantime, see the following toy-example on logistic regression:
                        Code:
                        . use "C:\Program Files\Stata16\ado\base\a\auto.dta"
                        (1978 Automobile Data)
                        
                        . logit foreign mpg
                        
                        Iteration 0: log likelihood = -45.03321
                        Iteration 1: log likelihood = -39.380959
                        Iteration 2: log likelihood = -39.288802
                        Iteration 3: log likelihood = -39.28864
                        Iteration 4: log likelihood = -39.28864
                        
                        Logistic regression Number of obs = 74
                        LR chi2(1) = 11.49
                        Prob > chi2 = 0.0007
                        Log likelihood = -39.28864 Pseudo R2 = 0.1276
                        
                        ------------------------------------------------------------------------------
                        foreign | Coef. Std. Err. z P>|z| [95% Conf. Interval]
                        -------------+----------------------------------------------------------------
                        mpg | .1597621 .0525876 3.04 0.002 .0566922 .262832
                        _cons | -4.378866 1.211295 -3.62 0.000 -6.752961 -2.004771
                        ------------------------------------------------------------------------------
                        
                        . logit foreign mpg, or
                        
                        Iteration 0: log likelihood = -45.03321
                        Iteration 1: log likelihood = -39.380959
                        Iteration 2: log likelihood = -39.288802
                        Iteration 3: log likelihood = -39.28864
                        Iteration 4: log likelihood = -39.28864
                        
                        Logistic regression Number of obs = 74
                        LR chi2(1) = 11.49
                        Prob > chi2 = 0.0007
                        Log likelihood = -39.28864 Pseudo R2 = 0.1276
                        
                        ------------------------------------------------------------------------------
                        foreign | Odds Ratio Std. Err. z P>|z| [95% Conf. Interval]
                        -------------+----------------------------------------------------------------
                        mpg | 1.173232 .0616975 3.04 0.002 1.05833 1.300608
                        _cons | .0125396 .0151891 -3.62 0.000 .0011674 .1346911
                        ------------------------------------------------------------------------------
                        Note: _cons estimates baseline odds.
                        
                        . di exp(.1597621)
                        1.1732317
                        
                        .
                        Thank you for clarification

                        Comment

                        Working...
                        X