Search code examples
statastata-macros

Saving significance of a regression


I am running several simple regressions and I wish to save the value of the significance (P > |t|) of a regression for a given coefficient in a local macro.

For example, I know that:

local consCoeff = _b[_cons]

will save the coefficient for the constant, and that with _se[_cons] I can get the standard error. However, there doesn't seem to be any documentation on how to get the significance.

It would be best if the underscore format worked (like _pt etc.), but anything will do.


Solution

  • There is no need to calculate anything yourself because Stata already does that for you.

    For example:

    . sysuse auto, clear
    (1978 Automobile Data)
    
    . regress price weight mpg
    
    
          Source |       SS           df       MS      Number of obs   =        74
    -------------+----------------------------------   F(2, 71)        =     14.74
           Model |   186321280         2  93160639.9   Prob > F        =    0.0000
        Residual |   448744116        71  6320339.67   R-squared       =    0.2934
    -------------+----------------------------------   Adj R-squared   =    0.2735
           Total |   635065396        73  8699525.97   Root MSE        =      2514
    
    ------------------------------------------------------------------------------
           price |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
    -------------+----------------------------------------------------------------
          weight |   1.746559   .6413538     2.72   0.008      .467736    3.025382
             mpg |  -49.51222   86.15604    -0.57   0.567    -221.3025     122.278
           _cons |   1946.069    3597.05     0.54   0.590    -5226.245    9118.382
    ------------------------------------------------------------------------------
    

    The results are also returned in matrix r(table):

    . matrix list r(table)
    
    r(table)[9,3]
                weight         mpg       _cons
         b   1.7465592  -49.512221   1946.0687
        se   .64135379   86.156039   3597.0496
         t   2.7232382  -.57468079   .54101802
    pvalue   .00812981   .56732373   .59018863
        ll   .46773602  -221.30248  -5226.2445
        ul   3.0253823   122.27804   9118.3819
        df          71          71          71
      crit   1.9939434   1.9939434   1.9939434
     eform           0           0           0
    

    So for the p-value of, say weight, you type:

    . matrix A = r(table)
    
    . local pval = A[4,1]
    
    . display `pval'
    .00812981