Chapter 1 Propuesta de estructura de datos a trabajar en el curso

La estructura de información a trabajar en el curso será la serie de tiempo correspondiente al índice S&P 500, el cual es un indicador ponderado del valor de capitalización de las 500 compañías más importantes de Estados Unidos.

Calculado por la evaluadora de riesgo Standard & Poor’s, este índice captura el 80% del comportamiento de la capitalización bursátil en el mercado americano. En tanto su estructura posee mayor diversidad en el tipo de compañías que lo componen, se tiene que el índice S&P 500 es una buena medida para monitorear y predecir la actividad económica en los enclaves económicos de mayor importancia a nivel global.

En general, la pertinencia del uso de este dataset radica en 3 razones principales:

  • En principio, se trata de una estructura de información concisa, legítima en el marco de las actividades de sectores financieros globales, y sin problemas previos en cuanto a la limpieza de sus observaciones. Por lo que una rutina progresiva de análisis sobre esta base de datos se puede dar con mayor facilidad e interpretabilidad.

  • El estudio del comportamiento de la capitalización bursátil a nivel global, contenido en el dataset escogido, implica una vista previa y una posible profundización del análisis financiero en el marco de las series de tiempo sobre el comportamiento de firmas, sectores y economías de alto impacto. De esta manera, la aplicación de la rutina de análisis del curso sobre este dataset puede decantar en un ejercicio robusto que puede extenderse más allá de los propósitos básicos de aprendizaje, y conformar una herramienta útil para las intenciones del autor.

  • El estudio de la estructura y comportamiento de este dataset como serie de tiempo, inmerso en las dinámicas de intercambio de los mercados de activos financieros, puede representar una herramienta de profundización para la toma de decisiones en materia de optimización de portafolios, y, en general, en materia de comprensión e implementación práctica de instrumentos aplicados de análisis de procesos estocásticos y metodologías de pronósticos.

1.1 Dataset:

# Load necessary libraries
library(rvest)
library(dplyr)

# Load necessary libraries
library(readr)

# Import the downloaded CSV file (change the path accordingly)
spx_data <- read_csv("C:/Users/ASUS/OneDrive - PUJ Cali/Documentos/MAESTRÍA PUJ/analisis de series de tiempo/datasets/HistoricalData_1728883475484.csv")

# Display the first few rows of the dataset
head(spx_data)
## # A tibble: 6 × 5
##   Date       `Close/Last`  Open  High   Low
##   <chr>             <dbl> <dbl> <dbl> <dbl>
## 1 10/11/2024        5815. 5775. 5822. 5775.
## 2 10/10/2024        5780. 5778. 5795. 5765.
## 3 10/09/2024        5792. 5752. 5797. 5745.
## 4 10/08/2024        5751. 5719. 5758. 5715.
## 5 10/07/2024        5696. 5738. 5739. 5687.
## 6 10/04/2024        5751. 5737. 5753. 5703.

1.2 Summary:

summary(spx_data)
##      Date             Close/Last        Open           High           Low      
##  Length:2527        Min.   :1829   Min.   :   0   Min.   :   0   Min.   :   0  
##  Class :character   1st Qu.:2364   1st Qu.:2365   1st Qu.:2371   1st Qu.:2353  
##  Mode  :character   Median :2938   Median :2933   Median :2947   Median :2919  
##                     Mean   :3265   Mean   :3256   Mean   :3273   Mean   :3237  
##                     3rd Qu.:4147   3rd Qu.:4144   3rd Qu.:4169   3rd Qu.:4123  
##                     Max.   :5815   Max.   :5778   Max.   :5822   Max.   :5775

1.3 Scatter plott de la serie de tiempo:

# Load necessary libraries
library(ggplot2)
library(dplyr)

# Print the column names to check their exact names
#print(colnames(spx_data))

# Convert the Date column to Date type
spx_data <- spx_data %>% 
  mutate(Date = as.Date(Date, format = "%m/%d/%Y"))

# Update the column name here after checking the output of print(colnames(spx_data))
spx_data <- spx_data %>%
  mutate(Close_price = as.numeric(gsub("[^0-9.]", "", `Close/Last`)))  # Update this line with the correct name

# Remove rows with NA values in Date or Close_price
spx_data <- spx_data %>%
  filter(!is.na(Date) & !is.na(Close_price))

# Create the scatter plot
ggplot(spx_data, aes(x = Date, y = Close_price)) +
  geom_point(color = "blue", alpha = 0.6) +
  labs(title = "S&P 500 Close Prices Over Time",
       x = "Date",
       y = "Close Price") +
  theme_minimal()