Тестирование в R, чтобы получить корректировку статистики F с помощью plm и результата, показанного с помощью stargazer?

Я работаю с несбалансированной короткой панелью. Исходные данные: bankFull.xlsx

На самом деле я хочу получить только результаты регрессии с двумя фиксированными побочными эффектами и надежным сообщением S.E, что очень просто в Stata. Я следил за онлайн-учебником, но всегда сталкивался с какой-то проблемой с

# Adjust F statistic 
wald_results <- waldtest(FE1, vcov = cov1)
Error in model.matrix.pFormula(formula, data, rhs = 1, model = model,  : 
  NA in the individual index variable

как бы я ни корректировал данные! Это почти сводит меня с ума.

вот мой код:

bankFull <- openxlsx::read.xlsx("bankFull.xlsx",1)

attach(bankFull)
library(plm)

FE1 = plm(  RoA ~
              log(1+degreeNW)+
              ln_assets+
              log(no_of_board_members/staffNo)+
              log(no_of_branch_covered_city)+ 
              log(operation_year)+
              `RoA-1`+
              log(staffNo),
            data = bankFull, index = c("name","year"),  
            effect="twoways",na.action = na.omit,
            model= "within")

# robust S.E.-----------
library(sandwich)
library(lmtest)   # waldtest; see also coeftest.
library(stargazer)

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

# Adjust F statistic 
wald_results <- waldtest(FE1, vcov = cov1)

# show results. how can I get the F value?
stargazer(FE1, FE1, type = "text",
          se        = list(NULL, robust_se),
          omit.stat = "f")

Во-вторых, как показано в коде, я использую stargazer для демонстрации результатов. Мне также нужно, чтобы скорректированное значение F отображалось в таблице. Есть ли в пакете какие-либо опции, которые я могу использовать?


person Lingyu Kong    schedule 05.10.2016    source источник


Ответы (1)


Изменить: обновить информацию в соответствии с версией CRAN 1.6-4 PLM

Используйте CRAN версии 1.6-4 из plm, поддерживает надежные F-тесты для вашей модели с помощью функции pwaldtest (эта функция называлась Ftest в разрабатываемой версии, но переименована до выпуска CRAN).

Пример:

data("Grunfeld", package = "plm")
mod_fe <- plm(inv ~ value + capital, data = Grunfeld, model = "within")
plm::pwaldtest(mod_fe, test = "F")


# with robust vcov
plm::pwaldtest(mod_fe, test = "F", vcov = vcovHC(mod_fe))
plm::pwaldtest(mod_fe, test = "F", vcov = function(x) vcovHC(x, type = "HC3"))
summary(mod_fe, vcov = vcovHC)

Для подачи надежных значений (устойчивые стандартные ошибки, значения t и p, значение p, связанное с F-значением) используйте аргументы se, t, p, а для F-теста просто add.lines команды stargazer (и опустите сгенерированную F-статистику. по умолчанию stargazer). Вот полный пример того, что вы хотите: http://jakeruss.com/cheatsheets/stargazer.html (раздел «Устойчивые стандартные ошибки (репликация надежного варианта Stata)»).

person Helix123    schedule 05.10.2016
comment
Оно работает. Спасибо, что избавили меня от этого безумия. Поскольку plm :: Ftest - это функция F-теста в стиле Wald, знаете ли вы, почему waldtest () не работает с теми же параметрами? - person Lingyu Kong; 06.10.2016