{"id":143,"date":"2017-05-15T00:14:18","date_gmt":"2017-05-15T00:14:18","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/casaresfelix\/?p=143"},"modified":"2017-05-16T23:03:56","modified_gmt":"2017-05-16T23:03:56","slug":"autoarima-r","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/casaresfelix\/2017\/05\/15\/autoarima-r\/","title":{"rendered":"La funci\u00f3n auto.arima de R: una opci\u00f3n r\u00e1pida para pron\u00f3sticar"},"content":{"rendered":"<p style=\"text-align: justify\">Los caminos r\u00e1pidos no me gustan, sin embargo, esta opci\u00f3n puede por lo menos dar luces <!--more-->para generar un buen modelo para realizar pron\u00f3sticos.<\/p>\n<p style=\"text-align: justify\">La funci\u00f3n auto.arima de la librer\u00eda forecast (de largo, una de las mejores librer\u00edas de R), proporciona una opci\u00f3n r\u00e1pida para construir pron\u00f3sticos con series temporales, debido a que evalua entre todos los posibles modelos, al mejor modelo considerando diversos criterios: estacionariedad, estacionalidad, diferencias, entre otras.<\/p>\n<p style=\"text-align: justify\">Pero, \u00bfc\u00f3mo se la utiliza?<\/p>\n<p style=\"text-align: justify\">Veamos:<\/p>\n<p style=\"text-align: justify\">Lo primero que tenemos que hacer es\u00a0descarga la base de datos que vamos a utilizar <a href=\"https:\/\/drive.google.com\/open?id=0ByTk49UQMPnWOXowTk1laU10ZmM\">aqu\u00ed <\/a>y llamar a las librer\u00edas que utilizaremos<\/p>\n<blockquote><p>library(forecast)<br \/>\nlibrary(openxlsx)<\/p><\/blockquote>\n<p style=\"text-align: justify\">La primera es la que servir\u00e1 para realizar proyecciones, la segunda para cargar bases de excel a RStudio. Lo siguiente es setear el directorio y cargar la base de datos<\/p>\n<blockquote><p>setwd(\"C:\\\\documentos\\\\autoarima\")<\/p>\n<p>data&lt;- read.xlsx(\"base.xlsx\", detectDates=T)<\/p>\n<p>data[,2]&lt;- data[,2]\/1000<\/p><\/blockquote>\n<p style=\"text-align: justify\">Note que la funci\u00f3n read.xlsx es la que se utiliza para cargar bases de excel a R mediante la librer\u00eda openxlsx, mientras que la tercera linea indica que la segunda columna hay que dividirla para 1000, para\u00a0llevar la variable en estudio a millones USD.<\/p>\n<p style=\"text-align: justify\">Luego como se trata de una serie temporal, es necesario configurarla como tal, donde la serie tendr\u00e1 inicio 2004 mes 8 y la frecuencia es 12 puesto que es mensual.<\/p>\n<blockquote><p>tsdata&lt;-ts(data,start=c(2004,8),frequency=12)<\/p><\/blockquote>\n<p>Note que la linea\u00a0comienza con \"ts\", siendo ts time serie.<\/p>\n<p>Para realizar un auto pron\u00f3stico , basta con usar la funci\u00f3n auto.arima y guardar los resultados en un objeto con cualquier nombre y llamar los resultados con la funci\u00f3n summary. Puede observar que lo que se est\u00e1 utilizando es la columna 2 de la matriz tsdata (matriz que puede varias variables)<\/p>\n<blockquote><p>modelo&lt;-auto.arima(tsdata[,2])<\/p>\n<p>summary(modelo)<\/p><\/blockquote>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1481\" src=\"https:\/\/casaresfelixdotcom.files.wordpress.com\/2017\/05\/imagen11.png\" alt=\"Imagen1\" width=\"1361\" height=\"482\" \/><\/p>\n<p style=\"text-align: justify\">De la gr\u00e1fica anteriormente se puede observar que la funci\u00f3n auto.arima devuelve el posible mejor modelo de entre todos los modelos y realiza transformaciones de la variable de ser el caso que no sea estacionaria; adicionalmente, evalua presencia de estacionalidad en la serie y si existe este componente, construye modelos SARIMA.<\/p>\n<p style=\"text-align: justify\">Por otra parte, tambi\u00e9n devuelve los conocidos como criterios de predictibilidad, los cuales son utilizados para evaluar la capacidad predictiva de los modelos incluyendo los criterios de informaci\u00f3n AIC, AICC, BIC.<\/p>\n<p style=\"text-align: justify\">Veamos como luce el pron\u00f3stico de la variable en estudio (Cartera Comercial \u00a0de un Banco):<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1488\" src=\"https:\/\/casaresfelixdotcom.files.wordpress.com\/2017\/05\/imagen2.png\" alt=\"Imagen2\" width=\"1112\" height=\"771\" \/><\/p>\n<p>Estos son los comandos para construir este gr\u00e1fico b\u00e1sico:<\/p>\n<blockquote><p>pronostico&lt;- forecast(modelo,12,level=95)<\/p>\n<p>plot(pronostico, main=\"Pron\u00f3stico con auto.arima\",<br \/>\nsub=\"Fuente:SBS\\nElaboraci\u00f3n:@CasaresFelix\",<br \/>\nylab=\"Millones USD\")<\/p><\/blockquote>\n<p style=\"text-align: justify\">Note que la funci\u00f3n forecast llama al objeto con el nombre modelo (puede colocar cualquier nombre), y el n\u00famero de proyecciones fuera de la muestra; adicionalmente pude construir intervalos de confianza a cualquier nivel.<\/p>\n<p style=\"text-align: justify\">Finalmente, si quisiera obtener esos pron\u00f3sticos en una matriz, basta con realizar los siguiente:<\/p>\n<blockquote><p>matriz.pronosticos &lt;-data.frame(pronostico$mean,pronostico$lower,pronostico$upper)<\/p><\/blockquote>\n<p style=\"text-align: justify\">Donde se guardar\u00e1n los pron\u00f3sticos con los intervalos de confianza solicitados.<\/p>\n<p style=\"text-align: justify\">Indudablemente la funci\u00f3n auto.arima es m\u00e1s una ayuda que un instrumento final, debido a que es necesario que cada quien, eval\u00fae las series en estudio paso a paso, y en base a la experiencia y a lo que dicta la teor\u00eda econom\u00e9trica (estacionariedad, evaluaci\u00f3n del modelo, capacidad predictiva, stress testing, entre otros.), se elaboren los modelos.<\/p>\n<p style=\"text-align: justify\">De todas formas, la funci\u00f3n auto.arima no deja de ser \u00fatil y de f\u00e1cil\u00a0entendimiento.<\/p>\n<p style=\"text-align: justify\">Puedes seguir mis publicaciones v\u00eda:<\/p>\n<p><a href=\"https:\/\/twitter.com\/CasaresFelix\">Twitter<\/a><\/p>\n<p><a href=\"https:\/\/www.facebook.com\/CasaresFelix\">Facebook<\/a><\/p>\n<p><a href=\"http:\/\/blog.espol.edu.ec\/casaresfelix\">Twitter<\/a><\/p>\n<p><a href=\"http:\/\/casaresfelix.com\">Blog Personal<\/a><\/p>\n<p><a href=\"http:\/\/www.betametrica.ec\/\">Blog Acad\u00e9mico<\/a><\/p>\n<hr \/>\n<p>Nota: puedes solicitarme el script de RStudio para este ejemplo mediante cualquier\u00a0de las v\u00eda de contacto anteriormente mencionadas o por correo.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Los caminos r\u00e1pidos no me gustan, sin embargo, esta opci\u00f3n puede por lo menos dar luces<\/p>\n","protected":false},"author":10866,"featured_media":144,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[1418609,1418608,34936,1418606,20316],"class_list":["post-143","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","tag-cursos-de-econometria-ecuador","tag-cursos-de-econometria-guayaquil","tag-econometria","tag-modelo-econometrico","tag-series-temporales"],"_links":{"self":[{"href":"https:\/\/blog.espol.edu.ec\/casaresfelix\/wp-json\/wp\/v2\/posts\/143","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.espol.edu.ec\/casaresfelix\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.espol.edu.ec\/casaresfelix\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/casaresfelix\/wp-json\/wp\/v2\/users\/10866"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/casaresfelix\/wp-json\/wp\/v2\/comments?post=143"}],"version-history":[{"count":5,"href":"https:\/\/blog.espol.edu.ec\/casaresfelix\/wp-json\/wp\/v2\/posts\/143\/revisions"}],"predecessor-version":[{"id":150,"href":"https:\/\/blog.espol.edu.ec\/casaresfelix\/wp-json\/wp\/v2\/posts\/143\/revisions\/150"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/casaresfelix\/wp-json\/wp\/v2\/media\/144"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/casaresfelix\/wp-json\/wp\/v2\/media?parent=143"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/casaresfelix\/wp-json\/wp\/v2\/categories?post=143"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/casaresfelix\/wp-json\/wp\/v2\/tags?post=143"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}