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

Actualizado por ultima vez el 7 de mayo de 2021, por .

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/

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!