Сохранение значимости регрессии
Я использую несколько простых регрессий и хочу сохранить значение значимости (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])))