Устойчивые стандартные ошибки в lm () с использованием stargazer ()

Я много читал о том, как сложно реплицировать простой надежный вариант из STATA в R для использования надежных стандартных ошибок. Я воспроизвел следующие подходы: StackExchange и Блог экономической теории. Они работают, но проблема, с которой я сталкиваюсь, заключается в том, что я хочу распечатать свои результаты с помощью функции stargazer (при этом печатается код .tex для файлов Latex).

Вот иллюстрация моей проблемы:

reg1 <-lm(rev~id + source + listed + country , data=data2_rev)
stargazer(reg1)

Это печатает вывод R как код .tex (ненадежный SE). Если я хочу использовать надежный SE, я могу сделать это с помощью пакета sandwich следующим образом:

vcov <- vcovHC(reg1, "HC1")

если я теперь использую stargazer (vcov), печатается только вывод функции vcovHC, а не сам вывод регрессии.

С пакетом lmtest() можно распечатать хотя бы оценку, но не наблюдения, R2, прил. R2, остаточная ошибка, остаточная ошибка и F-статистика.

lmtest::coeftest(reg1, vcov. = sandwich::vcovHC(reg1, type = 'HC1'))

Это дает следующий результат:

t test of coefficients:

            Estimate Std. Error t value Pr(>|t|)   
(Intercept) -2.54923    6.85521 -0.3719 0.710611   
id           0.39634    0.12376  3.2026 0.001722 **
source       1.48164    4.20183  0.3526 0.724960   
country     -4.00398    4.00256 -1.0004 0.319041   
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Как я могу добавить или получить результат со следующими параметрами?

Residual standard error: 17.43 on 127 degrees of freedom
Multiple R-squared:  0.09676,   Adjusted R-squared:  0.07543 
F-statistic: 4.535 on 3 and 127 DF,  p-value: 0.00469

Кто-нибудь сталкивался с такой же проблемой и может мне помочь? Как я могу использовать устойчивые стандартные ошибки в функции lm и применять функцию stargazer?


person HAL_71    schedule 18.11.2019    source источник
comment
Я почти уверен, что ни одна из этих статистических данных не зависит от матрицы ковариации и дисперсии, а только от остатков и дисперсии y, размера выборки, df и т. Д. Таким образом, результат будет таким же. см. stats.stackexchange.com/questions/5135/   -  person Michael    schedule 19.11.2019


Ответы (1)


Вы уже рассчитали надежные стандартные ошибки, и есть простой способ включить их в stargazeroutput:

library("sandwich")
library("plm")
library("stargazer")

data("Produc", package = "plm")

# Regression    
model <- plm(log(gsp) ~ log(pcap) + log(pc) + log(emp) + unemp,
             data = Produc, 
             index = c("state","year"),
             method="pooling")

# Adjust standard errors
cov1         <- vcovHC(model, type = "HC1")
robust_se    <- sqrt(diag(cov1))

# Stargazer output (with and without RSE)
stargazer(model, model, type = "text",
          se = list(NULL, robust_se))

Решение найдено здесь: https://www.jakeruss.com/cheatsheets/stargazer/#robust-standard-errors-replicating-statas-robust-option

Обновление. Я не очень люблю F-тесты. Люди обсуждают эти вопросы, например https://stats.stackexchange.com/questions/93787/f-test-formula-under-robust-standard-error

Когда вы следите за http://www3.grips.ac.jp/~yamanota/Lecture_Note_9_Heteroskedasticity

«Устойчивую к гетероскедастичности t-статистику можно получить путем деления оценки OSL на ее устойчивую стандартную ошибку (для нулевых нулевых гипотез). Обычная F-статистика, однако, недействительна. Вместо этого нам нужно использовать устойчивую к гетероскедастичности статистику Вальда. . "

и использовать здесь статистику Вальда?

person Marco    schedule 03.12.2019
comment
Спасибо @marco! Но это только объясняет, как вручную добавить F-статистику. Но сначала мне нужно знать свою статистику f общей регрессии с надежной SE. Остается так же, как без RSE? - person HAL_71; 03.12.2019
comment
Привет @ HAL_71 в смысле stackoverflow, примите мой ответ, когда он решит начальную проблему (как сказано в заголовке, надежные стандартные ошибки в Stargazer). Я думаю, вы можете попробовать тест Вальда вместо F-статистики. Если вам нужна дополнительная информация об эконометрических основах, я предлагаю открыть новую тему о перекрестной проверке. С наилучшими пожеланиями - person Marco; 04.12.2019