Descripción del Código en Relación con los Puntos de Análisis
library(quantmod)
## Loading required package: xts
## Loading required package: zoo
##
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
## Loading required package: TTR
## Registered S3 method overwritten by 'quantmod':
## method from
## as.zoo.data.frame zoo
library(rugarch)
## Loading required package: parallel
##
## Attaching package: 'rugarch'
## The following object is masked from 'package:stats':
##
## sigma
tesla_data <- read.csv("tesla_stock_data_full_history.csv")
Conviertes las fechas a un formato adecuado y calculas los rendimientos diarios de las acciones de Tesla. Esto prepara los datos para el análisis.
tesla_data$Date <- as.Date(tesla_data$Date)
tesla_data$Returns <- c(NA, diff(log(tesla_data$Close)))
summary(tesla_data$Returns)
## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
## -0.236518 -0.015730 0.001220 0.001445 0.019075 0.218292 1
hist(tesla_data$Returns, breaks=50, main="Histograma de Rendimientos")
Proporcionas un resumen estadístico de los rendimientos y generas un histograma. Esto te da una idea de la distribución y la volatilidad de los rendimientos.
Box.test(tesla_data$Returns, lag=20, type="Ljung-Box")
##
## Box-Ljung test
##
## data: tesla_data$Returns
## X-squared = 14.806, df = 20, p-value = 0.7874
Realizas el test de Ljung-Box para verificar la autocorrelación en los rendimientos. Un valor p alto sugiere que no hay autocorrelación significativa, lo cual es importante para la aplicación del modelo GARCH.
spec <- ugarchspec(variance.model = list(model = "sGARCH"), mean.model = list(armaOrder = c(0,0), include.mean = TRUE))
tesla_data_filtered <- na.omit(tesla_data)
garch_model <- ugarchfit(spec, data = tesla_data_filtered$Returns)
Especificas y ajustas un modelo GARCH a los rendimientos de Tesla. Este paso es crucial para analizar la volatilidad y la dinámica temporal de los rendimientos.
forecast <- ugarchforecast(garch_model, n.ahead = 1, data = tesla_data_filtered$Returns)
VaR <- sigma(forecast) * qnorm(0.01) # para un nivel de confianza del 99%
print(VaR)
## 1979-05-03
## T+1 -0.06418957
Calculas el VaR para el próximo día utilizando la volatilidad pronosticada por el modelo GARCH. El VaR te da una estimación del riesgo de inversión en las acciones de Tesla para el próximo día.
Conclusión Cada uno de estos pasos contribuye a un análisis integral de los rendimientos de las acciones de Tesla, desde la preparación de los datos hasta el análisis de volatilidad y riesgo usando modelos GARCH. Este tipo de análisis es fundamental en finanzas cuantitativas para entender el riesgo y la dinámica del mercado.