Solana es un proyecto de código abierto altamente funcional que se basa en la naturaleza sin permiso de la tecnología blockchain para proporcionar soluciones financieras descentralizadas (DeFi). Si bien la idea y el trabajo inicial en el proyecto comenzaron en 2017, Solana fue lanzada oficialmente en marzo de 2020 por la Fundación Solana con sede en Ginebra, Suiza. El protocolo Solana está diseñado para facilitar la creación de aplicaciones descentralizadas (DApp). Su objetivo es mejorar la escalabilidad introduciendo un consenso de prueba de historia (PoH) combinado con el consenso de prueba de participación (PoS) subyacente de la cadena de bloques.
datos <- read.csv("NOV_ABRIL.csv", header = TRUE)
serie_tiempo <- ts(datos$Close, start = c(2022, 11), end = c(2023, 4), frequency = 365)
title <- "Serie de Tiempo NOV-ABRIL"
xlab <- "Tiempo"
ylab <- "Precio"
plot(serie_tiempo, type = "l", main = title, xlab = xlab, ylab = ylab)
#Podemos observar que esta no es una serie estacionaria, es decir, no hay parámetros que se repitan, y la serie no se desenvulve sobre un eje. En pocas palabras, su comportamiento estadístico cambia a lo largo del tiempo Podemos observar, que a diferencia del ruido blanco en esta serie, se presenta una caminata aleatoria. Medidas como la media, varianza y/o covarianza pueden afectar la serie analizada, pues no se permanecen constantes en el tiempo. Por ejemplo, podríamos concluir que la varianza de los datos es muy dispersa en esta serie pues no fue constante a lo largo del tiempo.
acf(serie_tiempo)
#Como podemos observar, la gráfica nos confirma una vez más que la serie no es estacionario y tampoco tiene correalación pues la serie se sale de las líneas azules. Por lo que el modelo apropiado para pronósticar sería con Arima, no se podría poronósticar con Sarima.
adf.test(serie_tiempo)
## Augmented Dickey-Fuller Test
## alternative: stationary
##
## Type 1: no drift no trend
## lag ADF p.value
## [1,] 0 -0.185 0.591
## [2,] 1 -0.175 0.593
## [3,] 2 -0.130 0.607
## [4,] 3 -0.168 0.595
## [5,] 4 -0.148 0.601
## [6,] 5 -0.216 0.582
## Type 2: with drift no trend
## lag ADF p.value
## [1,] 0 -2.27 0.2207
## [2,] 1 -2.23 0.2358
## [3,] 2 -2.20 0.2487
## [4,] 3 -2.32 0.2031
## [5,] 4 -2.27 0.2213
## [6,] 5 -2.65 0.0882
## Type 3: with drift and trend
## lag ADF p.value
## [1,] 0 -2.27 0.464
## [2,] 1 -2.23 0.480
## [3,] 2 -2.20 0.494
## [4,] 3 -2.31 0.445
## [5,] 4 -2.26 0.464
## [6,] 5 -2.64 0.306
## ----
## Note: in fact, p.value = 0.01 means p.value <= 0.01
# El resultado de la prueba indica que la serie de tiempo no es estacionaria en ninguno de los tres casos: Es decir que la serie de tiempo tiene alguna forma de dependencia de tiempo y no podemos simplemente modelarla como un proceso estacionario. El p-valor del test ADF es mayor que 0.05 en todos los casos, lo que indica que no podemos rechazar la hipótesis nula de que la serie de tiempo no es estacionaria.
nov_abril_arima <- auto.arima(serie_tiempo)
summary(nov_abril_arima)
## Series: serie_tiempo
## ARIMA(2,0,1) with non-zero mean
##
## Coefficients:
## ar1 ar2 ma1 mean
## 0.0609 0.8791 0.9859 18.4288
## s.e. 0.0302 0.0301 0.0108 1.8781
##
## sigma^2 = 1.368: log likelihood = -565.5
## AIC=1141 AICc=1141.17 BIC=1160.42
##
## Training set error measures:
## ME RMSE MAE MPE MAPE MASE ACF1
## Training set 0.01913789 1.163185 0.7608277 -0.3383808 4.151026 NaN -0.04445972
# El modelo ARIMA ajustado a la serie de tiempo es un ARIMA(2,0,1) con media no nula. Los coeficientes estimados son: ar1 = 0.0609, ar2 = 0.8791, ma1 = 0.9859 y la media es 18.4288. El modelo es una buena elección y tiene un error medio absoluto (MAE) de 0.7608.
checkresiduals(nov_abril_arima)
##
## Ljung-Box test
##
## data: Residuals from ARIMA(2,0,1) with non-zero mean
## Q* = 127.08, df = 69, p-value = 2.605e-05
##
## Model df: 3. Total lags used: 72
# Realizar pronóstico para los precios de mayo de 2023
library(forecast)
#pulpo <- forecast(nov_abril_arima, n.ahead = 31)
# Mostrar el pronóstico
#plot(pulpo, main="Pronóstico de precios de SOL para mayo de 2023")
#pronostico <- predict(pulpo,n.ahead=31)
#plot(pronostico)
#De acuerdo a esta grafica se puede pronosticar que para el mes de mayo de 2023 el precio de Solana va a caer.
datos <- read.csv("SOLANA _octmarzo.csv", header = TRUE)
serie_tiempo1 <- ts(datos$Close, start = c(2022, 10), end = c(2023, 3), frequency = 365)
plot(serie_tiempo1, main = "Serie de Tiempo OCT-MARZO")
#Podemos observar que esta no es una serie estacionaria, pues no se desenvuelve sobre un mismo eje". Es una caminata aleatoria, que no es estacionaria, pue sus parámetros se ven afectados por el tiempo.
acf(serie_tiempo1)
# Confirmando la gráfica anterior con esta para observar si la serie de tiempo tiene autocorrelación, graficamos esta nueva gráfica, la cual nos muestra que no hay estacionariedad pues los parámetros se salen de las lineas azules, tampoco hay ruido blanco.
adf.test(serie_tiempo1)
## Augmented Dickey-Fuller Test
## alternative: stationary
##
## Type 1: no drift no trend
## lag ADF p.value
## [1,] 0 -1.32 0.207
## [2,] 1 -1.32 0.208
## [3,] 2 -1.45 0.162
## [4,] 3 -1.49 0.146
## [5,] 4 -1.40 0.177
## [6,] 5 -1.48 0.149
## Type 2: with drift no trend
## lag ADF p.value
## [1,] 0 -2.57 0.1011
## [2,] 1 -2.82 0.0597
## [3,] 2 -3.01 0.0367
## [4,] 3 -3.29 0.0175
## [5,] 4 -2.93 0.0450
## [6,] 5 -3.17 0.0233
## Type 3: with drift and trend
## lag ADF p.value
## [1,] 0 -2.57 0.3359
## [2,] 1 -2.81 0.2329
## [3,] 2 -3.01 0.1493
## [4,] 3 -3.29 0.0724
## [5,] 4 -2.93 0.1839
## [6,] 5 -3.18 0.0917
## ----
## Note: in fact, p.value = 0.01 means p.value <= 0.01
# Los p-values son mayores que 0.05 para la mayoria de los datos de las pruebas, lo que indica que no se puede rechazar la hipótesis nula de que la serie de tiempo no es estaci
oct_marzo_arima <- auto.arima(serie_tiempo1)
summary(oct_marzo_arima)
## Series: serie_tiempo1
## ARIMA(5,0,2) with non-zero mean
##
## Coefficients:
## ar1 ar2 ar3 ar4 ar5 ma1 ma2 mean
## -0.0389 0.8577 0.2625 -0.1095 -0.0682 1.1344 0.2613 19.5236
## s.e. 0.5890 0.2057 0.4330 0.0561 0.0903 0.5874 0.4575 2.0962
##
## sigma^2 = 2.874: log likelihood = -696.28
## AIC=1410.55 AICc=1411.07 BIC=1445.5
##
## Training set error measures:
## ME RMSE MAE MPE MAPE MASE
## Training set -0.03349432 1.676161 1.040257 -0.9205814 5.427986 NaN
## ACF1
## Training set -0.001877264
# El modelo ARIMA(5,0,2) con media no nula ajustado a la serie de tiempo "serie_tiempo1" muestra que los coeficientes ar1, ar2, ar3, ar4, ar5, ma1 y ma2 son significativos en el modelo
checkresiduals(oct_marzo_arima)
##
## Ljung-Box test
##
## data: Residuals from ARIMA(5,0,2) with non-zero mean
## Q* = 152.11, df = 65, p-value = 6.101e-09
##
## Model df: 7. Total lags used: 72
# Realizar pronóstico para los precios de abril de 2023
library(forecast)
#leon <- forecast(oct_marzo_arima, n.ahead = 30)
# Mostrar el pronóstico
#plot(leon, main="Pronóstico de precios de SOL para abril de 2023")
#pronostico <- predict(leon,n.ahead=30)
#plot(pronostico)
#En esta grafica se puede comprobar de acuerdo a la prediccion para abril de 2023 que si sube el precio ya que aqui la prediccion muestra eso y si paso en realidad de acuerdo la grafica del pronostico de mayo donde se puede ver que en abril hubo un aumento en la grafica
# Recomendaciones de inversion para Solana, como toda criptomoneda es altamente volatil en el mercado y su inversion siempre es riesgosa, desde noviembre del 2021 Solana ha caido un 97% desde su mas alto precio, tambien cayo del ranking de capitalizacion de mercado hasta el lugar #10, cuando se encontro en algun momento en el top 5. De acuerdo a los pronosticos realizados con la serie de tiempo, no es recomendable ya que se pronostica una caida en el siguiente mes.