주요 문제 는 EViews 및 R을 사용하여 유사한 매개 변수 추정치를 얻을 수 없다는 것입니다.
내가 모르는 이유 때문에 EViews를 사용하여 특정 데이터에 대한 매개 변수를 추정해야합니다. NLS (nonlinear least squares) 옵션을 선택하고 다음 공식을 사용하면됩니다.indep_var c dep_var ar(1)
EViews의 청구 : 그들은 AR 선형 추정하는 것이 (1)와 같은 처리 여기서 로 정의 된 오류 : 등가를 사용하여 방정식 (일부 대수 대체) : Y_t = (1-\ rho) \ alpha + \ rho Y_ {t-1} + \ beta X_t-\ rho \ beta X_ {t-1} + \ varepsilon_t 또한 이 스레드는 EViews 포럼 에서 그들의 NLS 추정은 Marquardt 알고리즘에 의해 생성된다고 제안합니다.
이제 AR (1) 프로세스를 추정하기위한 go-to R 함수는 arima
입니다. 그러나 두 가지 문제가 있습니다.
- 추정치는 최대 가능성 추정치이며;
- 절편 추정치는 실제로 절편 추정이 아닙니다 (RH Shumway & DS Stoffer에 따름).
따라서 nlsLM
minpack.lm 패키지에서 함수 로 전환했습니다 . 이 함수는 Marquardt 알고리즘을 사용하여 비선형 최소 제곱 추정값을 얻습니다. 이는 EViews 구현과 동일한 결과 (또는 적어도 매우 유사한 것)를 산출해야합니다.
이제 코드입니다. data
독립 변수 가있는 데이터 프레임 ( )과 다음 코드에 의해 생성 된 것과 같은 종속 변수가 있습니다.
data <- data.frame(independent = abs(rnorm(48)), dependent = abs(rnorm(48)))
방정식에서 EViews 주장에 대한 매개 변수를 추정하기 위해 ( 이 게시물에서 세 번째 것) 다음 명령을 사용합니다.
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 사용자라고 말하고 싶습니다. 이것이 바로 EViews 대신 R 에서이 작업을 수행하려는 이유입니다. 또한 작업중 인 데이터를 제공하고 싶지만 기밀 데이터이므로 불가능합니다.