Cómo calcular una media móvil exponencial en R

Actualizado el 17 de julio de 2024, por Luis Benites.

En el análisis de series de tiempo, un promedio móvil es simplemente el valor promedio de un cierto número de períodos anteriores.

Una media móvil exponencial es un tipo de media móvil que da más peso a las observaciones recientes, lo que significa que puede capturar las tendencias recientes más rápidamente.

Este tutorial explica cómo calcular una media móvil exponencial en R.

Ejemplo: media móvil exponencial en R

Supongamos que tenemos el siguiente marco de datos en R:

#create marco de datos
df <- data.frame (período = 1:10,
                 ventas = c (25, 20, 14, 16, 27, 20, 12, 15, 14, 19))

#ver marco de datos
df

   ventas del periodo
1 1 25
2 2 20
3 3 14
4 4 16
5 5 27
6 6 20
7 7 12
8 8 15
9 9 14
10 10 19

Podemos usar la función movavg () del paquete pracma para calcular el promedio móvil ponderado exponencialmente para un cierto número de períodos anteriores.

Esta función utiliza la siguiente sintaxis:

movavg (x, n, type = c («s», «t», «w», «m», «e», «r»))

dónde:

  • x: serie temporal como vector numérico
  • n: número de períodos anteriores que se utilizarán para el promedio
  • type: Tipo de media móvil a calcular. Usaremos «e» para la media móvil ponderada exponencial.

Por ejemplo, a continuación se explica cómo calcular la media móvil ponderada exponencialmente utilizando los cuatro períodos anteriores:

biblioteca (pracma)

#cree una nueva columna para contener el promedio móvil ponderado exponencialmente de 4 días 
df $ EWM_4day <- movavg (df ​​$ sales, n = 4, type = ' e ')

#view DataFrame 
df

        período de ventas 4dayEWM
0 1 25 25.000000
1 2 20 23.000000
2 3 14 19.400000
3 4 16 18.040000
4 5 27 21.624000
5 6 20 20,974400
6 7 12 17.384640
7 8 15 16.430784
8 9 14 15.458470
9 10 19 16.875082

También podemos usar la biblioteca de visualización ggplot2 para visualizar las ventas en comparación con el promedio móvil ponderado exponencialmente de 4 días:

biblioteca (ggplot2)
 biblioteca (reshape2)

# fundir datos en formato para trazar fácilmente
 df <- melt (df, id.vars = ' period ', variable.name = ' series ')

#plot ventas frente a promedio móvil ponderado exponencialmente de 4 días
 ggplot (df, aes (período, valor)) +
  geom_line ( aes (color = serie))

Media móvil ponderada exponencialmente en R

La línea roja muestra las ventas durante cada período y la línea azul muestra el promedio móvil ponderado exponencialmente.

Recursos adicionales

Cómo trazar múltiples columnas en R
Cómo promediar entre columnas en R
Cómo calcular la media por grupo en R

  • https://r-project.org
  • https://www.python.org/
  • https://www.stata.com/

Redactor del artículo

  • Luis Benites
    Director de Statologos.com

    Tengo una Maestría en Ciencias en Estadística Aplicada y he trabajado en algoritmos de aprendizaje automático para empresas profesionales tanto en el sector de la salud como en el comercio minorista.

    Ver todas las entradas

¿Te hemos ayudado?

Ayudanos ahora tú, dejanos un comentario de agradecimiento, nos ayuda a motivarnos y si te es viable puedes hacer una donación:

La ayuda no cuesta nada

Por otro lado te rogamos que compartas nuestro sitio con tus amigos, compañeros de clase y colegas, la educación de calidad y gratuita debe ser difundida, recuerdalo:

Deja un comentario

Muchas pruebas estadísticas suponen que las observaciones son independientes. Esto significa que no hay dos observaciones en un conjunto de…
statologos comunidad-2

Compartimos información EXCLUSIVA y GRATUITA solo para suscriptores (cursos privados, programas, consejos y mucho más)

You have Successfully Subscribed!