Перевести двойные разности и записать прогноз в фактическое значение в R - PullRequest
0 голосов
/ 22 апреля 2019

На самом деле я изучаю временные ряды на R, но мне не удается преобразовать мои прогнозные значения в мои реальные значения. Я прошу прощения за мой английский, я не родной. Я объясняю себе:

Это мои значения:

> nbats
     Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
2004  20  22  18  23  25  27  15  12  11  17  26  22
2005  21  25  21  25  26  29  14  12  11  17  22  22
2006  21  25  20  22  28  27  14  10  11  15  21  24
2007  22  24  20  26  29  24  14  11  10  15  23  22
2008  21  27  27  29  35  30  14  12  11  18  25  26
2009  24  28  24  29  38  29  15  11  11  18  23  24
2010  23  26  20  26  31  33  20  13  12  22  24  26
2011  25  32  26  35  42  36  11   8   8  11  12  27
2012  30  38  33  33  44  49  21  14  11  19  28  29
2013  30  34  32  36  42  51  19  11  10  19  28  29
2014  29  31  27  38  47  38  20  12  10  21  30  33
2015  30  31  27  40  47  50  17  10  11  19  33  37
2016  39  41  38  53  70  73  24  12  14  25  43  71
2017  44  48  44  68  65  69  25  15  17  39  50  51
2018  52  54  50  81 100  58  25  14  15  41  58  60

https://image.noelshack.com/fichiers/2019/17/1/1555894195-rplot01.jpeg

Прежде всего, я разрезал свои данные на 2 части, чтобы сравнить мой прогноз с реальными значениями.

donnees_app = ts(donnees[1:(length(donnees)-6)],start=2004,frequency=12)
donnees_valid = ts(donnees[-(1:(length(donnees)-6))],start=c(2018,7),frequency = 12)

Мои данные не были стационарными, поэтому я просто применил функцию log к своим данным для дисперсии станциаризации по дисперсии, затем я дважды дифференцировал, чтобы усреднить станционаризацию.

nba.statioVar=log(donnees_app)
nba.statioMoy=diff(nba.statioVar,lag=1)
nba.statioMoy2=diff(nba.statioVar,differences=2)
> nba.statioMoy2
               Jan           Feb           Mar           Apr           May           Jun           Jul           Aug
2004                             -0.2959808753  0.4457931535 -0.1617408491 -0.0064205678 -0.6647477060  0.3646431136
2005  0.1205340690  0.2208734028 -0.3487067743  0.3487067743 -0.1351326740  0.0699785788 -0.8374377923  0.5740878205
2006 -0.0465200156  0.2208734028 -0.3974969385  0.3184537311  0.1458518770 -0.2775297010 -0.6204118922  0.3203072998
2007 -0.2205427696  0.1740227540 -0.2693329338  0.4446858213 -0.1531649725 -0.2984412916 -0.3497545011  0.2978344439
2008 -0.0020682531  0.2978344439 -0.2513144283  0.0714589640  0.1165932675 -0.3422029113 -0.6079893722  0.6079893722
2009 -0.1192634208  0.2341933875 -0.3083013597  0.3433926795  0.0810483301 -0.5405806595 -0.3889552991  0.3490907006
2010 -0.0851192288  0.1651619365 -0.3849665866  0.5247285289 -0.0864735980 -0.1133703095 -0.5632956449  0.0699923718
2011 -0.1192634208  0.2860807911 -0.4544994427  0.5048908882 -0.1149299667 -0.3364722366 -1.0314729858  0.8671699345
2012 -0.7055697006  0.1310282624 -0.3774673763  0.1410785983  0.2876820725 -0.1800514083 -0.9549285246  0.4418327523
2013 -0.0011897681  0.0912615913 -0.1857877648  0.1784076575  0.0363676442  0.0400053346 -1.1815426680  0.4408429472
2014 -0.0350913198  0.0666913745 -0.2048417130  0.4798996322 -0.1291878517 -0.4251228840 -0.4292924442  0.1310282624
2015 -0.1906203596  0.1281000026 -0.1709401613  0.5311929266 -0.2317744405 -0.0993927439 -1.1406850651  0.5481814103
2016 -0.0617666177 -0.0026333129 -0.1259963276  0.4086916608 -0.0545024253 -0.2362391294 -1.1543698099  0.4192584302
2017 -0.9799700045  0.5655016201 -0.1740227540  0.5223294482 -0.4804385065  0.1048396700 -1.0749499144  0.5044050560
2018 -0.0003845414  0.0183222421 -0.1147013691  0.5593871904 -0.2717051179 -0.7554482068                            
               Sep           Oct           Nov           Dec
2004  0.1361321743  0.5223294482 -0.0104348773 -0.5919372786
2005  0.0671393028  0.5223294482 -0.1774889620 -0.2578291093
2006  0.4317824164  0.2148447485  0.0263173083 -0.2029408440
2007  0.1458518770  0.5007752879  0.0219789067 -0.4718957774
2008  0.0671393028  0.5794878621 -0.1639724181 -0.2892833538
2009  0.3101549283  0.4924764851 -0.2473540271 -0.2025628436
2010  0.3507402084  0.6861785112 -0.5191244266 -0.0069686693
2011  0.3184537311  0.3184537311 -0.2314423541  0.7239188392
2012  0.1643030513  0.7877057632 -0.1587781754 -0.3526742112
2013  0.4512335266  0.7371640660 -0.2540883552 -0.3526742112
2014  0.3285040670  0.9242589015 -0.3852624008 -0.2613647641
2015  0.6259384309  0.4512335266  0.0055248759 -0.4376582311
2016  0.8472978604  0.4256678154 -0.0374942044 -0.0408445295
2017  0.6359887667  0.7051851591 -0.5818869428 -0.2286587320
2018                              

Я использовал функцию auto.arima для определения модели ARIMA и оставляю ARIMA (3,0,3).

Итак, я сделал свои прогнозы на 6 месяцев:

prev5 = forecast(mod5,h=6) #mod5 is the ARIMA(3,0,3) model

"https://image.noelshack.com/fichiers/2019/17/1/1555894041-rplot.jpeg"

Я хочу, чтобы мой прогноз отображался в том же графике, что и первый (по оси Y, значения от 20 до 100, а не от -1 до 1)

Не знаю, насколько я ясен, как хочу, но я надеюсь, что вам удастся помочь мне.

Спасибо!

...