es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

SAS: Representación gráfica de datos pronosticados con todo el conjunto de datos.

He utilizado proc ARIMA para obtener pronósticos para el próximo año de mi conjunto de datos y tengo un conjunto de datos de salida con estos valores pronosticados.

Tomé el logaritmo de los datos originales para los pronósticos, por lo que necesito obtener los valores verdaderos tomando el exponencial de los valores pronosticados.

Quiero tener un gráfico que muestre cómo se han pronosticado los datos y cómo se ve en comparación con los datos originales, pero no tengo idea de cómo hacerlo.

Código:

  * Abre el archivo;
  data intel_stock;
  infile 'path' dlm=',' firstobs=2;
  input Date anydtdte10. Volume;
  format Date date10.;
  Timeref=_n_;
  logvolume = log(Volume);
  run;

  * Grafica los datos;
  proc sgplot data=intel_stock;
  series x=Timeref y=Volume/markers;
  xaxis values=(1 to 5000 by 1);
  run;

  * La variación parece aumentar mucho con el tiempo, por lo que se toma el logaritmo del volumen;
  proc sgplot data=intel_stock;
  series x=Timeref y=logvolume/markers;
  xaxis values=(1 to 5000 by 1);
  run;

  * Se selecciona un modelo ARIMA;
  proc arima data=intel_stock;
  identify var= logvolume(1); * se tomó la primera diferencia para hacer que los datos fueran estacionarios;
  estimate p=2 q=2;
  forecast lead=12 interval=month id=Date out=forecast;
  run;

Se utilizó un modelo ARIMA(2,1,2).

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para obtener un gráfico que muestre los valores pronosticados en comparación con los datos originales, podemos modificar el código anterior agregando un nuevo gráfico de series para los valores pronosticados en la escala original. Primero, creamos una nueva variable llamada “forecasted_volume” tomando el exponencial de los valores de registro pronosticados. Luego, usamos la procedimiento SGPLOT nuevamente para agregar un nuevo gráfico de series para el volumen pronosticado, junto con el gráfico de volumen original. El código actualizado se vería algo así:

    * Obtener los valores pronosticados en la escala original;
    data forecasted;
    set forecast;
    forecasted_volume = exp(logvolume_frcst + 0.5 * stderr_frcst**2);
    run;
    
    * Graficar los datos originales y pronosticados juntos;
    proc sgplot data=intel_stock;
    series x=Date y=Volume / name='Volumen Original';
    series x=Date y=forecasted_volume / name='Volumen Pronosticado';
    xaxis label='Fecha';
    yaxis label='Volumen';
    run;
    

    En este código, primero creamos un nuevo conjunto de datos llamado “forecasted”, que contiene la variable original de fecha, junto con el volumen pronosticado en la escala original. Usamos la función EXP() para obtener los verdaderos valores pronosticados tomando el exponencial del volumen de registro pronosticado. También usamos la declaración ESTIMATE en proc ARIMA para obtener la desviación estándar de los valores pronosticados y usarla para calcular los límites superiores e inferiores de los valores pronosticados.

    Luego agregamos dos gráficos de series en el procedimiento SGPLOT: uno para el volumen original y otro para el volumen pronosticado. Usamos la opción NAME= para asignar nombres a cada gráfico, que se usarán más tarde para la leyenda. También agregamos etiquetas de ejes para mayor claridad.

    El gráfico resultante mostrará los datos de volumen originales como una línea sólida y el volumen pronosticado como una línea discontinua. Los límites superiores e inferiores de los valores pronosticados también se pueden agregar al gráfico usando las opciones upper y lower en la declaración series. Finalmente, podemos agregar una leyenda al gráfico usando la declaración KEYLEGEND en el procedimiento SGPLOT.

    Tenga en cuenta que esta es solo una forma de graficar los datos originales y pronosticados juntos, y hay muchas otras formas de hacerlo dependiendo de sus preferencias y de las especificidades de sus datos.

Comments are closed.