One of the latest products that SAP has incorporated in its Business Intelligence Suite is SAP Predictive Analysis. Essentially, this product shares its main interface with SAP Lumira (formerly SAP Visual Intelligence) but the added value comes from the Predict workspace where you can find a series of algorithms to build predictive models. With these models you can display projected data behavior and trends in your visualizations, discover hidden insights and relationships in your data, among lots of other possibilities. Obviously, this proves to be very useful to make decisions based on the possible outcome of future events, or build intelligent strategies based on insights that otherwise are not clear to see. It doesn’t matter what industry a company belongs to, almost every finance department plans a budget for a fiscal year, records the actual values, and as the year progresses builds a forecast to see how the rest of the months will look like. In this article this is exactly what I will show, a very simple model to do a quick forecast based on revenue obtained in the last 5 years. The idea is that you understand the steps involved so you can build a model like this with any data series you like. At any moment you can click on the images to enlarge them.
Importing the data
El análisis predictivo admite varias fuentes de datos, en este caso utilicé un archivo CSV como se muestra a continuación. ¡También puede importar datos de archivos de Excel, Freehand SQL, Universes de BOXI 3.1 y repositorios BI4, y también traer datos de SAP HANA!
After importing the file, the tool heads to the Prepare workspace where you can treat the data before applying the algorithms. Here you can filter data, order data or even merge with other data sets. However, for the sake of the simplicity of this exercise I will leave it as it is and go directly to the Predict workspace.
Build the Predictive model
In the Predict workspace, the upper sections lets you browse the different Algorithms available, use Data Preparation objects to perform additional data manipulation before or after executing the algorithms, and finally in the Data Writers tab you can write the results in database tables with JDBC drivers or in CSV files, as I will do in this case. Note that the R statistical algorithms are not enabled by default, to do so follow the steps in this article and you will have them ready in a moment.
Como puede ver, mi modelo consiste en la fuente de datos CSV que definí anteriormente, un algoritmo de serie temporal para hacer la "magia" predictiva y un escritor de datos CSV donde colocar los resultados. Los siguientes pasos se centrarán exclusivamente en el algoritmo predictivo y las capacidades de visualización nativas de la herramienta.
Configure and Execute
Para este ejercicio, seleccioné el algoritmo R Suavizado exponencial triple. En términos cortos, este algoritmo es una técnica de suavizado exponencial que se puede aplicar a una serie de datos de tiempo que tiene en cuenta los cambios estacionales, así como las tendencias para construir pronósticos. También tiene algoritmos más simples como el R Suavizado exponencial doble R que considera la serie de datos y sus tendencias, así como el algoritmo R Suavizado exponencial simple R que genera resultados basados solo en la serie de datos. El seleccionado es el más preciso para los datos de muestra que tengo en este ejercicio, ya que:
It is time series data because it has revenue per month for the last 5 years
It needs to consider seasonal changes since historically the company has obtained higher revenue in December timeframe
Además, las tendencias son importantes ya que hay períodos del año en los que los ingresos aumentan o disminuyen
Double clicking on the algorithm opens a window where you can configure its parameters.
En la sección Parámetros primarios los configuré de la siguiente manera:
El modo de salida es un pronóstico, en otros casos puede desearse una tendencia
La columna dependiente es Ingresos ya que esta es la variable que quiero predecir
Período, es la división de tiempo que deseo (meses en este caso)
Año de inicio, a partir de cuándo debe comenzar el análisis
Start Period, the month of the Starting Year to begin with. In this example Fiscal Years begin in April so the starting period is 4
Los períodos para predecir son la cantidad de meses que quiero proyectar. Como mi año fiscal actual solo tiene 2 meses cerrados, quiero predecir los 10 meses restantes
En "Ingresar nombres para columnas recién agregadas", simplemente etiqueté las columnas de salida, es decir, Ingresos de pronóstico, años y meses. La parte difícil está en la sección "Propiedades avanzadas":
El parámetro Alfa se refiere a un valor de peso que afecta la serie de datos.
El parámetro Beta se refiere a un valor de peso que afecta las tendencias en la serie de datos.
El parámetro Gamma se refiere a un valor de peso que afecta la estacionalidad de los datos.
No. Periodic Observations means that output will be available once there are at least 2 periods (years) available. Therefore, we will start seeing predicted values from the second year onwards.
Visualiza los resultados
Después de configurar el algoritmo, puede pasar el mouse sobre él y hacer clic en el botón "Ejecutar hasta aquí" para ejecutar el modelo. Le notificará una vez que finalice la ejecución y le pedirá que vaya a la vista de Resultados donde podemos usar las capacidades de visualización de SAP Predictive Analysis:
Cambié del panel Cuadrícula al panel Visualizar, donde los ingresos pronosticados y los ingresos originales se colocan en el eje Y, y el año y el mes en el eje X con un gráfico de líneas para que pueda ver la imagen a continuación. ¡No te pierdas el botón Compartir para publicar tus visualizaciones!
Entre las primeras cosas que notamos es que no tenemos valores pronosticados para el primer año, así como solo se muestran valores pronosticados para el resto del año fiscal actual, ambas situaciones tienen sentido absoluto. Además, podemos ver que en algunos períodos los valores pronosticados están bastante lejos de los valores reales, así como en la temporada alta que es diciembre (flechas rojas). Esto se debe al peso de los parámetros Alfa / Beta / Gamma. Cada serie de datos tiene características diferentes, por lo que si ajustamos el peso de la serie de datos, las tendencias y la estacionalidad, podríamos obtener resultados más precisos. En este caso, decido cambiar el peso de los valores de la serie de datos (el parámetro alfa aumentó de 0.3 a 0.7); modificar las tendencias durante el año (el parámetro Beta aumentó de 0.1 a 0.3); pero la estacionalidad se mantendrá sin cambios ya que creo que el patrón general es lo suficientemente bueno. Los cambios se realizan en la vista del Diseñador en la Configuración del algoritmo como lo hice antes.
Después de ejecutar nuevamente, puedes ver cómo los huecos son considerablemente más pequeños. Sin embargo, todavía no es perfecto ... Por ejemplo, dado que aumenté el peso en las tendencias, el valor pronosticado para diciembre 2011 fue bastante lejos del real porque los meses anteriores tuvieron un crecimiento significativo, por lo que esperaba un mayor valor como resultado . Podría seguir ajustando cada parámetro del algoritmo para obtener la mayor precisión posible, pero por ahora se entiende lo que deberíamos tratar de lograr.
In summary, with a simple 30-minute exercise like this you can build a forecast based on time series data, understand the basic notions and layout of Predictive Analysis, and hopefully, many bright ideas will come to mind to use this tool in your work. Finally, you have to consider that Predictive Analysis is still in its early stages, so expect some bugs in the tool and the display (as you may have noticed in some screenshots). Nonetheless, the potential this tool has is interesting enough to not take your eyes off of it! If you have any questions or anything to add to help improve this post, please feel free to leave your comments.