2012-11-12 43 views
2

幾個星期前,I posted是一個思路不清的問題,模糊的信息困擾着我。這是我嘗試糾正原始問題並獲得更好的答案。使用Marquardt算法的非線性最小二乘AR(1):EViews vs R

主要問題是:我不能獲得類似的參數估計用的EViews和R.

至於原因,我不知道我自己,我需要估計的參數使用的EViews某些數據。 indep_var c dep_var ar(1)

的EViews聲稱他們估計線性AR(1)處理,諸如:

ý = A這是通過挑選的NLS(非線性最小二乘)選項,並使用下面的公式進行+ B * X + U

其中u誤差被定義爲

ù = P * U噸-1 + E

通過使用等效方程(有一些代數取代):

ý =( 1-p)* a + p * Y t - 1 + B * X t - p * B * X 噸 - 1 + E

此外,this thread over at the EViews forums表明它們的NLS估計由Marquardt算法生成的。

現在,估計AR(1)過程的前往R函數是arima。但是,存在兩個問題:1)估計值是最大似然估計值; 2)截取估計is not actually the intercept estimate

因此,我轉向了minpack.lm包中的nlsLM函數。該函數使用Marquardt算法實現非線性最小二乘估計,這應該會產生與EViews實現(或至少非常相似)相同的結果。

現在的代碼。我有自變量和因變量,如一個由下面的代碼所產生的數據幀(data):上

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

爲了估計方程的EViews要求來估計參數(3 RD一個這篇文章),我用下面的命令:

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中這樣做的原因。我也很樂意爲您提供我正在使用的數據,但這是不可能的,因爲它是機密數據。

回答

0

看來,Eviews確定規格應該是:

dep_var c indep_var ar(1) 
相關問題