Аргумент custom.gof.rows
был добавлен к texreg
, screenreg
et c. функционирует около года go и еще не нашел свой путь в CRAN, но в конечном итоге будет. В настоящее время вы можете установить самую последнюю версию из GitHub, если хотите использовать этот аргумент. Вы можете сделать это следующим образом (и сначала нужно будет установить пакет remotes
):
library(remotes)
install_github("leifeld/texreg")
Аргумент custom.gof.rows
принимает именованный список векторов. Вы просто указали два значения для числа наблюдений в качестве отдельных аргументов для аргумента custom.gof.rows
. Вместо этого вам нужно обернуть оба вектора и прикрепить к нему имя, например «Num. Obs.». Вы можете сделать это следующим образом:
screenreg(list(coeftest(b), a),
custom.gof.rows = list("Num. obs." = c(nobs(b), nobs(a))))
Тем не менее, теперь я добавил количество наблюдений к extract
методам для моделей ARIMA, так что вам больше не нужен этот аргумент.
Ваша попытка изменить метод extract
самостоятельно почти сработала. Вы должны были бы включить аргумент include.nobs = TRUE
также в заголовок функции, и вам нужно было бы зарегистрировать функцию как метод для функции generi c extract
, как описано в статье в журнале. Статистического программного обеспечения .
Чтобы сделать вашу жизнь проще, я сделал это для вас. Поэтому, если вы устанавливаете самую последнюю версию texreg
из GitHub в соответствии с инструкциями выше, она должна автоматически включать количество наблюдений.
Используемая вами функция arima
определена в stats
пакет. Возвращает объект Arima
. Я обновил его extract
метод соответственно. Функция auto.arima
, которую вы используете выше, является оболочкой для той же самой функции и возвращает объект с классом forecast_ARIMA
(и ранее, и во вторую очередь, ARIMA
). Это немного сбивает с толку, но важно знать об этих различиях. Я обновил для вас оба метода, указав количество наблюдений, поэтому ваш код
screenreg(list(coeftest(b), a))
теперь должен возвращать следующий вывод:
======================================
Model 1 Model 2
--------------------------------------
ar1 0.96 ***
(0.04)
ar2 -0.30 ***
(0.05)
ar3 0.13 *
(0.05)
ar4 0.02
(0.05)
ar5 0.17 ***
(0.04)
intercept 0.43 ** 0.21 ***
(0.13) (0.05)
instant 0.00 0.00 *
(0.00) (0.00)
shift 0.02 0.25 ***
(0.05) (0.05)
--------------------------------------
AIC -440.26
BIC -421.88
Log Likelihood 224.13
Num. obs. 731
======================================
*** p < 0.001; ** p < 0.01; * p < 0.05
Обратите внимание, что вы используете Функция coeftest
из пакета lmtest
для модели b
, которая имеет отдельный класс и, следовательно, метод extract
и не возвращает количество наблюдений. Чтобы получить число наблюдений также для модели b
, вы можете включить ее напрямую, без coeftest
:
screenreg(list(b, a), single.row = TRUE)
. Это вернет следующий вывод:
=======================================================
Model 1 Model 2
-------------------------------------------------------
ar1 0.96 (0.04) ***
ar2 -0.30 (0.05) ***
ar3 0.13 (0.05) *
ar4 0.02 (0.05)
ar5 0.17 (0.04) ***
intercept 0.43 (0.13) ** 0.21 (0.05) ***
instant 0.00 (0.00) 0.00 (0.00) *
shift 0.02 (0.05) 0.25 (0.05) ***
-------------------------------------------------------
AIC -2183.71 -440.26
AICc -2183.46
BIC -2142.36 -421.88
Log Likelihood 1100.86 224.13
Num. obs. 731 731
=======================================================
*** p < 0.001; ** p < 0.01; * p < 0.05
Если вы настаивайте на использовании coeftest
, вы можете сохранить выходные данные функции extract
в промежуточном объекте и манипулировать этим объектом. В следующем коде я беру блок GOF из версии без coeftest
и внедряю его в версию с coeftest
, а затем передаю управляемый объект вместо исходного объекту screenreg
:
tr_b_coeftest <- extract(coeftest(b))
tr_b_plain <- extract(b)
tr_b_coeftest@gof.names <- tr_b_plain@gof.names
tr_b_coeftest@gof <- tr_b_plain@gof
tr_b_coeftest@gof.decimal <- tr_b_plain@gof.decimal
screenreg(list(tr_b_coeftest, a), single.row = TRUE)
Возвращает следующий вывод:
=======================================================
Model 1 Model 2
-------------------------------------------------------
ar1 0.96 (0.04) ***
ar2 -0.30 (0.05) ***
ar3 0.13 (0.05) *
ar4 0.02 (0.05)
ar5 0.17 (0.04) ***
intercept 0.43 (0.13) ** 0.21 (0.05) ***
instant 0.00 (0.00) 0.00 (0.00) *
shift 0.02 (0.05) 0.25 (0.05) ***
-------------------------------------------------------
AIC -2183.71 -440.26
AICc -2183.46
BIC -2142.36 -421.88
Log Likelihood 1100.86 224.13
Num. obs. 731 731
=======================================================
*** p < 0.001; ** p < 0.01; * p < 0.05