R и EViews различия в оценках AR (1)

10

Основная проблема : я не могу получить аналогичные оценки параметров с EViews и R.

По причинам, которые я сам не знаю, мне нужно оценить параметры для определенных данных, используя EViews. Это делается путем выбора опции NLS (нелинейные наименьшие квадраты) и использования следующей формулы:indep_var c dep_var ar(1)

EViews утверждает, что они оценивают линейные процессы AR (1), такие как: где ошибки определены как: , используя эквивалентный уравнение (с некоторыми алгебраическими заменами): Кроме того, этот поток более на форумах EViews предполагает, что их оценки NLS генерируются алгоритмом Марквардта.

YTзнак равноα+βИксT+UT
UT
UTзнак равноρUT-1+ε
YTзнак равно(1-ρ)α+ρYT-1+βИксT-ρβИксT-1+εT

Теперь функция перехода к R для оценки процессов AR (1) имеет вид arima. Однако есть две проблемы:

  1. оценки являются оценками максимального правдоподобия;
  2. оценка перехвата фактически не является оценкой перехвата (в соответствии с RH Shumway & DS Stoffer).

Поэтому я обратился к nlsLMфункции из пакета minpack.lm. Эта функция использует алгоритм Марквардта для получения нелинейных оценок наименьших квадратов, которые должны давать те же результаты, что и реализация EViews (или, по крайней мере, очень похожие).

Теперь код. У меня есть data frame ( data) с независимой переменной и зависимой переменной, такой как сгенерированная следующим кодом:

data <- data.frame(independent = abs(rnorm(48)), dependent = abs(rnorm(48)))

Чтобы оценить параметры в уравнении, которое EViews утверждает для оценки (3- й на этом посте), я использую следующие команды:

library(minpack.lm)
result <-
nlsLM(dependentB ~ ((1 - theta1) * theta2) + (theta1 * dependentA) +
                    (theta3 * independentB) - (theta1 * theta3 * independentA),
data = list(dependentB = data$dependent[2:48], dependentA = data$dependent[1:47],
   independentB = data$independent[2:48], independentA = data$independent[1:47]),
start = list(theta1 = -10, theta2 = -10, theta3 = -10)
)

К сожалению, оценки, полученные с помощью nlsLM, не близки к тем, которые выводит EViews. У вас есть идеи, что может быть причиной этого? Или, может быть, мой код неверен?

Наконец, я хотел бы сказать, что я лично являюсь пользователем R - именно поэтому я пытаюсь сделать это в R вместо EViews. Я также хотел бы предоставить вам данные, с которыми я работаю, но это невозможно, поскольку это конфиденциальные данные.

Фаель
источник
4
Добро пожаловать на сайт, @Fael. +1 за понятный вопрос. Я позволил себе немного изменить форматирование, чтобы сделать его чище. Пожалуйста, убедитесь, что он по-прежнему говорит, что вы хотите.
gung - Восстановить Монику
Вау, это было очень мило с твоей стороны. Большое спасибо, @gung!
Fael
2
Вы всегда можете масштабировать / кодировать данные и публиковать их. Преобразование формы [(y-constant1) / constant2] сделает свое дело.
IrishStat
Кстати: параметры линейных процессов могут быть оценены через OLS.
Germaniawerks

Ответы:

1

Ваш NLLS имеет четыре условия ортогональности, по одному на переменную плюс константа (аналог нормальных уравнений в стандартном OLS) для определения трех параметров ( ). Нелинейные алгоритмы часто имеют гетерогенные конфигурации для параметров допуска в разных программах. Могу ли я предложить вам из уравнения, чтобы получить точно идентифицированную систему, а затем проверить Eviews против R? если оба согласны, это, вероятно, означает, что у одного из них есть проблемы с переоценкой.ρ,β,αИксT-1

JDav
источник