Introducción

Descripción General de los Datos

Los datos utilizados en este dashboard corresponden al precio de las acciones de Amazon, recopilados de forma diaria. Contienen información sobre:

  • Fecha del registro
  • Precio de apertura (open)
  • Precio de cierre (close)
  • Precio mínimo del día (low)
  • Precio máximo del día (high)
  • Volumen de acciones transadas (volume)

Este análisis busca explorar estadísticas descriptivas, patrones temporales y generar pronósticos simples del comportamiento futuro del precio de cierre.

Estadísticas

Resumen Estadístico por Variable

Estadísticas por Variable
Variable Min Max Media Mediana SD CV
open 105.93 845.79 337.88 282.50 189.29 56.02
close 108.61 844.36 337.90 282.92 189.11 55.97
low 105.80 840.60 333.97 279.87 187.65 56.19
high 111.29 847.21 341.46 285.07 190.53 55.80
volume 984400.00 42421100.00 4607595.97 3890700.00 3091557.23 67.10

Visualización

Histogramas con Frecuencia y Curva de Densidad

Serie temporal del precio de cierre

Promedio anual del precio de cierre

Pronósticos

Suavización Exponencial Simple (SES)

Modelo Holt (tendencia)

Conclusiones

Conclusiones

  • Alta volatilidad: El análisis estadístico reveló una fuerte dispersión en los precios de las acciones de Amazon. Esto se refleja en los valores altos de desviación estándar y coeficiente de variación (superiores al 50%), lo cual indica que los precios no siguen un patrón estable diario.
  • Impacto del volumen de operaciones: El volumen de negociación mostró variaciones significativas, posiblemente influenciadas por eventos externos, noticias del mercado o decisiones corporativas. Esto refuerza la importancia de considerar factores contextuales en el análisis financiero.
  • Las variables analizadas (open, close, low, high, volume) presentan distribuciones similares, con sesgos hacia valores bajos, especialmente en el volumen de transacciones, lo cual sugiere que la mayoría de los días hubo bajo volumen y pocos días con volúmenes muy altos.
  • El análisis por año confirma que el precio promedio de cierre ha aumentado gradualmente, destacando años de mayor crecimiento sostenido.
  • En cuanto a pronósticos, los modelos de Suavización Exponencial Simple (SES) y Holt indican una continuación de la estabilidad en el precio de cierre. El modelo de Holt es más sensible a posibles tendencias, mientras que SES solo suaviza el comportamiento reciente.
  • Importancia del preprocesamiento: La limpieza de datos fue esencial para garantizar la calidad del análisis. Los errores de formato, como la ubicación incorrecta de puntos decimales, pueden afectar seriamente los resultados si no se corrigen adecuadamente.
  • El uso de software estadístico como R y bibliotecas de visualización ayudó a comprender y comunicar los resultados de manera clara.
---
title: "Dashboard de Acciones de Amazon"
output:
  flexdashboard::flex_dashboard:
    orientation: rows
    vertical_layout: fill
    source_code: embed
---

```{r setup, include=FALSE}
library(readr)
library(dplyr)
library(ggplot2)
library(lubridate)
library(gridExtra)
library(forecast)
library(scales)

datos <- read_csv("AmazonStockPredictionDepurated.csv")
datos <- datos %>% mutate(date = dmy(date))
numericas <- c("open", "close", "low", "high", "volume")
```

# Introducción

## Descripción General de los Datos

Los datos utilizados en este dashboard corresponden al precio de las acciones de Amazon, recopilados de forma diaria. Contienen información sobre:

- **Fecha** del registro
- Precio de **apertura** (`open`)
- Precio de **cierre** (`close`)
- Precio **mínimo** del día (`low`)
- Precio **máximo** del día (`high`)
- **Volumen** de acciones transadas (`volume`)

Este análisis busca explorar estadísticas descriptivas, patrones temporales y generar pronósticos simples del comportamiento futuro del precio de cierre.

# Estadísticas

## Resumen Estadístico por Variable

```{r resumen}
resumen_bloques <- function(nombre_var) {
  x <- datos[[nombre_var]]
  data.frame(
    Variable = nombre_var,
    Min = min(x, na.rm = TRUE),
    Max = max(x, na.rm = TRUE),
    Media = mean(x, na.rm = TRUE),
    Mediana = median(x, na.rm = TRUE),
    SD = sd(x, na.rm = TRUE),
    CV = sd(x, na.rm = TRUE) / mean(x, na.rm = TRUE) * 100
  )
}

estadisticas <- do.call(rbind, lapply(numericas, resumen_bloques))
knitr::kable(estadisticas, digits = 2, caption = "Estadísticas por Variable")
```

# Visualización

## Histogramas con Frecuencia y Curva de Densidad

```{r histogramas, fig.width=18, fig.height=12}
graficos <- lapply(numericas, function(var) {
  ggplot(datos, aes_string(x = var)) +
    geom_histogram(aes(y = ..count..), fill = "skyblue", bins = 30, alpha = 0.6) +
    geom_density(aes(y = ..density.. * diff(range(datos[[var]])) * length(datos[[var]]) / 30), color = "darkblue") +
    ggtitle(paste("Distribución de", var)) +
    theme_minimal() +
    ylab("Frecuencia") +
    scale_x_continuous(labels = comma)
})

do.call(grid.arrange, c(graficos, ncol = 2))
```

## Serie temporal del precio de cierre

```{r serie_temporal, fig.width=14, fig.height=8}
ggplot(datos, aes(x = date, y = close)) +
  geom_line(color = "seagreen", linewidth = 1.5) +
  ggtitle("Evolución Temporal del Precio de Cierre") +
  xlab("Fecha") + ylab("Precio de Cierre") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))
```

## Promedio anual del precio de cierre

```{r promedio_anual, fig.width=14, fig.height=8}
datos <- datos %>% mutate(year = year(date))
promedios <- datos %>%
  group_by(year) %>%
  summarise(avg_close = mean(close, na.rm = TRUE))

ggplot(promedios, aes(x = factor(year), y = avg_close)) +
  geom_bar(stat = "identity", fill = "coral") +
  ggtitle("Precio de Cierre Promedio por Año") +
  xlab("Año") + ylab("Promedio de Precio de Cierre") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))
```

# Pronósticos

## Suavización Exponencial Simple (SES)

```{r ses_modelo, fig.width=14, fig.height=8}
datos <- datos[order(datos$date), ]
datos$close <- as.numeric(datos$close)
amazon_ts <- ts(datos$close, start = c(2010, 1), frequency = 252)
modelo_ses <- ses(amazon_ts, h = 10)

fechas_hist <- datos$date
fechas_pred <- seq(from = max(fechas_hist) + 1, by = "day", length.out = 10)

df_hist <- data.frame(fecha = fechas_hist, precio = datos$close)
df_pred <- data.frame(fecha = fechas_pred, precio = as.numeric(modelo_ses$mean))

fecha_inicio <- max(df_hist$fecha) - 60
fecha_fin <- max(df_pred$fecha)

ggplot() +
  geom_line(data = df_hist, aes(x = fecha, y = precio), color = "blue", size = 1.1) +
  geom_line(data = df_pred, aes(x = fecha, y = precio), color = "red", size = 1.4) +
  ggtitle("Pronóstico SES del Precio de Cierre de Amazon") +
  xlab("Fecha") + ylab("Precio (USD)") +
  coord_cartesian(xlim = c(fecha_inicio, fecha_fin)) +
  theme_minimal()
```

## Modelo Holt (tendencia)

```{r holt_modelo, fig.width=14, fig.height=8}
modelo_holt <- holt(amazon_ts, h = 10)

fechas_pred <- seq(from = max(fechas_hist) + 1, by = "day", length.out = 10)
df_pred_holt <- data.frame(fecha = fechas_pred, precio = as.numeric(modelo_holt$mean))

fecha_fin <- max(df_pred_holt$fecha)

ggplot() +
  geom_line(data = df_hist, aes(x = fecha, y = precio), color = "black", size = 1.1) +
  geom_line(data = df_pred_holt, aes(x = fecha, y = precio), color = "orange", size = 1.4) +
  ggtitle("Pronóstico Holt del Precio de Cierre de Amazon") +
  xlab("Fecha") + ylab("Precio (USD)") +
  coord_cartesian(xlim = c(fecha_inicio, fecha_fin)) +
  theme_minimal()
```

# Conclusiones

## Conclusiones
- Alta volatilidad: El análisis estadístico reveló una fuerte dispersión en los precios de las acciones de Amazon. Esto se refleja en los valores altos de desviación estándar y coeficiente de variación (superiores al 50%), lo cual indica que los precios no siguen un patrón estable diario.
- Impacto del volumen de operaciones: El volumen de negociación mostró variaciones significativas, posiblemente influenciadas por eventos externos, noticias del mercado o decisiones corporativas. Esto refuerza la importancia de considerar factores contextuales en el análisis financiero.
- Las variables analizadas (`open`, `close`, `low`, `high`, `volume`) presentan distribuciones similares, con sesgos hacia valores bajos, especialmente en el volumen de transacciones, lo cual sugiere que la mayoría de los días hubo bajo volumen y pocos días con volúmenes muy altos.
- El análisis por año confirma que el precio promedio de cierre ha aumentado gradualmente, destacando años de mayor crecimiento sostenido.
- En cuanto a pronósticos, los modelos de Suavización Exponencial Simple (SES) y Holt indican una continuación de la estabilidad en el precio de cierre. El modelo de Holt es más sensible a posibles tendencias, mientras que SES solo suaviza el comportamiento reciente.
- Importancia del preprocesamiento: La limpieza de datos fue esencial para garantizar la calidad del análisis. Los errores de formato, como la ubicación incorrecta de puntos decimales, pueden afectar seriamente los resultados si no se corrigen adecuadamente.
- El uso de software estadístico como R y bibliotecas de visualización ayudó a comprender y comunicar los resultados de manera clara.