Diferencias de R y EV en las estimaciones de AR (1)


10

El principal problema es: no puedo obtener estimaciones de parámetros similares con EViews y R.

Por razones que no conozco, necesito estimar parámetros para ciertos datos usando EViews. Esto se hace seleccionando la opción NLS (mínimos cuadrados no lineales) y utilizando la siguiente fórmula:indep_var c dep_var ar(1)

EViews afirma que estiman procesos AR (1) lineales como: donde los errores se definen como: usando un equivalente ecuación (con algunas sustituciones algebraicas): Además, este hilo sobre en los foros de EViews sugiere que sus estimaciones de NLS son generadas por el algoritmo de Marquardt.

Yt=α+βXt+tut
tut
tut=ρtut-1+ε
Yt=(1-ρ)α+ρYt-1+βXt-ρβXt-1+εt

Ahora, la función ir a R para estimar los procesos AR (1) es arima. Sin embargo, hay dos problemas:

  1. las estimaciones son estimaciones de máxima verosimilitud;
  2. la estimación de intercepción no es en realidad la estimación de intercepción (según RH Shumway y DS Stoffer).

Por lo tanto, nlsLMrecurrí a la función del paquete minpack.lm. Esta función utiliza el algoritmo de Marquardt para lograr estimaciones de mínimos cuadrados no lineales, que deberían producir los mismos resultados que la implementación de EViews (o al menos muy similares).

Ahora el código. Tengo un marco de datos ( data) con una variable independiente y una variable dependiente como la generada por el siguiente código:

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

Para estimar los parámetros en la ecuación que EViews afirma estimar ( en esta publicación), utilizo los siguientes comandos:

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)
)

Desafortunadamente, las estimaciones de producción nlsLMno están cerca de las producidas por EViews. ¿Tienes alguna idea de lo que podría estar causando esto? ¿O tal vez mi código está mal?

Finalmente, me gustaría decir que personalmente soy un usuario de R, eso es exactamente por qué estoy tratando de hacer esto en R en lugar de EViews. También me encantaría proporcionarle los datos con los que estoy trabajando, pero es imposible ya que son datos confidenciales.


44
Bienvenido al sitio, @Fael. +1 para una pregunta clara. Me tomé la libertad de ajustar ligeramente el formato para hacerlo más limpio. Asegúrate de que todavía diga lo que quieres.
gung - Restablece a Monica

Wow, eso fue muy amable de tu parte. Muchas gracias, @gung!
Fael

2
Siempre puede escalar / codificar los datos y publicarlos. una transformación de la forma [(y-constant1) / constant2] hará el truco.
IrishStat

Por cierto: los parámetros de los procesos lineales se pueden estimar a través de OLS.
Germaniawerks

Respuestas:


1

ρ,β,αXt-1

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.