Está en la página 1de 7

Cómo Suavizar Datos,

Utilizando la Función
TENDENCIA
Debido a que ahora podemos pasar solo los datos que
queremos a cualquier función, Excel nos ha brindado la
capacidad de suavizar los datos para los gráficos mediante la
función TENDENCIA.
Por
 Charley Kyd
209

Hace años, leí que el profesor William S. Cleveland había sugerido que los datos podían
suavizarse calculando una línea de tendencia centrada a través de datos adyacentes, un
método que quise probar de inmediato.

En ese entonces, desafortunadamente, aprendí rápidamente que la función TENDENCIA


de Excel no ofrece una forma práctica para que le digamos que ignore ciertos
datos. Específicamente, ¡TENDENCIA devuelve el #VALOR! error si se incluyen cadenas
nulas o valores FALSO en uno de sus argumentos.

Y, por lo tanto, no había forma práctica de obligar a la función TENDENCIA a ignorar los
períodos que debían excluirse de su cálculo.

Así que dejé la idea a un lado hasta que Excel pudiera solucionar ese problema.

Recientemente me di cuenta de que ahora tenemos el poder de hacer lo que quería hace
años. Específicamente, Excel 365 y 2021 ahora tienen una forma para que TREND, y
cualquier otra función, ignore los datos que queremos que ignore. Y así fue como pude
crear el siguiente gráfico.

( Puede descargar el libro de trabajo de ejemplo aquí ) .


Aquí, la línea azul gruesa es el precio diario promedio de la gasolina durante los últimos
siete años o más. Y la delgada línea naranja es la versión suavizada de esa línea, utilizando
una tendencia móvil centrada de 31 días.

Como puede ver, la línea suavizada sigue muy de cerca la línea original. Observe en
particular que los puntos de inflexión de las líneas original y suavizada son más o menos
los mismos.

Y si nos vamos al extremo con una tendencia de dos años, la línea naranja muestra una
tendencia amplia que parece muy razonable:
Cómo calcular la tendencia móvil centrada
Comencé con una tabla de datos que descargué de la
Base de datos económica de la Reserva Federal
( FRED ), que es la mayor fuente de datos económicos
gratuitos del mundo.

Aquí, el DataID es el campo clave para los precios de


la gasolina que decidí trazar. Debido a que usé Power
Query para descargar los datos, pude filtrar
fácilmente las filas de los fines de semana y días
festivos, que no tenían datos. (Esta es la razón por la
que los números de las tendencias de 31 y 731 días
en los gráficos se refieren a la cantidad de días con datos, no a la cantidad de días
calendario).

Luego configuré la tabla


de preparación que se
muestra aquí:

Debido a que las fórmulas


en el resto de la tabla son
bastante ordinarias, y
debido a que usted
mismo puede descargar el libro de trabajo de ejemplo, me concentraré en las fórmulas en
la columna J, que calculan la tendencia móvil centrada.

Las fórmulas de la columna J se basan en dos funciones compatibles con Excel 365 y 2021,
y una función que ha estado en Excel desde el principio:

LET( nombre1, nombre_valor1, [nombre2], [nombre_valor2], […],[…], resultado)

La función LET nos permite asignar nombres a resultados calculados y constantes dentro


de la función, y luego usar esos valores nombrados más a la derecha. Y finalmente, para
el último argumento, podemos devolver un valor previamente nombrado o un cálculo
final.

FILTRO (start_array, include_array, [if_empty])

La función FILTER se basa en start_array y include_array. start_array es la matriz que


desea filtrar. Puede tener cualquier número de columnas. include_array es una matriz de
una sola columna. No puede contener valores de texto y debe tener el mismo número de
filas que start_array. Y luego FILTER devuelve una nueva matriz para todas las filas donde
include_array no contenía cero, FALSO o una celda vacía.

FILTER también funciona con columnas de valores, utilizando una lógica similar.

TENDENCIA( conocido_ys, [conocido_xs], [nuevo_xs], [const] )

TENDENCIA, que ha estado en Excel desde siempre, utiliza el método de mínimos


cuadrados para encontrar la tendencia a través del arreglo conocido_ys para cada punto
en el arreglo conocido_xs . Opcionalmente, devuelve el valor de esa tendencia para el
valor new_xs .

Aquí está la fórmula que calcula el valor suavizado para la celda J3:

J3:  =LET(
Incluir, (Fecha>=$F3-Días de
compensación)
* Fecha<=$F3+Días de
compensación),
X, FILTRO(Fecha, Incluir),
Y, FILTRO(Valor, Incluir),
Resultado, TENDENCIA(S, X,
$F3), Resultado)
Aquí, envolví los argumentos en la fórmula. Podría hacer lo mismo en su hoja de trabajo,
o podría configurar una fórmula larga.

Para empezar, la función LET define el nombre Incluir . La fórmula Incluir prueba si cada
fecha en la columna Fecha está dentro de un rango definido por el número de OffsetDays
especificado por el usuario. Entonces, para el primer gráfico de esta página, el valor de
OffsetDays fue 15 y para el segundo gráfico, el valor de OffsetDays fue 365.

Dado que VERDADERO * VERDADERO es igual a 1 y VERDADERO * FALSO es igual a 0, la


matriz Incluir contiene el valor 1 para todas las filas donde los valores de la columna
Fecha están dentro del rango deseado y 0 en caso contrario.

A continuación, la función LET define la matriz X para que sea una matriz de una columna
para cada fila en la columna Fecha, donde Incluir tenía un valor distinto de cero. Entonces
LET define la matriz Y de manera similar.

Finalmente, LET define el valor del resultado como el número de la fecha actual de la


matriz de valores en la línea de tendencia. Y luego LET devuelve ese resultado. Es el valor
"centrado" porque el tamaño de la matriz Incluir se define sumando y restando el mismo
número de filas.

Sin embargo, el primer y último valor de la columna Val2 no están "centrados". En la tabla
anterior, por ejemplo, debido a que Offset era igual a 365, los primeros 365 valores de la
tabla NO estaban centrados. Tampoco estaban los últimos 365 valores de la tabla.

Para ver por qué esos valores no estaban centrados, piense de nuevo en la celda
J3. Calcula una línea de tendencia que comienza con la celda F3 y termina 365 filas
después, y luego la celda J3 devuelve el primer valor de esa línea de tendencia. La celda J3
no puede devolver el valor de tendencia centrado porque la tabla no contiene esos 365
valores históricos.

De manera similar, en la última celda de la columna Val2, el cálculo de TENDENCIA no


puede predecir el futuro. Y por lo tanto, su valor suavizado proviene de una línea de
tendencia que contiene solo datos históricos.

Aun así, cuando miras este gráfico de nuevo...


…y en este gráfico…

…probablemente no te habrías dado cuenta de ese problema. Si la precisión de los


extremos de la línea suavizada es realmente importante, no podrá mostrar los datos
suavizados para el último número de filas especificado por el valor de Desplazamiento. Y
para que tenga suficiente historial para el número inicial de filas, deberá configurar su
tabla de etapas de manera diferente.
Sin embargo, por lo general, esa inexactitud en el gráfico no debería ser un problema.

Finalmente, te puede interesar Cómo suavizar las tendencias mensuales con promedios


móviles centrados . Todavía no he comparado los métodos para suavizar las líneas, pero
planeo hacerlo en el futuro.

También podría gustarte