Vấn đề chính là: Tôi không thể có được ước tính tham số tương tự với EViews và R.
Vì những lý do tôi không biết bản thân mình, tôi cần ước tính các tham số cho một số dữ liệu nhất định bằng EViews. Điều này được thực hiện bằng cách chọn tùy chọn NLS (bình phương nhỏ nhất phi tuyến) và sử dụng công thức sau:indep_var c dep_var ar(1)
EViews tuyên bố rằng họ ước tính tuyến tính AR (1) xử lý như: nơi u t lỗi được định nghĩa là: u t = ρ ⋅ u t - 1 + ε bằng cách sử dụng một phương trình tương đương ( với một số thay đại số): Y t = ( 1 - ρ ) α + ρ Y t - 1 + β X t
Bây giờ, hàm go-to R để ước tính các quá trình AR (1) là arima
. Tuy nhiên, có hai vấn đề:
- các ước tính là ước tính khả năng tối đa;
- ước tính đánh chặn không thực sự là ước tính đánh chặn (theo RH Shumway & DS Stoffer).
Do đó, tôi đã chuyển sang nlsLM
chức năng từ gói minpack.lm. Hàm này sử dụng thuật toán Marquest để đạt được ước lượng bình phương nhỏ nhất phi tuyến, sẽ mang lại kết quả tương tự như việc thực hiện EViews (hoặc ít nhất là tương tự, ít nhất).
Bây giờ là mã. Tôi có một khung dữ liệu ( data
) với một biến độc lập và biến phụ thuộc, chẳng hạn như biến được tạo bởi mã sau:
data <- data.frame(independent = abs(rnorm(48)), dependent = abs(rnorm(48)))
Để ước lượng tham số trong phương trình EViews tuyên bố để ước tính (3 thứ một về bài đăng này), tôi sử dụng các lệnh sau:
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)
)
Thật không may, đầu ra ước tính nlsLM
không gần với đầu ra của EViews. Bạn có biết cái gì có thể gây ra chuyện này không? Hoặc có thể mã của tôi sai?
Cuối cùng, tôi muốn nói rằng cá nhân tôi là người dùng R - đó chính xác là lý do tại sao tôi đang cố gắng làm điều này trong R thay vì EViews. Tôi cũng rất muốn cung cấp cho bạn dữ liệu tôi đang làm việc nhưng không thể vì đó là dữ liệu bí mật.