[Rcpp-devel] Error while using arima function (TSA package) through RInside (Rcpp)

Kowagunga kowagunga at gmail.com
Tue Nov 29 11:03:45 CET 2011


Hello everyone,
I'm working to get some predictions using ARIMA model in R. This is the
code I'm using, at it works as expected:

library(TSA)
> load(' path... /R/i686-pc-linux-gnu-library/2.14/TSA/data/airpass.rda')
> show(airpass)
> m <- arima(airpass,order=c(0,1,12),seasonal=list(order=c(0,1,1),period=24))
> m
> plot(m,n.ahead=72,xlab='Time',type='o',ylab='Passengers')
> abline(h=0)
>

I use example data from the TSA package, and the prediction is plotted well.
The issue is that what I really want is use it within a bigger C++ project,
so I need to use RInside package. I've tested every example of RInside, and
it seems perfectly operative in my machine.
I have programmed it like this:

> //Ejemplo que carga los datos airpass.rda del package TSA y realiza una
> prediccion ARIMA sobre ellos
> #include <RInside.h>                            // for the embedded R via
> RInside
> int main(int argc, char *argv[]) {
>     RInside R(argc, argv);                      // create an embedded R
> instance
>     std::string evalstr = "library(TSA); load(' ...path...
> /R/i686-pc-linux-gnu-library/2.14/TSA/data/airpass.rda'); show(airpass);";
> //Cargamos la libreria TSA necesaria y el archivo de datos
>     R.parseEvalQ(evalstr);
>     std::string evalstr2 = "m <-
> arima(airpass,order=c(0,1,12),seasonal=list(order=c(0,1,1),period=24)); m";
> //Calculo de la prediccion sobre los datos. Coeficientes manualmente
> precalculados
>     R.parseEvalQ(evalstr2);
>     std::string evalstr3 =
> "plot(m,n.ahead=72,xlab='Tiempo',type='o',ylab='Pasajeros'); abline(h=0)";
> //Dibujamos los datos y la prediccion.
>     R.parseEvalQ(evalstr3);
>     std::string evalstr4 = "cat('AIC del modelo:\n'); m$aic"; //Muestra el
> estimador de bondad AIC
>     R.parseEvalQ(evalstr4);
>
>     exit(0);
> }
>
(The comments are in spanish, sorry)
When I run this code, the output of the first evalstr is the same that in
R. TSA & airpass are loaded correctly. But the next line seems not to work.
It tooks several seconds calculating arima model, but it the problem is
that "m" command to show the model produces no output, the same that
"m$aic". With "no output" I mean nothing (including any error).
I can't get the graphic too, but I know that maybe I would have to plot to
a file to get it work. The problem is that I also get no error. This is the
output of my code (there are some warning lines at the beginning, but the
rest of examples always worked with the same lines):

> During startup - Warning messages:
> 1: Setting LC_CTYPE failed, using "C"
> 2: Setting LC_COLLATE failed, using "C"
> 3: Setting LC_TIME failed, using "C"
> 4: Setting LC_MESSAGES failed, using "C"
> 5: Setting LC_PAPER failed, using "C"
> 6: Setting LC_PAPER failed, using "C"
> 7: Setting LC_MEASUREMENT failed, using "C"
> Loading required package: leaps
> Loading required package: locfit
> Loading required package: akima
> Loading required package: lattice
> locfit 1.5-6      2010-01-20
> Loading required package: mgcv
> This is mgcv 1.7-9. For overview type 'help("mgcv-package")'.
> Loading required package: tseries
> Loading required package: quadprog
> Loading required package: zoo
>
> Attaching package: 'zoo'
>
> The following object(s) are masked from 'package:base':
>
>     as.Date, as.Date.numeric
>
>
> Attaching package: 'TSA'
>
> The following object(s) are masked from 'package:stats':
>
>     acf, arima
>
> The following object(s) are masked from 'package:utils':
>
>     tar
>
>      Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
> 1960 112 118 132 129 121 135 148 148 136 119 104 118
> 1961 115 126 141 135 125 149 170 170 158 133 114 140
> 1962 145 150 178 163 172 178 199 199 184 162 146 166
> 1963 171 180 193 181 183 218 230 242 209 191 172 194
> 1964 196 196 236 235 229 243 264 272 237 211 180 201
> 1965 204 188 235 227 234 264 302 293 259 229 203 229
> 1966 242 233 267 269 270 315 364 347 312 274 237 278
> 1967 284 277 317 313 318 374 413 405 355 306 271 306
> 1968 315 301 356 348 355 422 465 467 404 347 305 336
> 1969 340 318 362 348 363 435 491 505 404 359 310 337
> 1970 360 342 406 396 420 472 548 559 463 407 362 405
> 1971 417 391 419 461 472 535 622 606 508 461 390 432
> AIC del modelo:
>

I have tried everything that came to my mind, and I have no more ideas! I
think I have explained my best, hope somebody can help me with this.
Sorry if I made some language mistake ;) Thank you very much!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.r-forge.r-project.org/pipermail/rcpp-devel/attachments/20111129/859d3b54/attachment.htm>


More information about the Rcpp-devel mailing list