Я использовал EViews и запускал Error Correction Model (ECM) и получил некоторый результат. Теперь я хотел бы повторить этот пример в R и получить тот же результат, что и в EViews.Репликация примера модели коррекции ошибок (ECM) в R?
Данные, которые я использовал следующие:
gdp<-c(6592.694,7311.75,7756.11,8374.175,9169.984,9994.071,10887.682,11579.432,12440.625,13582.799,15261.26,17728.673,21899.262,29300.921,34933.51,39768.017,42647.701,51144.915,61554.743,73407.498,81467.464,70500.215,70682.449,71496.768,67403.443,68781.085,98203.625,123083.47,131969.428,131738.237,164753.092,172008.565,193073.835,188423.703,201444.061,238561.784,234676.457,207826.099,213329.585,212301.777,192070.75,191678.678,207537.337,253945.777,291430.382,304983.602,324954.402,375041.784,414173.646,381775.165,376575.382)
life<-c(68.58560976,69.57731707,69.3095122,69.44365854,69.92195122,69.72219512,70.04585366,69.91780488,70.05756098,69.83317073,69.89073171,70.06926829,70.41365854,70.97926829,70.96243902,71.08414634,71.55121951,71.89536585,71.96707317,72.28731707,72.42365854,72.75804878,72.89707317,72.96853659,73.52756098,73.74512195,74.22292683,74.66926829,75.14414634,75.24804878,75.53,75.56780488,75.85536585,76.10634146,76.45707317,76.71560976,76.98365854,77.38756098,77.57317073,77.77560976,78.02682927,78.52682927,78.67804878,78.63170732,79.1804878,79.33170732,79.83170732,79.98292683,80.23414634,80.08292683,80.38292683)
Результат я получил в EViews и хотел бы повторить в R показано в следующей таблице:
Я использовал упаковкуapt и ее функцияecmAsyFit(gdp, life, lag = 1, split = TRUE,model = "linear", thresh = 0)
код я работать следующим образом:
df <- ts(cbind(gdp, life), start = 1950, freq = 1)
fit <- ecmAsyFit(df[, 1], df[, 2], lag = 1, split = TRUE, model = "linear", thresh = 0)
summary(fit)
Результат в R я получил показано под:
DepVar IndVar estimate error t.value p.value signif
1 diff.df[, 2].t_0 | (Intercept) 0.324 0.063 5.135 0.000 ***
2 | X.diff.df[, 2].t_1.pos -0.458 0.155 -2.954 0.005 ***
3 | X.diff.df[, 2].t_1.neg 0.443 0.546 0.811 0.422
4 | X.diff.df[, 1].t_1.pos 0.000 0.000 1.410 0.166
5 | X.diff.df[, 1].t_1.neg 0.000 0.000 -1.475 0.148 .
6 | X.ECT.t_1.pos 0.000 0.000 -1.819 0.076 *
7 | X.ECT.t_1.neg 0.000 0.000 -0.420 0.677
8 diff.df[, 1].t_0 - (Intercept) 3793.752 4912.683 0.772 0.444
9 - X.diff.df[, 2].t_1.pos -4510.643 12060.505 -0.374 0.710
10 - X.diff.df[, 2].t_1.neg -21884.942 42483.319 -0.515 0.609
11 - X.diff.df[, 1].t_1.pos 0.576 0.190 3.031 0.004 ***
12 - X.diff.df[, 1].t_1.neg 0.055 0.369 0.148 0.883
13 - X.ECT.t_1.pos -0.318 0.145 -2.193 0.034 **
14 - X.ECT.t_1.neg -0.175 0.130 -1.354 0.183
Проблема: В результате я получил в EViews (показаны таблицы) не то же самое, что и R (показано справа)
Вопросы:
- Есть ли способ использовать функцию ecmAsyFit для получения результата, как показано в таблице?
- Есть ли другая функция (или набор функций), которая может запускать модель коррекции ошибок и предоставить результат, показанный в таблице?
- Может ли кто-то поделиться кодом для применения модели коррекции ошибок, чтобы я мог применить его?