Das Hauptproblem ist: Ich kann nicht ähnliche Parameterschätzungen mit EViews und R. erhalten
Aus Gründen, die ich selbst nicht kenne, muss ich Parameter für bestimmte Daten mithilfe von EViews schätzen. Dies erfolgt durch Auswahl der Option NLS (nichtlineare kleinste Quadrate) und Verwendung der folgenden Formel:indep_var c dep_var ar(1)
EViews behauptet, dass sie lineare AR (1) -Prozesse wie: wobei Fehler wie definiert sind: unter Verwendung eines Äquivalents Gleichung (mit einigen algebraischen Substitutionen): Außerdem ist dieser Thread vorbei In den EViews-Foren wird vorgeschlagen , dass ihre NLS-Schätzungen vom Marquardt-Algorithmus generiert werden.u t u t = ρ ⋅ u t - 1 + ε Y t = ( 1 - ρ ) α + ρ Y t - 1 + β X t - ρ β X t - 1 + ε t
Nun ist die Go-to-R-Funktion zum Schätzen von AR (1) -Prozessen arima
. Es gibt jedoch zwei Probleme:
- Die Schätzungen sind Schätzungen der maximalen Wahrscheinlichkeit.
- Die Intercept-Schätzung ist nicht die Intercept-Schätzung (gemäß RH Shumway & DS Stoffer).
Deshalb habe ich mich der nlsLM
Funktion aus dem Paket minpack.lm zugewandt. Diese Funktion verwendet den Marquardt-Algorithmus, um nichtlineare Schätzungen der kleinsten Quadrate zu erzielen, die dieselben Ergebnisse wie die EViews-Implementierung liefern sollten (oder zumindest sehr ähnliche).
Nun der Code. Ich habe einen Datenrahmen ( data
) mit einer unabhängigen Variablen und einer abhängigen Variablen, wie sie durch den folgenden Code generiert wird:
data <- data.frame(independent = abs(rnorm(48)), dependent = abs(rnorm(48)))
Zur Abschätzung Parameter in der Gleichung EViews Ansprüche abzuschätzen (3 rd einer an diesem post), verwende ich die folgenden Befehle:
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)
)
Leider liegen die von ausgegebenen Schätzungen nlsLM
nicht in der Nähe der von EViews ausgegebenen. Haben Sie eine Vorstellung davon, was dies verursachen könnte? Oder ist mein Code falsch?
Abschließend möchte ich sagen, dass ich persönlich ein R-Benutzer bin - genau deshalb versuche ich, dies in R anstelle von EViews zu tun. Ich würde Ihnen auch gerne die Daten zur Verfügung stellen, mit denen ich arbeite, aber es ist unmöglich, da es sich um vertrauliche Daten handelt.