[R] Transposing forecasts results from nnetar function and turn them into a data frame

Jim Lemon drjimlemon at gmail.com
Sat Mar 18 11:12:13 CET 2017


Hi Paul,
A more educated guess is:

print(data.frame(Date=paste(rep(month.abb,32),
 rep(1986:2017,each=12), sep="-")[-(378:384)],
 Forecast=mf5$x))

Someone else may be able to tell you how to extract the dates from the
time series object mf5$x

Jim


On Sat, Mar 18, 2017 at 8:23 AM, Paul Bernal <paulbernal07 at gmail.com> wrote:
> Dear Jim,
>
> Thank you for your valuable replies. So variable mf5 has the forecasts for a
> fitted nnetar model.
>
> Below is the class and the str(mf5) output. Maybe with this information I am
> sharing with you, hopefully you can give me some more guidance.
>
> Again, thank you so much!
>
>> class(mf5)
> [1] "forecast"
>>
>> str(mf5)
> List of 16
>  $ x        : Time-Series [1:377] from 1986 to 2017: 48 40 44 35 44 42 39 37
> 41 36 ...
>  $ m        : num 12
>  $ p        : num 25
>  $ P        : num 1
>  $ scalex   :List of 2
>   ..$ center: num 38.1
>   ..$ scale : num 10.9
>  $ size     : num 13
>  $ subset   : int [1:377] 1 2 3 4 5 6 7 8 9 10 ...
>  $ model    :List of 20
>   ..$ :List of 15
>   .. ..$ n            : num [1:3] 25 13 1
>   .. ..$ nunits       : int 40
>   .. ..$ nconn        : num [1:41] 0 0 0 0 0 0 0 0 0 0 ...
>   .. ..$ conn         : num [1:352] 0 1 2 3 4 5 6 7 8 9 ...
>   .. ..$ nsunits      : num 39
>   .. ..$ decay        : num 0
>   .. ..$ entropy      : logi FALSE
>   .. ..$ softmax      : logi FALSE
>   .. ..$ censored     : logi FALSE
>   .. ..$ value        : num 5.83
>   .. ..$ wts          : num [1:352] -1.081 2.199 0.734 1.358 1.115 ...
>   .. ..$ convergence  : int 1
>   .. ..$ fitted.values: num [1:352, 1] 0.246 0.439 -0.357 1.325 -0.195 ...
>   .. .. ..- attr(*, "dimnames")=List of 2
>   .. .. .. ..$ : NULL
>   .. .. .. ..$ : NULL
>   .. ..$ residuals    : num [1:352, 1] -0.0754 0.00853 -0.0242 -0.05026
> 0.0898 ...
>   .. .. ..- attr(*, "dimnames")=List of 2
>   .. .. .. ..$ : NULL
>   .. .. .. ..$ : NULL
>   .. ..$ call         : language nnet.default(x = x, y = y, size = ..1,
> linout = linout, trace = trace)
>   .. ..- attr(*, "class")= chr "nnet"
>   ..$ :List of 15
>   .. ..$ n            : num [1:3] 25 13 1
>   .. ..$ nunits       : int 40
>   .. ..$ nconn        : num [1:41] 0 0 0 0 0 0 0 0 0 0 ...
>   .. ..$ conn         : num [1:352] 0 1 2 3 4 5 6 7 8 9 ...
>   .. ..$ nsunits      : num 39
>   .. ..$ decay        : num 0
>   .. ..$ entropy      : logi FALSE
>   .. ..$ softmax      : logi FALSE
>   .. ..$ censored     : logi FALSE
>   .. ..$ value        : num 2.54
>   .. ..$ wts          : num [1:352] -7.113 4.668 -0.801 -5.487 2.751 ...
>   .. ..$ convergence  : int 1
>   .. ..$ fitted.values: num [1:352, 1] 0.145 0.443 -0.401 1.286 -0.158 ...
>   .. .. ..- attr(*, "dimnames")=List of 2
>   .. .. .. ..$ : NULL
>   .. .. .. ..$ : NULL
>   .. ..$ residuals    : num [1:352, 1] 0.0258 0.0037 0.02 -0.0107 0.0528 ...
>   .. .. ..- attr(*, "dimnames")=List of 2
>   .. .. .. ..$ : NULL
>   .. .. .. ..$ : NULL
>   .. ..$ call         : language nnet.default(x = x, y = y, size = ..1,
> linout = linout, trace = trace)
>   .. ..- attr(*, "class")= chr "nnet"
>   ..$ :List of 15
>   .. ..$ n            : num [1:3] 25 13 1
>   .. ..$ nunits       : int 40
>   .. ..$ nconn        : num [1:41] 0 0 0 0 0 0 0 0 0 0 ...
>   .. ..$ conn         : num [1:352] 0 1 2 3 4 5 6 7 8 9 ...
>   .. ..$ nsunits      : num 39
>   .. ..$ decay        : num 0
>   .. ..$ entropy      : logi FALSE
>   .. ..$ softmax      : logi FALSE
>   .. ..$ censored     : logi FALSE
>   .. ..$ value        : num 1.1
>   .. ..$ wts          : num [1:352] -2.24 -0.698 -0.243 -2.575 4.073 ...
>   .. ..$ convergence  : int 1
>   .. ..$ fitted.values: num [1:352, 1] 0.2466 0.2986 -0.4369 1.3053 -0.0965
> ...
>   .. .. ..- attr(*, "dimnames")=List of 2
>   .. .. .. ..$ : NULL
>   .. .. .. ..$ : NULL
>   .. ..$ residuals    : num [1:352, 1] -0.07551 0.14845 0.056 -0.03027
> -0.00844 ...
>   .. .. ..- attr(*, "dimnames")=List of 2
>   .. .. .. ..$ : NULL
>   .. .. .. ..$ : NULL
>   .. ..$ call         : language nnet.default(x = x, y = y, size = ..1,
> linout = linout, trace = trace)
>   .. ..- attr(*, "class")= chr "nnet"
>   ..$ :List of 15
>   .. ..$ n            : num [1:3] 25 13 1
>   .. ..$ nunits       : int 40
>   .. ..$ nconn        : num [1:41] 0 0 0 0 0 0 0 0 0 0 ...
>   .. ..$ conn         : num [1:352] 0 1 2 3 4 5 6 7 8 9 ...
>   .. ..$ nsunits      : num 39
>   .. ..$ decay        : num 0
>   .. ..$ entropy      : logi FALSE
>   .. ..$ softmax      : logi FALSE
>   .. ..$ censored     : logi FALSE
>   .. ..$ value        : num 1.8
>   .. ..$ wts          : num [1:352] 0.427 1.89 -0.705 -3.121 -1.134 ...
>   .. ..$ convergence  : int 1
>   .. ..$ fitted.values: num [1:352, 1] 0.11 0.37 -0.38 1.25 -0.15 ...
>   .. .. ..- attr(*, "dimnames")=List of 2
>   .. .. .. ..$ : NULL
>   .. .. .. ..$ : NULL
>   .. ..$ residuals    : num [1:352, 1] 0.06113 0.07689 -0.00135 0.02279
> 0.04491 ...
>   .. .. ..- attr(*, "dimnames")=List of 2
>   .. .. .. ..$ : NULL
>   .. .. .. ..$ : NULL
>   .. ..$ call         : language nnet.default(x = x, y = y, size = ..1,
> linout = linout, trace = trace)
>   .. ..- attr(*, "class")= chr "nnet"
>   ..$ :List of 15
>   .. ..$ n            : num [1:3] 25 13 1
>   .. ..$ nunits       : int 40
>   .. ..$ nconn        : num [1:41] 0 0 0 0 0 0 0 0 0 0 ...
>   .. ..$ conn         : num [1:352] 0 1 2 3 4 5 6 7 8 9 ...
>   .. ..$ nsunits      : num 39
>   .. ..$ decay        : num 0
>   .. ..$ entropy      : logi FALSE
>   .. ..$ softmax      : logi FALSE
>   .. ..$ censored     : logi FALSE
>   .. ..$ value        : num 2.67
>   .. ..$ wts          : num [1:352] -0.632 2.121 6.144 1.697 0.953 ...
>   .. ..$ convergence  : int 1
>   .. ..$ fitted.values: num [1:352, 1] 0.2228 0.4483 -0.3944 1.236 -0.0856
> ...
>   .. .. ..- attr(*, "dimnames")=List of 2
>   .. .. .. ..$ : NULL
>   .. .. .. ..$ : NULL
>   .. ..$ residuals    : num [1:352, 1] -0.05171 -0.00123 0.01351 0.03908
> -0.01928 ...
>   .. .. ..- attr(*, "dimnames")=List of 2
>   .. .. .. ..$ : NULL
>   .. .. .. ..$ : NULL
>   .. ..$ call         : language nnet.default(x = x, y = y, size = ..1,
> linout = linout, trace = trace)
>   .. ..- attr(*, "class")= chr "nnet"
>   ..$ :List of 15
>   .. ..$ n            : num [1:3] 25 13 1
>   .. ..$ nunits       : int 40
>   .. ..$ nconn        : num [1:41] 0 0 0 0 0 0 0 0 0 0 ...
>   .. ..$ conn         : num [1:352] 0 1 2 3 4 5 6 7 8 9 ...
>   .. ..$ nsunits      : num 39
>   .. ..$ decay        : num 0
>   .. ..$ entropy      : logi FALSE
>   .. ..$ softmax      : logi FALSE
>   .. ..$ censored     : logi FALSE
>   .. ..$ value        : num 1.8
>   .. ..$ wts          : num [1:352] -0.919 -0.769 1.105 -0.444 4.516 ...
>   .. ..$ convergence  : int 1
>   .. ..$ fitted.values: num [1:352, 1] 0.0833 0.4158 -0.3748 1.3173 -0.082
> ...
>   .. .. ..- attr(*, "dimnames")=List of 2
>   .. .. .. ..$ : NULL
>   .. .. .. ..$ : NULL
>   .. ..$ residuals    : num [1:352, 1] 0.08773 0.03123 -0.00616 -0.04231
> -0.02296 ...
>   .. .. ..- attr(*, "dimnames")=List of 2
>   .. .. .. ..$ : NULL
>   .. .. .. ..$ : NULL
>   .. ..$ call         : language nnet.default(x = x, y = y, size = ..1,
> linout = linout, trace = trace)
>   .. ..- attr(*, "class")= chr "nnet"
>   ..$ :List of 15
>   .. ..$ n            : num [1:3] 25 13 1
>   .. ..$ nunits       : int 40
>   .. ..$ nconn        : num [1:41] 0 0 0 0 0 0 0 0 0 0 ...
>   .. ..$ conn         : num [1:352] 0 1 2 3 4 5 6 7 8 9 ...
>   .. ..$ nsunits      : num 39
>   .. ..$ decay        : num 0
>   .. ..$ entropy      : logi FALSE
>   .. ..$ softmax      : logi FALSE
>   .. ..$ censored     : logi FALSE
>   .. ..$ value        : num 2.65
>   .. ..$ wts          : num [1:352] 2.03 -1.6 -1.91 -4.65 -3.03 ...
>   .. ..$ convergence  : int 1
>   .. ..$ fitted.values: num [1:352, 1] 0.199 0.447 -0.443 1.263 -0.138 ...
>   .. .. ..- attr(*, "dimnames")=List of 2
>   .. .. .. ..$ : NULL
>   .. .. .. ..$ : NULL
>   .. ..$ residuals    : num [1:352, 1] -0.02808 0.000236 0.061884 0.012432
> 0.033544 ...
>   .. .. ..- attr(*, "dimnames")=List of 2
>   .. .. .. ..$ : NULL
>   .. .. .. ..$ : NULL
>   .. ..$ call         : language nnet.default(x = x, y = y, size = ..1,
> linout = linout, trace = trace)
>   .. ..- attr(*, "class")= chr "nnet"
>   ..$ :List of 15
>   .. ..$ n            : num [1:3] 25 13 1
>   .. ..$ nunits       : int 40
>   .. ..$ nconn        : num [1:41] 0 0 0 0 0 0 0 0 0 0 ...
>   .. ..$ conn         : num [1:352] 0 1 2 3 4 5 6 7 8 9 ...
>   .. ..$ nsunits      : num 39
>   .. ..$ decay        : num 0
>   .. ..$ entropy      : logi FALSE
>   .. ..$ softmax      : logi FALSE
>   .. ..$ censored     : logi FALSE
>   .. ..$ value        : num 7.79
>   .. ..$ wts          : num [1:352] -3.314 3.89 -6.355 0.842 4.491 ...
>   .. ..$ convergence  : int 1
>   .. ..$ fitted.values: num [1:352, 1] 0.171 0.462 -0.337 1.24 -0.128 ...
>   .. .. ..- attr(*, "dimnames")=List of 2
>   .. .. .. ..$ : NULL
>   .. .. .. ..$ : NULL
>   .. ..$ residuals    : num [1:352, 1] 0.000172 -0.014804 -0.044404 0.03475
> 0.023508 ...
>   .. .. ..- attr(*, "dimnames")=List of 2
>   .. .. .. ..$ : NULL
>   .. .. .. ..$ : NULL
>   .. ..$ call         : language nnet.default(x = x, y = y, size = ..1,
> linout = linout, trace = trace)
>   .. ..- attr(*, "class")= chr "nnet"
>   ..$ :List of 15
>   .. ..$ n            : num [1:3] 25 13 1
>   .. ..$ nunits       : int 40
>   .. ..$ nconn        : num [1:41] 0 0 0 0 0 0 0 0 0 0 ...
>   .. ..$ conn         : num [1:352] 0 1 2 3 4 5 6 7 8 9 ...
>   .. ..$ nsunits      : num 39
>   .. ..$ decay        : num 0
>   .. ..$ entropy      : logi FALSE
>   .. ..$ softmax      : logi FALSE
>   .. ..$ censored     : logi FALSE
>   .. ..$ value        : num 2.3
>   .. ..$ wts          : num [1:352] 5.12 -2.27 2.25 4.02 -6.78 ...
>   .. ..$ convergence  : int 1
>   .. ..$ fitted.values: num [1:352, 1] 0.1137 0.4326 -0.4635 1.2762 -0.0999
> ...
>   .. .. ..- attr(*, "dimnames")=List of 2
>   .. .. .. ..$ : NULL
>   .. .. .. ..$ : NULL
>   .. ..$ residuals    : num [1:352, 1] 0.05741 0.01451 0.08259 -0.00115
> -0.00503 ...
>   .. .. ..- attr(*, "dimnames")=List of 2
>   .. .. .. ..$ : NULL
>   .. .. .. ..$ : NULL
>   .. ..$ call         : language nnet.default(x = x, y = y, size = ..1,
> linout = linout, trace = trace)
>   .. ..- attr(*, "class")= chr "nnet"
>   ..$ :List of 15
>   .. ..$ n            : num [1:3] 25 13 1
>   .. ..$ nunits       : int 40
>   .. ..$ nconn        : num [1:41] 0 0 0 0 0 0 0 0 0 0 ...
>   .. ..$ conn         : num [1:352] 0 1 2 3 4 5 6 7 8 9 ...
>   .. ..$ nsunits      : num 39
>   .. ..$ decay        : num 0
>   .. ..$ entropy      : logi FALSE
>   .. ..$ softmax      : logi FALSE
>   .. ..$ censored     : logi FALSE
>   .. ..$ value        : num 2.42
>   .. ..$ wts          : num [1:352] 4.12 -1.78 2.89 4.28 2.57 ...
>   .. ..$ convergence  : int 1
>   .. ..$ fitted.values: num [1:352, 1] 0.0986 0.4599 -0.4425 1.2061 -0.1931
> ...
>   .. .. ..- attr(*, "dimnames")=List of 2
>   .. .. .. ..$ : NULL
>   .. .. .. ..$ : NULL
>   .. ..$ residuals    : num [1:352, 1] 0.0724 -0.0128 0.0615 0.069 0.0882
> ...
>   .. .. ..- attr(*, "dimnames")=List of 2
>   .. .. .. ..$ : NULL
>   .. .. .. ..$ : NULL
>   .. ..$ call         : language nnet.default(x = x, y = y, size = ..1,
> linout = linout, trace = trace)
>   .. ..- attr(*, "class")= chr "nnet"
>   ..$ :List of 15
>   .. ..$ n            : num [1:3] 25 13 1
>   .. ..$ nunits       : int 40
>   .. ..$ nconn        : num [1:41] 0 0 0 0 0 0 0 0 0 0 ...
>   .. ..$ conn         : num [1:352] 0 1 2 3 4 5 6 7 8 9 ...
>   .. ..$ nsunits      : num 39
>   .. ..$ decay        : num 0
>   .. ..$ entropy      : logi FALSE
>   .. ..$ softmax      : logi FALSE
>   .. ..$ censored     : logi FALSE
>   .. ..$ value        : num 2.81
>   .. ..$ wts          : num [1:352] -1.207 -1.817 -3.409 -4.643 0.775 ...
>   .. ..$ convergence  : int 1
>   .. ..$ fitted.values: num [1:352, 1] 0.0905 0.5451 -0.4395 1.1706 -0.0989
> ...
>   .. .. ..- attr(*, "dimnames")=List of 2
>   .. .. .. ..$ : NULL
>   .. .. .. ..$ : NULL
>   .. ..$ residuals    : num [1:352, 1] 0.08053 -0.09806 0.05853 0.10442
> -0.00604 ...
>   .. .. ..- attr(*, "dimnames")=List of 2
>   .. .. .. ..$ : NULL
>   .. .. .. ..$ : NULL
>   .. ..$ call         : language nnet.default(x = x, y = y, size = ..1,
> linout = linout, trace = trace)
>   .. ..- attr(*, "class")= chr "nnet"
>   ..$ :List of 15
>   .. ..$ n            : num [1:3] 25 13 1
>   .. ..$ nunits       : int 40
>   .. ..$ nconn        : num [1:41] 0 0 0 0 0 0 0 0 0 0 ...
>   .. ..$ conn         : num [1:352] 0 1 2 3 4 5 6 7 8 9 ...
>   .. ..$ nsunits      : num 39
>   .. ..$ decay        : num 0
>   .. ..$ entropy      : logi FALSE
>   .. ..$ softmax      : logi FALSE
>   .. ..$ censored     : logi FALSE
>   .. ..$ value        : num 6.06
>   .. ..$ wts          : num [1:352] 1.092 4.676 -0.514 1.13 1.276 ...
>   .. ..$ convergence  : int 1
>   .. ..$ fitted.values: num [1:352, 1] 0.1781 0.4221 -0.4852 1.2227 -0.0774
> ...
>   .. .. ..- attr(*, "dimnames")=List of 2
>   .. .. .. ..$ : NULL
>   .. .. .. ..$ : NULL
>   .. ..$ residuals    : num [1:352, 1] -0.007 0.025 0.1043 0.0523 -0.0275
> ...
>   .. .. ..- attr(*, "dimnames")=List of 2
>   .. .. .. ..$ : NULL
>   .. .. .. ..$ : NULL
>   .. ..$ call         : language nnet.default(x = x, y = y, size = ..1,
> linout = linout, trace = trace)
>   .. ..- attr(*, "class")= chr "nnet"
>   ..$ :List of 15
>   .. ..$ n            : num [1:3] 25 13 1
>   .. ..$ nunits       : int 40
>   .. ..$ nconn        : num [1:41] 0 0 0 0 0 0 0 0 0 0 ...
>   .. ..$ conn         : num [1:352] 0 1 2 3 4 5 6 7 8 9 ...
>   .. ..$ nsunits      : num 39
>   .. ..$ decay        : num 0
>   .. ..$ entropy      : logi FALSE
>   .. ..$ softmax      : logi FALSE
>   .. ..$ censored     : logi FALSE
>   .. ..$ value        : num 4.1
>   .. ..$ wts          : num [1:352] -4.1 1.95 -5.39 6.06 -3.65 ...
>   .. ..$ convergence  : int 1
>   .. ..$ fitted.values: num [1:352, 1] 0.1674 0.4017 -0.3968 1.2474 -0.0835
> ...
>   .. .. ..- attr(*, "dimnames")=List of 2
>   .. .. .. ..$ : NULL
>   .. .. .. ..$ : NULL
>   .. ..$ residuals    : num [1:352, 1] 0.00363 0.0454 0.01586 0.02764
> -0.02148 ...
>   .. .. ..- attr(*, "dimnames")=List of 2
>   .. .. .. ..$ : NULL
>   .. .. .. ..$ : NULL
>   .. ..$ call         : language nnet.default(x = x, y = y, size = ..1,
> linout = linout, trace = trace)
>   .. ..- attr(*, "class")= chr "nnet"
>   ..$ :List of 15
>   .. ..$ n            : num [1:3] 25 13 1
>   .. ..$ nunits       : int 40
>   .. ..$ nconn        : num [1:41] 0 0 0 0 0 0 0 0 0 0 ...
>   .. ..$ conn         : num [1:352] 0 1 2 3 4 5 6 7 8 9 ...
>   .. ..$ nsunits      : num 39
>   .. ..$ decay        : num 0
>   .. ..$ entropy      : logi FALSE
>   .. ..$ softmax      : logi FALSE
>   .. ..$ censored     : logi FALSE
>   .. ..$ value        : num 1.22
>   .. ..$ wts          : num [1:352] -2.5 1.43 2.96 -2.31 -1.18 ...
>   .. ..$ convergence  : int 1
>   .. ..$ fitted.values: num [1:352, 1] 0.1436 0.446 -0.4246 1.2081 -0.0853
> ...
>   .. .. ..- attr(*, "dimnames")=List of 2
>   .. .. .. ..$ : NULL
>   .. .. .. ..$ : NULL
>   .. ..$ residuals    : num [1:352, 1] 0.02742 0.00101 0.04371 0.06697
> -0.01964 ...
>   .. .. ..- attr(*, "dimnames")=List of 2
>   .. .. .. ..$ : NULL
>   .. .. .. ..$ : NULL
>   .. ..$ call         : language nnet.default(x = x, y = y, size = ..1,
> linout = linout, trace = trace)
>   .. ..- attr(*, "class")= chr "nnet"
>   ..$ :List of 15
>   .. ..$ n            : num [1:3] 25 13 1
>   .. ..$ nunits       : int 40
>   .. ..$ nconn        : num [1:41] 0 0 0 0 0 0 0 0 0 0 ...
>   .. ..$ conn         : num [1:352] 0 1 2 3 4 5 6 7 8 9 ...
>   .. ..$ nsunits      : num 39
>   .. ..$ decay        : num 0
>   .. ..$ entropy      : logi FALSE
>   .. ..$ softmax      : logi FALSE
>   .. ..$ censored     : logi FALSE
>   .. ..$ value        : num 0.858
>   .. ..$ wts          : num [1:352] 2.6535 4.398 0.0444 4.9804 -0.6771 ...
>   .. ..$ convergence  : int 1
>   .. ..$ fitted.values: num [1:352, 1] 0.089 0.4388 -0.283 1.1308 -0.0592
> ...
>   .. .. ..- attr(*, "dimnames")=List of 2
>   .. .. .. ..$ : NULL
>   .. .. .. ..$ : NULL
>   .. ..$ residuals    : num [1:352, 1] 0.0821 0.0083 -0.0979 0.1443 -0.0457
> ...
>   .. .. ..- attr(*, "dimnames")=List of 2
>   .. .. .. ..$ : NULL
>   .. .. .. ..$ : NULL
>   .. ..$ call         : language nnet.default(x = x, y = y, size = ..1,
> linout = linout, trace = trace)
>   .. ..- attr(*, "class")= chr "nnet"
>   ..$ :List of 15
>   .. ..$ n            : num [1:3] 25 13 1
>   .. ..$ nunits       : int 40
>   .. ..$ nconn        : num [1:41] 0 0 0 0 0 0 0 0 0 0 ...
>   .. ..$ conn         : num [1:352] 0 1 2 3 4 5 6 7 8 9 ...
>   .. ..$ nsunits      : num 39
>   .. ..$ decay        : num 0
>   .. ..$ entropy      : logi FALSE
>   .. ..$ softmax      : logi FALSE
>   .. ..$ censored     : logi FALSE
>   .. ..$ value        : num 2.19
>   .. ..$ wts          : num [1:352] 1.216 -4.28 -2.531 0.987 1.311 ...
>   .. ..$ convergence  : int 1
>   .. ..$ fitted.values: num [1:352, 1] 0.1548 0.4733 -0.3074 1.2065 -0.0909
> ...
>   .. .. ..- attr(*, "dimnames")=List of 2
>   .. .. .. ..$ : NULL
>   .. .. .. ..$ : NULL
>   .. ..$ residuals    : num [1:352, 1] 0.0163 -0.0263 -0.0735 0.0685 -0.014
> ...
>   .. .. ..- attr(*, "dimnames")=List of 2
>   .. .. .. ..$ : NULL
>   .. .. .. ..$ : NULL
>   .. ..$ call         : language nnet.default(x = x, y = y, size = ..1,
> linout = linout, trace = trace)
>   .. ..- attr(*, "class")= chr "nnet"
>   ..$ :List of 15
>   .. ..$ n            : num [1:3] 25 13 1
>   .. ..$ nunits       : int 40
>   .. ..$ nconn        : num [1:41] 0 0 0 0 0 0 0 0 0 0 ...
>   .. ..$ conn         : num [1:352] 0 1 2 3 4 5 6 7 8 9 ...
>   .. ..$ nsunits      : num 39
>   .. ..$ decay        : num 0
>   .. ..$ entropy      : logi FALSE
>   .. ..$ softmax      : logi FALSE
>   .. ..$ censored     : logi FALSE
>   .. ..$ value        : num 2.51
>   .. ..$ wts          : num [1:352] -0.862 1.953 1.304 -0.273 1.033 ...
>   .. ..$ convergence  : int 1
>   .. ..$ fitted.values: num [1:352, 1] 0.141 0.492 -0.376 1.244 -0.101 ...
>   .. .. ..- attr(*, "dimnames")=List of 2
>   .. .. .. ..$ : NULL
>   .. .. .. ..$ : NULL
>   .. ..$ residuals    : num [1:352, 1] 0.02978 -0.04529 -0.00509 0.03066
> -0.00362 ...
>   .. .. ..- attr(*, "dimnames")=List of 2
>   .. .. .. ..$ : NULL
>   .. .. .. ..$ : NULL
>   .. ..$ call         : language nnet.default(x = x, y = y, size = ..1,
> linout = linout, trace = trace)
>   .. ..- attr(*, "class")= chr "nnet"
>   ..$ :List of 15
>   .. ..$ n            : num [1:3] 25 13 1
>   .. ..$ nunits       : int 40
>   .. ..$ nconn        : num [1:41] 0 0 0 0 0 0 0 0 0 0 ...
>   .. ..$ conn         : num [1:352] 0 1 2 3 4 5 6 7 8 9 ...
>   .. ..$ nsunits      : num 39
>   .. ..$ decay        : num 0
>   .. ..$ entropy      : logi FALSE
>   .. ..$ softmax      : logi FALSE
>   .. ..$ censored     : logi FALSE
>   .. ..$ value        : num 2.02
>   .. ..$ wts          : num [1:352] 6.78 -0.31 -1.04 -7.21 2.37 ...
>   .. ..$ convergence  : int 1
>   .. ..$ fitted.values: num [1:352, 1] 0.0302 0.4157 -0.3828 1.134 -0.1247
> ...
>   .. .. ..- attr(*, "dimnames")=List of 2
>   .. .. .. ..$ : NULL
>   .. .. .. ..$ : NULL
>   .. ..$ residuals    : num [1:352, 1] 0.14087 0.03136 0.00183 0.14107
> 0.01977 ...
>   .. .. ..- attr(*, "dimnames")=List of 2
>   .. .. .. ..$ : NULL
>   .. .. .. ..$ : NULL
>   .. ..$ call         : language nnet.default(x = x, y = y, size = ..1,
> linout = linout, trace = trace)
>   .. ..- attr(*, "class")= chr "nnet"
>   ..$ :List of 15
>   .. ..$ n            : num [1:3] 25 13 1
>   .. ..$ nunits       : int 40
>   .. ..$ nconn        : num [1:41] 0 0 0 0 0 0 0 0 0 0 ...
>   .. ..$ conn         : num [1:352] 0 1 2 3 4 5 6 7 8 9 ...
>   .. ..$ nsunits      : num 39
>   .. ..$ decay        : num 0
>   .. ..$ entropy      : logi FALSE
>   .. ..$ softmax      : logi FALSE
>   .. ..$ censored     : logi FALSE
>   .. ..$ value        : num 1.81
>   .. ..$ wts          : num [1:352] 0.385 1.215 -2.217 -1.288 -1.172 ...
>   .. ..$ convergence  : int 1
>   .. ..$ fitted.values: num [1:352, 1] 0.26023 0.47306 -0.31769 1.29285
> -0.00974 ...
>   .. .. ..- attr(*, "dimnames")=List of 2
>   .. .. .. ..$ : NULL
>   .. .. .. ..$ : NULL
>   .. ..$ residuals    : num [1:352, 1] -0.0892 -0.026 -0.0632 -0.0178
> -0.0952 ...
>   .. .. ..- attr(*, "dimnames")=List of 2
>   .. .. .. ..$ : NULL
>   .. .. .. ..$ : NULL
>   .. ..$ call         : language nnet.default(x = x, y = y, size = ..1,
> linout = linout, trace = trace)
>   .. ..- attr(*, "class")= chr "nnet"
>   ..$ :List of 15
>   .. ..$ n            : num [1:3] 25 13 1
>   .. ..$ nunits       : int 40
>   .. ..$ nconn        : num [1:41] 0 0 0 0 0 0 0 0 0 0 ...
>   .. ..$ conn         : num [1:352] 0 1 2 3 4 5 6 7 8 9 ...
>   .. ..$ nsunits      : num 39
>   .. ..$ decay        : num 0
>   .. ..$ entropy      : logi FALSE
>   .. ..$ softmax      : logi FALSE
>   .. ..$ censored     : logi FALSE
>   .. ..$ value        : num 2.11
>   .. ..$ wts          : num [1:352] 3.38 -2.75 -3.5 -1.13 -8.48 ...
>   .. ..$ convergence  : int 1
>   .. ..$ fitted.values: num [1:352, 1] -0.0863 0.4472 -0.3007 1.2226 -0.1176
> ...
>   .. .. ..- attr(*, "dimnames")=List of 2
>   .. .. .. ..$ : NULL
>   .. .. .. ..$ : NULL
>   .. ..$ residuals    : num [1:352, 1] 0.257314 -0.000178 -0.080274 0.052434
> 0.012663 ...
>   .. .. ..- attr(*, "dimnames")=List of 2
>   .. .. .. ..$ : NULL
>   .. .. .. ..$ : NULL
>   .. ..$ call         : language nnet.default(x = x, y = y, size = ..1,
> linout = linout, trace = trace)
>   .. ..- attr(*, "class")= chr "nnet"
>   ..- attr(*, "class")= chr "nnetarmodels"
>  $ nnetargs : list()
>  $ fitted   : Time-Series [1:377] from 1986 to 2017: NA NA NA NA NA NA NA NA
> NA NA ...
>  $ residuals: Time-Series [1:377] from 1986 to 2017: NA NA NA NA NA NA NA NA
> NA NA ...
>  $ lags     : num [1:25] 1 2 3 4 5 6 7 8 9 10 ...
>  $ series   : chr "TSDat"
>  $ method   : chr "NNAR(25,1,13)[12]"
>  $ call     : language nnetar(y = TSDat)
>  $ mean     : Time-Series [1:24] from 2017 to 2019: 54.7 50.3 55.4 62.6 59.7
> ...
>  - attr(*, "class")= chr "forecast"
>>
>
>
> 2017-03-17 15:48 GMT-05:00 Jim Lemon <drjimlemon at gmail.com>:
>>
>> Hi Paul,
>> When manipulating any R object, the first thing to ascertain is what it
>> is:
>>
>> class(TSmodelForecast)
>>
>> should give you useful information.
>>
>> str(TSmodelForecast)
>>
>> should give you more. Because of the wealth of defined data structures
>> in R, it is difficult to manipulate them without this information. I
>> suspect that your output is something like a time series object, and
>> once that is known, it should not be too hard to display its contents
>> in the way you want.
>>
>> Jim
>>
>>
>> On Sat, Mar 18, 2017 at 7:12 AM, Paul Bernal <paulbernal07 at gmail.com>
>> wrote:
>> > Dear Jim,
>> >
>> > Hope you are doing great. I tried to do what you suggested but R send an
>> > error message saying that $ operator is invalid for atomic vectors.
>> >
>> > The format of the forecasts are as follows: forecasted years are as
>> > rows,
>> > and forecasted months are in columns what I want to do is to have two
>> > colums, one with the forecasted dates in (MMM-YYYY format) and the
>> > second
>> > column with the actual forecast results.
>> >
>> > The output that is giving me hard time is the forecast output from
>> > nnetar
>> > model.
>> >
>> > Thanks for your valuable support,
>> >
>> > Best of regards,
>> >
>> > Paul
>> >
>> >
>> > 2017-03-16 18:23 GMT-05:00 Jim Lemon <drjimlemon at gmail.com>:
>> >>
>> >> Hi Paul,
>> >> It looks like the information that is printed is in:
>> >>
>> >> TSModelForecast$mean
>> >>
>> >> If str(TSModelForecast$mean) returns something like a list with two
>> >> components, you can probably use something like this:
>> >>
>> >> paste(format(TSModelForecast$mean$Date,"%b-%Y"),
>> >>  TSModelForecast$mean$Forecast,sep="-",collapse="\n")
>> >>
>> >> It also might be in TSModelForecast$fitted
>> >>
>> >> Jim
>> >>
>> >>
>> >> On Fri, Mar 17, 2017 at 5:34 AM, Paul Bernal <paulbernal07 at gmail.com>
>> >> wrote:
>> >> > Dear friends,
>> >> >
>> >> > I am currently using R version 3.3.3 (64-bit) and used the following
>> >> > code
>> >> > to generate forecasts:
>> >> >
>> >> >> library(forecast)
>> >> >>
>> >> >> library(tseries)
>> >> >
>> >> >     ‘tseries’ version: 0.10-35
>> >> >
>> >> >     ‘tseries’ is a package for time series analysis and computational
>> >> > finance.
>> >> >
>> >> >     See ‘library(help="tseries")’ for details.
>> >> >
>> >> >
>> >> >> DAT<-read.csv("TrainingData.csv")
>> >> >>
>> >> >> TSdata<-ts(DAT[,1], start=c(1994,10), frequency=12)
>> >> >>
>> >> >> TSmodel<-nnetar(TSdata)
>> >> >>
>> >> >> TSmodelForecast<-forecast(TSmodel, h=24)
>> >> >>
>> >> >> TSmodelForecast
>> >> >
>> >> > The problem is that the output comes in this fashion:
>> >> >
>> >> >                 Jan    Feb    Mar    Apr    May    Jun     Jul    Aug
>> >> > Sep   Oct
>> >> >  2017        10      20      15      40     9         8         21
>> >> > 21
>> >> >     19     18
>> >> >  2018        34      15       7        6      10      11
>> >> >
>> >> > The format I would like to have is the following:
>> >> >
>> >> > Date                 Forecast
>> >> > Jan-2017               10
>> >> > Feb-2017               20
>> >> > Mar-2017               15
>> >> > Apr-2017                40
>> >> > May-2017               9
>> >> > Jun-2017                8
>> >> > Jul-2017                 21
>> >> > Aug-2017               21
>> >> > Sep-2017               19
>> >> > etc                          etc
>> >> >
>> >> > Is there a way to make the results look like this?
>> >> >
>> >> > Attached is a dataset as a reference.
>> >> >
>> >> > Best regards,
>> >> >
>> >> > Paul
>> >> > ______________________________________________
>> >> > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
>> >> > https://stat.ethz.ch/mailman/listinfo/r-help
>> >> > PLEASE do read the posting guide
>> >> > http://www.R-project.org/posting-guide.html
>> >> > and provide commented, minimal, self-contained, reproducible code.
>> >
>> >
>
>



More information about the R-help mailing list