Resumen

Introducción

La empresa Apple ha tenido una presencia muy marcada en el mundo tecnológico desde hace varias décadas. Desde que Steve Jobs y Steve Wozniak la fundaron en 1976, la compañía empezó a destacarse en el mundo tecnológico gracias a ideas que, en su momento, eran bastante diferentes a lo que existía. Con los años, Apple fue creando un estilo propio muy reconocible, apoyado en la innovación, el diseño y la funcionalidad. Todo esto la llevó a convertirse en una marca con una presencia muy fuerte y con una base de usuarios que sigue creciendo.

Todo ese impacto también se refleja en la forma en que se comporta su acción en la bolsa. En los últimos años, el precio ha mostrado una tendencia creciente, con algunas caídas normales del mercado, pero manteniendo en general un ritmo que demuestra la confianza que tienen los consumidores y los inversionistas en la compañía. La acción reacciona a muchos factores: nuevos lanzamientos, resultados financieros, cambios económicos globales e incluso la manera en que el público recibe cada dispositivo.

Por estas razones se decidió estudiar la acción de Apple como una serie de tiempo, con la intención de analizar su comportamiento a lo largo de los años 2020–2025 y entender con mayor claridad las fluctuaciones que tuvo en ese periodo. Esto permite ver con más claridad qué momentos fueron decisivos, ya sea por subidas o caídas, y conectar esos movimientos con situaciones reales que pudieron afectar el precio. Además, analizar la serie de tiempo también sirve para hacer estimaciones sobre cómo podría comportarse la acción más adelante, lo cual ayuda a comprender la evolución de Apple desde la mirada del mercado y cómo van cambiando las expectativas de la gente.

Metodología

¿Qué es una serie de tiempo?

Una serie de tiempo es una forma de organizar y mostrar datos que van cambiando a lo largo del tiempo. En el eje horizontal siempre aparece el tiempo, y en el vertical se coloca la variable que se quiere analizar, como precios, número de quejas, ventas, accidentes u otra medida que se pueda cuantificar.

Este tipo de representación ayuda a ver cosas que en una tabla pasan desapercibidas, como tendencias, subidas o bajones fuertes, repeticiones, estacionalidad o valores que se salen de lo normal. Básicamente, con una sola gráfica uno puede entender cómo se ha movido la variable con el paso del tiempo.

Por eso las series de tiempo son tan comunes en el área financiera: facilitan identificar patrones, momentos llamativos y comportamientos que podrían servir para estudiar o incluso predecir qué podría pasar más adelante, sin tener que revisar cada observación por separado.

¿Qué es ARIMA?

Según la explicación de IBM, ARIMA es un modelo que se usa para analizar series de tiempo y hacer estimaciones sobre valores futuros a partir del comportamiento pasado. El modelo combina varias partes: una que usa valores anteriores de la serie, otra que implica diferenciar los datos para estabilizarlos, y una tercera que trabaja con los errores o “ruido” que quedan en el modelo. (Referencia: IBM, “ARIMA Model”, Think Blog.)

Después de leer la definición, la idea general es que ARIMA funciona usando información del pasado para tratar de identificar patrones y, con eso, hacer una proyección. Pero antes de aplicarlo toca revisar si la serie es estacionaria o no; si no lo es, se diferencia una o varias veces para que sea más fácil de trabajar.

El modelo se escribe como ARIMA(p, d, q):

  • p: indica cuántos valores pasados se usan directamente para predecir el valor actual.

  • d: es cuántas veces hubo que diferenciar la serie para quitar la tendencia.

  • q: representa cuántos errores pasados usa el modelo para corregir y ajustar la predicción.

En pocas palabras, ARIMA mezcla datos anteriores, ajustes para estabilizar la serie y correcciones basadas en errores previos para intentar anticipar cómo podría moverse la variable en el futuro.

Descripción de la serie temporal

Contexto historico

Según Encyclopaedia Britannica,la empresa Apple, fundada en 1976 por Steve Jobs y Steve Wozniak, empezó como un producto diseñado en el garaje de los Jobs, diseñando asi una placa base desnuda llamada Apple 1, este primer éxito fue clave para la continuación de las operaciones de Apple lanzando asi el Apple 2, la primera microcomputadora ampliamente distribuida. Con los años, la compañía dejó de enfocarse solo en computadores y empezó a lanzar nuevos productos innovadores como el iPod, el iPhone y el iPad. Estos dispositivos marcaron una generación, creando una base de clientes fieles y atrayendo a nuevos con cada nuevo modelo. Con el paso del tiempo, cada modelo anunciado genera un impacto (ya sea positivo o negativo) en las acciones de Apple, ya sea por su originalidad, mejor rendimiento o por productos no muy bien recibidos por el publico, Apple ha dado de que hablar en los últimos años.

Un momento importante en esta historia fue el año 2020, cuando Apple presentó su primer procesador propio, el M1. Este chip reemplazó a los procesadores de Intel en los Mac y destacó por su buen rendimiento y su eficiencia. Ese mismo año se hicieron actualizaciones en varias líneas de productos, lo que fortaleció la posición de la empresa. Todo esto se reflejó en sus cifras, y en 2022 Apple alcanzó una valoración de 3 billones de dólares durante operaciones intradía.

Fluctuaciones

Entre 2020 y 2025, las acciones de Apple tuvieron varios momentos de subida y caída. Esto hace que sea normal preguntarse por qué se presentan esos movimientos y qué los pudo haber causado. Por eso, antes de analizar a profundidad los datos, es útil revisar la gráfica y ubicar los picos más importantes, para luego buscar qué hechos o situaciones pudieron influir en ellos.

Estadísticas descriptivas

tabla_stats = data.frame(
  Estadística = c("Media", "Desviación estándar", "Mínimo", "Máximo"),
  Valor = c(mean(ventana), sd(ventana), min(ventana), max(ventana)))

tabla_stats %>%
  kable("html", caption = "Estadísticas descriptivas de la serie AAPL") %>%
  kable_styling(full_width = FALSE, bootstrap_options = c("striped", "hover", "condensed"))
Estadísticas descriptivas de la serie AAPL
Estadística Valor
Media 165.36795
Desviación estándar 47.40513
Mínimo 56.09250
Máximo 277.54999

Modelo ARIMA

Estacionaria

normal

ggAcf(ventana)

diferenciada

miserie<-diff(ventana) %>% na.omit()
ggAcf(miserie)

modeloautoarima <- auto.arima(ventana)

Identificación del modelo

Selección del modelo

selección de p y q

grid.arrange(ggAcf(miserie),
             ggPacf(miserie),
             nrow=1)

modelo escogido

modelo  <- Arima(ventana, order = c(3,1,3))

checkresiduals(modelo)

## 
##  Ljung-Box test
## 
## data:  Residuals from ARIMA(3,1,3)
## Q* = 7.3404, df = 4, p-value = 0.119
## 
## Model df: 6.   Total lags used: 10

comparacion

acc_m <- as.data.table(accuracy(modelo))
acc_auto <- as.data.table(accuracy(modeloautoarima))

acc_m[, Modelo := "ARIMA manual"]
acc_auto[, Modelo := "Auto ARIMA"]


tabla_accuracy <- rbind(acc_m, acc_auto, fill = TRUE)

setcolorder(tabla_accuracy, c("Modelo", setdiff(names(tabla_accuracy), "Modelo")))

tabla_accuracy %>%
  kable("html", caption = "Comparación de modelos ARIMA") %>%
  kable_styling(full_width = FALSE, bootstrap_options = c("striped", "hover"))
Comparación de modelos ARIMA
Modelo ME RMSE MAE MPE MAPE MASE ACF1
ARIMA manual 0.1517728 3.036295 2.156529 0.0761157 1.398073 1.0005994 -0.0025313
Auto ARIMA 0.0000505 3.039979 2.148475 -0.0234051 1.392697 0.9968625 0.0152813

Pronosticos

Ponostico

fcst = forecast(modelo, h = 5, level = 95)

pred = as.numeric(fcst$mean)
lower = as.numeric(fcst$lower)
upper = as.numeric(fcst$upper)
real = as.numeric(accion[1483:1488])

tabla_pronostico <- data.table(
  Periodo = 1:5,
  Real = real,
  Pronosticado = pred,
  IC_Inferior = lower,
  IC_Superior = upper)
## Warning in as.data.table.list(x, keep.rownames = keep.rownames, check.names =
## check.names, : El elemento 1 tiene 5 filas pero el artículo más largo tiene 6;
## Reciclado con resto.
## Warning in as.data.table.list(x, keep.rownames = keep.rownames, check.names =
## check.names, : El elemento 3 tiene 5 filas pero el artículo más largo tiene 6;
## Reciclado con resto.
## Warning in as.data.table.list(x, keep.rownames = keep.rownames, check.names =
## check.names, : El elemento 4 tiene 5 filas pero el artículo más largo tiene 6;
## Reciclado con resto.
## Warning in as.data.table.list(x, keep.rownames = keep.rownames, check.names =
## check.names, : El elemento 5 tiene 5 filas pero el artículo más largo tiene 6;
## Reciclado con resto.
tabla_pronostico %>%
  kable("html", caption = "Pronóstico vs Real con Intervalos de Confianza (95%)") %>%
  kable_styling(full_width = FALSE, bootstrap_options = c("striped", "hover"))
Pronóstico vs Real con Intervalos de Confianza (95%)
Periodo Real Pronosticado IC_Inferior IC_Superior
1 275.92 277.3178 271.3527 283.2829
2 276.97 277.0958 268.5952 285.5964
3 277.55 276.8893 266.3784 287.4001
4 278.85 276.7471 264.6818 288.8125
5 283.10 276.6490 263.2807 290.0173
1 286.19 277.3178 271.3527 283.2829

Resultados

Conclusiones

Bibliografía

IBM. (s.f.). ARIMA Model. Think Blog. https://www.ibm.com/es-es/think/topics/arima-model

Encyclopaedia Britannica. (s.f.). Apple Inc. Recuperado de https://www.britannica.com/money/Apple-Inc