Skip to main content

Modelos para el análisis de series de tiempo y proyecciones.

Project description

Paquete Series De Tiempo

Versión 1.0.1

Autor: Pablo Atarama https://pabloatarama.com/

© Derechos Reservados 2021

Importar libreria

Para importar la librería utilizamos:

import SeriesDeTiempo as st

Pasos para utilizar la librería:

  1. Crear un objeto del tipo Serie.
  2. Aplicar un modelo a un objeto del tipo Serie que nos devolverá un objeto del tipo Modelo.

Crear una serie

Para crear un objeto de tipo Serie (Serie de tiempo) utilizamos:

serie = st.Serie(DataFrame, columna="")

Donde DataFrame es el DataFrame de la librería pandas donde se extraerá la data y columna la columna del DataFrame específica que se considerará como yt.

Aplicar un modelo

Para usar un modelo se aplicara la respectiva función del modelo sobre el objeto de tipo Serie. Esto devolverá un objeto del tipo de modelo especificado. Cada función utiliza diferentes parámetros.

Modelos soportados

Considerando que se creó un objeto de tipo Serie llamado serie:

Naive

serieConModelo = serie.naive()

Media movil simple

serieConModelo = serie.mediaMovilSimple(longitud=3, desfasada=False)
  • longitud: longitud de la media móvil simple, por defecto es 3.
  • desfasada: Si es desfasada o no (True o False), por defecto es False.

Media movil doble

serieConModelo = serie.mediaMovilDoble(longitud=3, desfasada=False)
  • longitud: longitud de ambas medias móviles, por defecto es 3.
  • desfasada: Si es desfasada o no (True o False).

Media movil ponderada

serieConModelo = serie.mediaMovilPonderada(longitud, ponderaciones)
  • ponderaciones: lista con alfas a ponderar ej: [alfa1, alfa2, alfa3] donde alfa1 > alfa2 > alfa3, etc.

Suavización exponencial simple

serieConModelo = serie.suavizacionExponencialSimple(alfa=0.5)
  • alfa: parámetro alfa del modelo, por defecto es 0.5.

Media movil doble con tendencia

serieConModelo = serie.mediaMovilDobleConTendencia(longitud=3)
  • longitud: longitud de ambas medias moviles, por defecto es 3.

Brown o suavizacion exponencial doble

serieNaive = serie.brown(alfa=0.5, M1=None, M2=None)
  • alfa: parámetro alfa del modelo, por defecto es 0.5.
  • M1: Valor inicial de Mat, por defecto es yt para t = 1.
  • M2: Valor inicial de Maat, por defecto es yt para t = 1.

Holt

serieConModelo = serie.holt(alfa=0.5, beta=0.5, M=None, T=0)
  • alfa: parámetro alfa del modelo, por defecto es 0.5.
  • beta: parámetro beta del modelo, por defecto es 0.5.
  • M: Valor inicial de Mt, por defecto es yt para t = 1.
  • T: Valor inicial de Tt, por defecto es 0.

Holt y Winters

serieConModelo = serie.holtYWinters(metodo, alfa=0.5, beta=0.5, gamma=0.5, L=4)
  • metodo: El metodo a utilizar "aditivo" para el metodo aditivo y "multiplicativo" para el metodo multiplicativo.
  • alfa: parámetro alfa del modelo, por defecto es 0.5.
  • beta: parámetro beta del modelo, por defecto es 0.5.
  • gamma: parámetro gamma del modelo, por defecto es 0.5.
  • L: Longitud de la estacionalidad, por defecto es 4.

Descomposición

serieConModelo = serie.descomposicion(metodo, L=12)
  • metodo: El metodo a utilizar "aditivo" para el metodo aditivo y "multiplicativo" para el metodo multiplicativo.
  • L: Longitud de la estacionalidad, por defecto es 12.

Graficar series y modelos

Para graficar cualquier tipo de objeto de serie (sea del tipo Serie o del tipo Modelo) se utiliza la función graficar()

serie.graficar(titulo="", xlabel="", ylabel="")
  • titulo: Título del gráfico.
  • xlabel: Título del eje x.
  • ylabel: Título del eje y.

Diagramas de cajas

Se puede realizar digramas de cajas a los objetos de tipo Serie a lo largo del tiempo agrupando por cilos mediante:

serie.cajasEstacionalidad(L=4, comienzo=1, titulo="", xlabel="", ylabel="", grilla=True)
  • ciclo: Ciclos en que se agrupará los datos, por defecto es 4.
  • titulo: Título de la gráfica.
  • xlabel: Título del eje x.
  • ylabel: Título del eje y.
  • grilla: Grilla de gráfica (True o False), por defecto True.

También se puede realizar diagramas de cajas sobre la estacionalidad mediante:

serie.cajas(ciclo=4, comienzo=1, titulo="", xlabel="", ylabel="", grilla=True)
  • ciclo: Ciclos en que se agrupará los datos, por defecto es 4.
  • titulo: Título de la gráfica.
  • xlabel: Título del eje x.
  • ylabel: Título del eje y.
  • grilla: Grilla de gráfica (True o False), por defecto True.

Residuales

También es posible graficar el residual de los objetos de los modelos mediante:

serieConModelo.residual.graficar(titulo="", xlabel="", ylabel="")

Gráficas extras del modelo de descomposición

Los modelos de descomposición tienen la peculiaridad de poseer las propiedades: tendencia y estacionalidad siendo estas también graficables mediante graficar()

serieDescomposicion.tendencia.graficar(titulo="", xlabel="", ylabel="")
serieDescomposicion.estacionalidad.graficar(titulo="", xlabel="", ylabel="")

En caso se requiera realizar una gráfica de otro tipo, todos los objetos de la librería contienen un DataFrame de pandas en su propiedad data:

serie.data
serieConModelo.data

Errores de los Modelos

Para consultar los errores de la aplicación de un determinado modelo que se encuentre en un objeto de ejemplo serieConModelo basaría con consultar su propiedad "errores":

serieConModelo.errores

Podemos extraer el valor específico de algún error consultando las propiedades:

serieConModelo.errores.mse
serieConModelo.errores.rmse
serieConModelo.errores.u_theil

Pronósticos

Para realizar un pronóstico se deberá llamar a la función pronosticar() y esta devolverá una copia del objeto del modelo pero con el pronóstico pedido agregado.

serieConPronostico = serieConModelo.pronosticar(self, p=1, t=None)
  • p: cantidad de periodos a pronosticar, por defecto es 1.
  • t: valor de t desde donde comenzará el pronóstico, por defecto comienza luego del último dato.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

series-de-tiempo-pabloatarama-2021.12.1.tar.gz (11.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file series-de-tiempo-pabloatarama-2021.12.1.tar.gz.

File metadata

  • Download URL: series-de-tiempo-pabloatarama-2021.12.1.tar.gz
  • Upload date:
  • Size: 11.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.6.1 requests/2.24.0 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.8.5

File hashes

Hashes for series-de-tiempo-pabloatarama-2021.12.1.tar.gz
Algorithm Hash digest
SHA256 ed3d21177e75f0b30ab3167da5f7444747c80eac93e13665d44ce7e1e3491f6b
MD5 7da9d8ad5586f97b2d5b4259e1ef3ede
BLAKE2b-256 879ee1f79eae7bf2b6bf9b59ee98a9c47b04ca9b500cb352071fc1c540b2c6a6

See more details on using hashes here.

File details

Details for the file series_de_tiempo_pabloatarama-2021.12.1-py3-none-any.whl.

File metadata

  • Download URL: series_de_tiempo_pabloatarama-2021.12.1-py3-none-any.whl
  • Upload date:
  • Size: 16.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.6.1 requests/2.24.0 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.8.5

File hashes

Hashes for series_de_tiempo_pabloatarama-2021.12.1-py3-none-any.whl
Algorithm Hash digest
SHA256 541133741c603c604a68727f89696aa3ae32c6e8b61477b95a5c268e89c7a5b2
MD5 f3ef6aa2bf52c4842acf18aa09da9344
BLAKE2b-256 12495cdd48d45cc0f241993dbbba28b396439603a69ef319d124eeb937ef7fec

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page