Сохранение значимости регрессии

Я использую несколько простых регрессий и хочу сохранить значение значимости (P > |t|) регрессии для данного коэффициента в локальном макросе.

Например, я знаю, что:

local consCoeff = _b[_cons]

сохранит коэффициент для постоянной, а это с _se[_cons] Я могу получить стандартную ошибку. Тем не менее, нет никаких документов о том, как получить значение.

Было бы лучше, если бы формат подчеркивания работал (например, _pt и т.д.), но все будет делать.

2 ответа

Решение

Не нужно ничего вычислять самостоятельно, потому что Stata уже делает это для вас.

Например:

. 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
------------------------------------------------------------------------------

Результаты также возвращаются в матрице 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

Так что для р-значения, скажем, weight, вы вводите:

. matrix A = r(table)

. local pval = A[4,1]

. display `pval'
.00812981

T-stat для коэффициента - это коэффициент, деленный на стандартную ошибку. Затем значение р можно рассчитать с помощью ttail функционировать с соответствующими степенями свободы. Поскольку вы ищете двустороннее значение p, результат умножается на два.

В вашем случае, следующее должно сделать это:

local consPvalue = (2 * ttail(e(df_r), abs(_b[cons]/_se[cons])))
Другие вопросы по тегам