Основная проблема : я не могу получить аналогичные оценки параметров с EViews и R.
По причинам, которые я сам не знаю, мне нужно оценить параметры для определенных данных, используя EViews. Это делается путем выбора опции NLS (нелинейные наименьшие квадраты) и использования следующей формулы:indep_var c dep_var ar(1)
EViews утверждает, что они оценивают линейные процессы AR (1), такие как: где ошибки определены как: , используя эквивалентный уравнение (с некоторыми алгебраическими заменами): Кроме того, этот поток более на форумах EViews предполагает, что их оценки NLS генерируются алгоритмом Марквардта.
Теперь функция перехода к R для оценки процессов AR (1) имеет вид arima
. Однако есть две проблемы:
- оценки являются оценками максимального правдоподобия;
- оценка перехвата фактически не является оценкой перехвата (в соответствии с 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. Я также хотел бы предоставить вам данные, с которыми я работаю, но это невозможно, поскольку это конфиденциальные данные.
источник
Ответы:
Ваш NLLS имеет четыре условия ортогональности, по одному на переменную плюс константа (аналог нормальных уравнений в стандартном OLS) для определения трех параметров ( ). Нелинейные алгоритмы часто имеют гетерогенные конфигурации для параметров допуска в разных программах. Могу ли я предложить вам из уравнения, чтобы получить точно идентифицированную систему, а затем проверить Eviews против R? если оба согласны, это, вероятно, означает, что у одного из них есть проблемы с переоценкой.ρ , β, α Xт - 1
источник