Я только начал работать с анализом данных и знаю основы R. Моя компания раньше работала с прогностическими моделями с Eviews, и теперь они попросили меня поместить все это в R, чтобы я также мог запускать модели (у меня нет Eviewsили умеешь им пользоваться!).Кто-нибудь может мне помочь, пожалуйста!Буду также признателен, если у вас есть какие-либо материалы по R.
Код получает файл xls с несколькими переменными.Затем он запускает множество моделей с различными комбинациями этих переменных и сохраняет все в группе (я отображал только первые модели, потому что их больше 100!).Наконец, он рассчитывает MAE и RMSE для каждой из моделей.
Любая помощь приветствуется!Большое спасибо
'##########################################################
'# Modelos para PIM
'##########################################################
'Defines working path
cd " "
' Limpa workfile anterior
close pim_linked.wf1
wfcreate(wf=pim_linked,page=origin) m 1991m01 2020m12
delete *
'Lê dados da pim.xls no worksheet origem
read(s=origem,b2) pim.xls 12
' Define tabela para armazenar resultados
table tab_mom
table tab_yoy
'Linha incrementa a cada modelo
!linha = 1
' Escolher x como o numero até o mês da ultima observação da PIM
!x = @dtoo("2018:06")
'Define ultima data da amostra
%data = @otod(!x)
%dataproj = @otod(!x + 1)
''''Geral
group modelo_mom{!linha} dlog(y) c dlog(y(-1)) dlog(abcr) dlog(abcr(-1)) dlog(pmi) dlog(pmi(-1)) dlog(aco) dlog(papond) dlog(anf) dlog(ici) dlog(nuci) dlog(energia) _
@seas(1) @seas(2) @seas(3) @seas(4) @seas(5) @seas(6) @seas(7) @seas(8) @seas(9) @seas(10) @seas(11)
!linha = !linha + 1
group modelo_mom{!linha} dlog(y) c dlog(y(-1)) dlog(abcr) dlog(abcr(-1)) dlog(pmi) dlog(pmi(-1)) dlog(aco) dlog(papond) dlog(anf) dlog(ici) dlog(nuci) _
@seas(1) @seas(2) @seas(3) @seas(4) @seas(5) @seas(6) @seas(7) @seas(8) @seas(9) @seas(10) @seas(11)
!linha = !linha + 1
group modelo_mom{!linha} dlog(y) c dlog(y(-1)) dlog(abcr) dlog(abcr(-1)) dlog(pmi) dlog(pmi(-1)) dlog(aco) dlog(papond) dlog(anf) dlog(ici) _
@seas(1) @seas(2) @seas(3) @seas(4) @seas(5) @seas(6) @seas(7) @seas(8) @seas(9) @seas(10) @seas(11)
!fim = !linha
For !i = 1 To !fim
smpl 2002m01 %data
equation eqt{!i}.ls(n) modelo_mom{!i}
smpl %dataproj %dataproj
eqt{!i}.forecast proj
y(!x + 1) = proj(!x + 1)
smpl 2002m1 %dataproj 'Amplia amostra para dessazonalizar
y.x12(mode=a,sfile="P:\Macro\X12\omegav03all\x12a\PIMeviews.txt") 'Dessazonaliza série
tab_mom(!i,1) = proj(!x + 1) 'Armazena projeção para y(!x + 1) na primeira coluna
tab_mom(!i,2) = y_sa(!x + 1) 'Armazena proj y_sa(!x + 1)
tab_mom(!i,3) = eqt{!i}.@rbar2 'Armazena R^2 ajustado na terceira coluna
tab_mom(!i,4) = eqt{!i}.@aic
tab_mom(!i,5) = eqt{!i}.@schwarz
'tab_mom(!i,6) = eqt.@dw
'Forecast one month ahear, for 12 months
For !j = 1 To 12
series pim_frcst
%ultima_data = @otod(!x - !j)
%data_previsao = @otod(!x - !j + 1)
smpl 2002m01 %ultima_data
equation eqt_f.ls(n) modelo_mom{!i}
smpl %data_previsao %data_previsao
eqt_f.forecast pim_forecast
pim_frcst(!x - !j + 1) = pim_forecast(!x - !j + 1)
Next
smpl 2002m01 %data
genr pimF_errs = pim_frcst - y
genr pimF_errs_sqrt = pimF_errs^2
tab_mom(!i,6) = @sqrt(@mean(pimF_errs_sqrt))
tab_mom(!i,7) = @mean(abs(pimF_errs))
tab_mom(!i,8) = (y_sa(!x+1)/y_sa(!x) - 1)*100 'Armazena variação percentual com ajuste sazonal na quinta coluna
Далее