#TEMA: Análisis estadístico del clima del Volcán Antisana en el Ecuador
#Planteamiento del problema: 
#Los datos meteorológicos son fundamentales para el estudio de los procesos atmosféricos que controlan el clima en zonas volcánicas de alta montaña, ya que influyen directamente en la dinámica ambiental y en la ocurrencia de fenómenos naturales. Su análisis estadístico permite transformar registros meteorológicos en información útil para la interpretación climática, identificando tendencias, variabilidad y relaciones entre variables. Como caso de estudio se consideran los datos meteorológicos del volcán Antisana en el Ecuador correspondientes al año 2012, datos obtenidos de GlobalWeather.com, con el fin de caracterizar el comportamiento atmosférico de esta zona andina.

#Objetivo General: 
  #Aplicar la estadística y Machine Learning en los datos meteorológicos del volcán Antisana en el Ecuador correspondientes al año 2012 con el uso de herramientas computacionales.

#Objetivos específicos:
  #1.   Conocer la situación actual de los datos meteorológicos del volcán Antisana en el Ecuador correspondientes al año 2012 a través de sus características más importantes y medidas estadísticas.
#2. Emplear un modelo de la probabilidad para establecer conclusiones acerca de los datos meteorológicos del volcán Antisana en el Ecuador correspondientes al año 2012 a partir de la muestra.
#3. Deducir relaciones entre variables de los datos meteorológicos del volcán Antisana en el Ecuador correspondientes al año 2012 con el fin de realizar estimaciones.

#Población:
  #El conjunto de datos meteorológicos del volcán Antisana en el Ecuador correspondientes al año 2012.
#U = { x / x ∈ datos meteorológicos ∧ Lugar(x) = "Volcán Antisana, Ecuador" ∧ Año(x) = 2012 }

#Individuo:
  #Cada dato meteorológico del volcán Antisana en el Ecuador correspondiente al año 2012.
#Xi: i= 1, 2, 3, … , ∞

#Muestra: 
  #El conjunto de datos meteorológicos registrados en el volcán Antisana, Ecuador, durante el año 2012, incluyendo información sobre variables atmosféricas como temperatura, precipitación, humedad y otras condiciones climáticas relevantes, proporcionadas por el docente de la asignatura de Estadística de la carrera de Geología de cuarto semestre de la Universidad Central del Ecuador.
#M = { x / x ∈ datos meteorológicos ∧ Lugar(x) = "Volcán Antisana, Ecuador" ∧ Año(x) = 2012 }

#Caso de estudio:
  #Cada registro meteorológico del volcán Antisana, Ecuador, correspondiente al año 2012.

#Xi: i = 1, 2, 3, … , n
#n = 366


#Liberías
library(lattice)
library(PASWR)
library(psych)
library(MASS)
library(survival)
library(fitdistrplus)
library(readr)

#Extracción de datos
datos<- weatherdataANTISANA_2_ <- read_csv("weatherdataANTISANA (3).csv",show_col_types = FALSE)
#Extracción Variables
names(datos) <- gsub(" ", "_", names(datos))

TempMax <- datos$Max_Temperature
TempMin <- datos$Min_Temperature
Precipitacion <- datos$Precipitation
Viento <- datos$Wind
Humedad <- datos$Relative_Humidity
Solar <- datos$Solar


#ESTADÍSTICA DESCRIPTIVA

#VARIABLE TEMPERATURA MAXIMA
#TDF Cualitativa Continua
#Tabla de Frecuencias Absolutas
Histograma<- hist(TempMax,breaks=7)

k <- (length(Histograma$breaks)-1)
Li <- Histograma$breaks[1:7]
Ls <- Histograma$breaks[2:8]
MC <- Histograma$mids
ni <- Histograma$counts
hi <- round((ni/sum(ni))*100,2)
#Tabla de Frecuencias Acumuladas
Ni_asc <- cumsum(ni)
Ni_dsc <- rev(cumsum(rev(ni)))
Hi_asc <- cumsum(hi)
Hi_dsc <- rev(cumsum(rev(hi)))
(TDFelevacion<- data.frame(Li,Ls,MC,ni,hi,Ni_asc,Ni_dsc,Hi_asc,Hi_dsc))
##   Li Ls MC ni    hi Ni_asc Ni_dsc Hi_asc Hi_dsc
## 1 10 12 11 30  8.20     30    366   8.20 100.00
## 2 12 14 13 94 25.68    124    336  33.88  91.80
## 3 14 16 15 77 21.04    201    242  54.92  66.12
## 4 16 18 17 83 22.68    284    165  77.60  45.08
## 5 18 20 19 50 13.66    334     82  91.26  22.40
## 6 20 22 21 25  6.83    359     32  98.09   8.74
## 7 22 24 23  7  1.91    366      7 100.00   1.91
#GRÁFICAS
#Histogramas de Frecuencia Acumulada

barplot(ni,space = 0,main = "Grafica N°1:Distribución de las temperaturas máximas registradas en el Volcán Antisana",col = "skyblue",xlab = "Temperatura Máxima (ºC)",ylab = "Cantidad",
        ylim=c(0,max(ni)),names.arg=round(MC,2), axis.lty=1)

barplot(ni,space = 0,main = "Grafica N°1:Distribución de las temperaturas máximas registradas en el Volcán Antisana",col = "skyblue",xlab ="Temperatura Máxima (ºC)",ylab = "Cantidad",
        ylim=c(0,length(TempMax)),names.arg=round(MC,2), axis.lty=1)

#Histogramas de Frecuencia Absoluta
barplot(hi,space = 0,main = "Grafica N°2:Distribución de las temperaturas máximas registradas en el Volcán Antisana", col = "skyblue",xlab = "Temperatura Máxima (ºC)",ylab = "Porcentaje",
        names.arg=round(MC,2), axis.lty=1,ylim = c(0,max(hi)))

barplot(hi,space = 0,main = "Grafica N°2:Distribucción de las temperaturas maximas registradas en el Volcán Antisana",col = "skyblue",xlab = "Temperatura Maxima (ºC)",ylab = "Porcentaje",
        names.arg=round(MC,2), axis.lty=1,ylim = c(0,100))

# Diagrama de Caja
caja<-boxplot(TempMax, horizontal = TRUE, main = "Grafica N°1: Diagrama de Caja",
              xlab="Temperatura Maxima (ºC)", col="skyblue")

(round(summary(TempMax),2))
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   10.32   13.42   15.51   15.74   17.66   23.79
# Ojivas
plot(Li, Hi_dsc, type ="b", main ="Grafica N°1:Ojiva de Frecuencias Relativas Acumuladas Ascendente y Descendente", ylab="Porcentaje (%)",xlab="Temperatura Máxima (ºC)")
lines(Ls, Hi_asc, type = "b", col="green")

#INDICADORES ESTADÍSTICOS

Indicadores<-c("n", "Minimo", "Maximo","k intervalos", "Amplitud","Media",
               "Mediana", "Desviacion Estandar", "Varianza", "Coef. de variación (%)",
               "Curtosis","Coef. de Asimetría")
Valores1<-c(length(TempMax),min(TempMax),max(TempMax),k,
            (max(TempMax)-min(TempMax))/k,mean(TempMax),median(TempMax),sd(TempMax),
            var(TempMax),round((sd(TempMax)/mean(TempMax))*100,2),kurtosi(TempMax),
            skew(TempMax))
Valores <- round(Valores1,2)
Estadisticas<- data.frame(Indicadores,Valores)
Estadisticas
##               Indicadores Valores
## 1                       n  366.00
## 2                  Minimo   10.32
## 3                  Maximo   23.79
## 4            k intervalos    7.00
## 5                Amplitud    1.92
## 6                   Media   15.74
## 7                 Mediana   15.51
## 8     Desviacion Estandar    2.87
## 9                Varianza    8.22
## 10 Coef. de variación (%)   18.22
## 11               Curtosis   -0.56
## 12     Coef. de Asimetría    0.39
#---Cálculo de valores atípicos--- 
(outliers <- sort(caja$out))
## numeric(0)
#CONCLUSIONES 
#La variable presenta un comportamiento favorable. 
#Los valores de la temperatura máxima oscilan entre 23.79 ºC (máximo)
#y 10.32 ºC (mínimo), con una media de 15.74 ºC, lo que indica una 
#ligera concentración alrededor de este valor. La distribución de 
#los datos es platicúrtica, evidenciada por una curtosis de -0.56,
#lo que sugiere que los valores están menos acumulados en torno a 
#la media. La asimetría de 0.39 muestra una leve inclinación hacia 
#valores más bajos. Además, el conjunto de datos es bastante diverso, 
#con un coeficiente de variación del 18.22%
#----------------------------------------------------------------------

#VARIABLE TEMPERATURA MÍNIMA
#TDF Cualitativa Continua
#Tabla de Frecuencias Absolutas
Histograma<- hist(TempMin)

n<-length(Histograma$breaks)
k <- (n-1)
Li <- Histograma$breaks[1:9]
Ls <- Histograma$breaks[2:10]
MC <- Histograma$mids
ni <- Histograma$counts
hi <- round((ni/sum(ni))*100,2)
#Tabla de Frecuencias Acumuladas
Ni_asc <- cumsum(ni)
Ni_dsc <- rev(cumsum(rev(ni)))
Hi_asc <- cumsum(hi)
Hi_dsc <- rev(cumsum(rev(hi)))
(TDFelevacion<- data.frame(Li,Ls,MC,ni,hi,Ni_asc,Ni_dsc,Hi_asc,Hi_dsc))
##   Li Ls   MC  ni    hi Ni_asc Ni_dsc Hi_asc Hi_dsc
## 1  2  3  2.5   1  0.27      1    366   0.27  99.99
## 2  3  4  3.5   2  0.55      3    365   0.82  99.72
## 3  4  5  4.5   7  1.91     10    363   2.73  99.17
## 4  5  6  5.5  16  4.37     26    356   7.10  97.26
## 5  6  7  6.5  47 12.84     73    340  19.94  92.89
## 6  7  8  7.5 110 30.05    183    293  49.99  80.05
## 7  8  9  8.5  90 24.59    273    183  74.58  50.00
## 8  9 10  9.5  66 18.03    339     93  92.61  25.41
## 9 10 11 10.5  27  7.38    366     27  99.99   7.38
#GRÁFICAS
#Histogramas Frecuencia Acumulada
barplot(ni,space = 0,main = "Grafica N°1:Distribución de las temperaturas Mínimas registradas en el Volcán Antisana",col = "lightsalmon",xlab = "Temperatura Mínima (ºC)",ylab = "Cantidad",
        ylim=c(0,max(ni)),names.arg=round(MC,2), axis.lty=1)

barplot(ni,space = 0,main = "Grafica N°1:Distribución de las temperaturas Mínimas registradas en el  Volcán Antisana",col = "lightsalmon",xlab ="Temperatura Mínimas (ºC)",ylab = "Cantidad",
        ylim=c(0,length(TempMin)),names.arg=round(MC,2), axis.lty=1)

#Histogramas Frecuencia Absoluta
barplot(hi,space = 0,main = "Grafica N°2:Distribución de las temperaturas Mínimas registradas en el Volcán Antisana",col = "lightsalmon",xlab = "Temperatura Mínimas (ºC)",ylab = "Porcentaje",
        names.arg=round(MC,2), axis.lty=1,ylim = c(0,max(hi)))

barplot(hi,space = 0,main = "Grafica N°2:Distribución de las temperaturas Mínimas registradas en Volcán Antisana",col = "lightsalmon",xlab = "Temperatura Mínimas (ºC)",ylab = "Porcentaje",
        names.arg=round(MC,2), axis.lty=1,ylim = c(0,100))

#Diagrama de Caja
caja<-boxplot(TempMin, horizontal = TRUE, main = "Grafica N°3:Diagrama de Caja",
              xlab="Temperatura Mínimas (ºC)", col="lightsalmon")

(round(summary(TempMin),2))
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    2.65    7.26    8.00    8.05    9.02   10.85
#Ojivas
plot(Li, Hi_dsc, type ="b", main ="Grafica N°4:Ojiva de Frecuencias Relativas Acumuladas Ascendente y Descendente",ylab="Porcentaje %",xlab="Temperatura Mínimas (ºC)")
lines(Ls, Hi_asc, type = "b", col="skyblue")

#INDICADORES ESTADÍSTICOS

Indicadores<-c("n", "Minimo", "Maximo","k intervalos", "Amplitud","Media",
               "Mediana", "Desviacion Estandar", "Varianza", "Coef. de variación (%)",
               "Curtosis","Coef. de Asimetría")
Valores1<-c(length(TempMin),min(TempMin),max(TempMin),k,
            (max(TempMin)-min(TempMin))/k,mean(TempMin),median(TempMin),sd(TempMin),
            var(TempMin),round((sd(TempMin)/mean(TempMin))*100,2),kurtosi(TempMin),
            skew(TempMin))
Valores <- round(Valores1,2)
Estadisticas<- data.frame(Indicadores,Valores)
Estadisticas
##               Indicadores Valores
## 1                       n  366.00
## 2                  Minimo    2.65
## 3                  Maximo   10.85
## 4            k intervalos    9.00
## 5                Amplitud    0.91
## 6                   Media    8.05
## 7                 Mediana    8.00
## 8     Desviacion Estandar    1.37
## 9                Varianza    1.89
## 10 Coef. de variación (%)   17.08
## 11               Curtosis    0.57
## 12     Coef. de Asimetría   -0.43
(outliers <- sort(caja$out))
## [1] 2.650 3.555 3.638 4.125 4.386 4.472 4.547
#CONCLUSIONES
#La variable muestra un comportamiento favorable. Los valores de la temperatura mínima
#varían entre 10.85 ºC (máximo) y 2.65 ºC (mínimo). La mediana, situada en 8.00 ºC,
#indica que los datos están ligeramente centrados alrededor de este valor. 
#La distribución es leptocúrtica, evidenciada por una curtosis de 0.57, 
#lo que sugiere que los valores están más acumulados en torno a la media. 
#La asimetría de -0.43 revela una ligera inclinación hacia valores más altos.
#Además, el conjunto de datos es bastante heterogéneo, con un coeficiente de
#variación del 17.08%.

#VARIABLE PRECIPITACIÓN
#TDF Cualitativa Continua
#tabla de frec absolutas
Histograma<- hist(Precipitacion)

n<-length(Histograma$breaks)
k <- (n-1)
Li <- Histograma$breaks[1:10]
Ls <- Histograma$breaks[2:11]
MC <- Histograma$mids
ni <- Histograma$counts
hi <- round((ni/sum(ni))*100,2)
#tabla de freq acumuladas
Ni_asc <- cumsum(ni)
Ni_dsc <- rev(cumsum(rev(ni)))
Hi_asc <- cumsum(hi)
Hi_dsc <- rev(cumsum(rev(hi)))
(TDFelevacion<- data.frame(Li,Ls,MC,ni,hi,Ni_asc,Ni_dsc,Hi_asc,Hi_dsc))
##    Li  Ls MC  ni    hi Ni_asc Ni_dsc Hi_asc Hi_dsc
## 1   0  10  5 150 40.98    150    366  40.98  99.99
## 2  10  20 15  92 25.14    242    216  66.12  59.01
## 3  20  30 25  58 15.85    300    124  81.97  33.87
## 4  30  40 35  27  7.38    327     66  89.35  18.02
## 5  40  50 45  23  6.28    350     39  95.63  10.64
## 6  50  60 55  10  2.73    360     16  98.36   4.36
## 7  60  70 65   4  1.09    364      6  99.45   1.63
## 8  70  80 75   0  0.00    364      2  99.45   0.54
## 9  80  90 85   1  0.27    365      2  99.72   0.54
## 10 90 100 95   1  0.27    366      1  99.99   0.27
#GRÁFICAS
#Histogramas Frecuencia Acumuladas
barplot(ni,space = 0,main = "Grafica N°5:Distribución de las Precipitaciones registradas en el Volcán Antisana", col = "pink",xlab = "Precipitaciones (mm H2O)",ylab = "Cantidad",
        ylim=c(0,max(ni)),names.arg=round(MC,2), axis.lty=1)

barplot(ni,space = 0,main = "Grafica N°5:Distribución de las Precipitaciones registradas en el volcan Volcán Antisana", col = "pink",xlab ="Precipitaciones (mm H2O)",ylab = "Cantidad",
        ylim=c(0,length(Precipitacion)),names.arg=round(MC,2), axis.lty=1)

#Histogramas Frecuencia Absoluta
barplot(hi,space = 0,main = "Grafica N°6:Distribución de las Precipitaciones registradas en el Volcán Antisana",col = "pink",xlab = "Precipitaciones (mm H2O)",ylab = "Porcentaje",
        names.arg=round(MC,2), axis.lty=1,ylim = c(0,max(hi)))

barplot(hi,space = 0,main = "Grafica N°6:Distribución de las Precipitaciones máximas registradas en el Volcán Antisana",col = "pink",xlab = "Precipitaciones (mm H2O)",ylab = "Porcentaje",
        names.arg=round(MC,2), axis.lty=1,ylim = c(0,100))

#Diagrama de Caja
caja<-boxplot(Precipitacion, horizontal = TRUE, main = "Grafica N°7:Diagrama de Caja",
              xlab="Precipitaciones (mm H2O)", col="pink")

(round(summary(Precipitacion),2))
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    0.00    4.39   12.94   17.10   25.71   94.72
#Ojivas
plot(Li, Hi_dsc, type ="b", main ="Grafica N°8:Ojiva de Frecuencias Relativas Acumulada Asc y Dsc",ylab="Porcentaje %",xlab="Precipitaciones (mm H2O)")
lines(Ls, Hi_asc, type = "b", col="green")

Indicadores<-c("n", "Minimo", "Maximo","k intervalos", "Amplitud","Media",
               "Mediana", "Desviacion Estandar", "Varianza", "Coef. de variación (%)",
               "Curtosis","Coef. de Asimetría")

Valores1<-c(length(Precipitacion),min(Precipitacion),max(Precipitacion),k,
            (max(Precipitacion)-min(Precipitacion))/k,mean(Precipitacion),median(Precipitacion),sd(Precipitacion),
            var(Precipitacion),round((sd(Precipitacion)/mean(Precipitacion))*100,2),kurtosi(Precipitacion),
            skew(Precipitacion))
Valores <- round(Valores1,2)
Estadisticas<- data.frame(Indicadores,Valores)
Estadisticas
##               Indicadores Valores
## 1                       n  366.00
## 2                  Minimo    0.00
## 3                  Maximo   94.72
## 4            k intervalos   10.00
## 5                Amplitud    9.47
## 6                   Media   17.10
## 7                 Mediana   12.94
## 8     Desviacion Estandar   16.12
## 9                Varianza  259.71
## 10 Coef. de variación (%)   94.22
## 11               Curtosis    1.95
## 12     Coef. de Asimetría    1.29
(outliers <- sort(caja$out))
##  [1] 57.82580 58.20352 58.40949 59.46698 60.10897 64.03313 64.26312 64.67170
##  [9] 85.58180 94.71930
#La variable presenta un comportamiento medianamente favorable. Los valores de precipitación
#varían entre 94.72 mm (máximo) y 0.00 mm (mínimo). La mediana, situada en 12.94 mm, sugiere
#que los datos están centrados alrededor de este valor. La distribución es leptocúrtica, 
#indicada por una curtosis de 1.95, lo que significa que los valores tienden a acumularse 
#más alrededor de la media. La asimetría de 1.29 revela una acumulación significativa de 
#valores en la parte alta. Además, el conjunto de datos es muy heterogéneo, con un coeficiente
#de variación del 94.22%.           

#VARIABLE VIENTO
#TDF Cualitativa Continua
#tabla de frecuencias absolutas
Histograma<- hist(Viento,breaks=5)

n<-length(Histograma$breaks)
k <- (n-1)
Li <- Histograma$breaks[1:5]
Ls <- Histograma$breaks[2:6]
MC <- Histograma$mids
ni <- Histograma$counts
hi <- round((ni/sum(ni))*100,2)
#tabla de freq acumuladas
Ni_asc <- cumsum(ni)
Ni_dsc <- rev(cumsum(rev(ni)))
Hi_asc <- cumsum(hi)
Hi_dsc <- rev(cumsum(rev(hi)))
(TDFelevacion<- data.frame(Li,Ls,MC,ni,hi,Ni_asc,Ni_dsc,Hi_asc,Hi_dsc))
##    Li  Ls   MC  ni    hi Ni_asc Ni_dsc Hi_asc Hi_dsc
## 1 0.5 1.0 0.75  11  3.01     11    366   3.01 100.00
## 2 1.0 1.5 1.25 107 29.23    118    355  32.24  96.99
## 3 1.5 2.0 1.75 130 35.52    248    248  67.76  67.76
## 4 2.0 2.5 2.25  97 26.50    345    118  94.26  32.24
## 5 2.5 3.0 2.75  21  5.74    366     21 100.00   5.74
#----GRÁFICAS----
#Histogramas Frecuencia Acumuladas
barplot(ni,space = 0,main = "Grafica N°9:Distribución del Viento registrado en el Volcan Antisana",col = "lightgreen",xlab = "Viento (m/s)",ylab = "Cantidad",
        ylim=c(0,max(ni)),names.arg=round(MC,2), axis.lty=1)

barplot(ni,space = 0,main = "Grafica N°9:Distribución del Viento registrado en el volcan Antisana", col = "lightgreen",xlab ="Viento (m/s)",ylab = "Cantidad",
        ylim=c(0,length(Viento)),names.arg=round(MC,2), axis.lty=1)

#Histogramas Frecuencia Absoluta
barplot(hi,space = 0,main = "Grafica N°10:Distribución del Viento registrado en el volcan Antisana", col = "lightgreen",xlab = "Viento (m/s)",ylab = "Porcentaje",
        names.arg=round(MC,2), axis.lty=1,ylim = c(0,max(hi)))

#Total
barplot(hi,space = 0,main = "Grafica N°10:Distribución del Viento registrado en el volcan Antisana", col = "lightgreen",xlab = "Viento (m/s)",ylab = "Porcentaje",
        names.arg=round(MC,2), axis.lty=1,ylim = c(0,100))

#Diagrama de Caja
caja<-boxplot(Viento, horizontal = TRUE, main = "Grafica N°11:Diagrama de Caja",
              xlab="Viento (m/s)", col="pink")

(round(summary(Viento),2))
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    0.59    1.42    1.75    1.77    2.13    2.99
#Ojivas
plot(Li, Hi_dsc, type ="b", main ="Grafica N°12:Ojiva de Frecuencias Relativas Acumuladas Asc y Dsc", ylab="Porcentaje %",xlab="Viento (m/s)")
lines(Ls, Hi_asc, type = "b", col="skyblue")

#----Obtención de Indicadores Estadisticos----
Indicadores<-c("n", "Minimo", "Maximo","k intervalos", "Amplitud","Media",
               "Mediana", "Desviacion Estandar", "Varianza", "Coef. de variación (%)",
               "Curtosis","Coef. de Asimetría")
Valores1<-c(length(Viento),min(Viento),max(Viento),k,
            (max(Viento)-min(Viento))/k,mean(Viento),median(Viento),sd(Viento),
            var(Viento),round((sd(Viento)/mean(Viento))*100,2),kurtosi(Viento),
            skew(Viento))
Valores <- round(Valores1,2)
Estadisticas<- data.frame(Indicadores,Valores)
Estadisticas
##               Indicadores Valores
## 1                       n  366.00
## 2                  Minimo    0.59
## 3                  Maximo    2.99
## 4            k intervalos    5.00
## 5                Amplitud    0.48
## 6                   Media    1.77
## 7                 Mediana    1.75
## 8     Desviacion Estandar    0.46
## 9                Varianza    0.21
## 10 Coef. de variación (%)   25.78
## 11               Curtosis   -0.72
## 12     Coef. de Asimetría    0.11
(outliers <- sort(caja$out))
## numeric(0)
#La variable muestra un comportamiento favorable. Los valores de la velocidad
#del viento varían entre 2.99 m/s (máximo) y 0.59 m/s (mínimo). La media,
#ubicada en 1.77 m/s, indica que los datos están centrados alrededor de este valor.
#La distribución de los datos es platicúrtica, con una curtosis de -0.72, lo que 
#sugiere que los valores tienden a acumularse menos alrededor de la media. 
#La ligera simetría de la distribución, evidenciada por una asimetría de 0.11, 
#indica que los datos están casi simétricamente distribuidos. Además, el conjunto
#de datos es moderadamente heterogéneo, con un coeficiente de variación del 25.78%.

#VARIABLE HUMEDAD RELATIVA
#----TDF Cualitativa Continua----
#tabla de frecuencias absolutas
Histograma<- hist(Humedad)

n<-length(Histograma$breaks)
k <- (n-1)
Li <- Histograma$breaks[1:9]
Ls <- Histograma$breaks[2:10]
MC <- Histograma$mids
ni <- Histograma$counts
hi <- round((ni/sum(ni))*100,2)
#tabla de freq acumuladas
Ni_asc <- cumsum(ni)

Ni_dsc <- rev(cumsum(rev(ni)))
Hi_asc <- cumsum(hi)
Hi_dsc <- rev(cumsum(rev(hi)))
(TDFelevacion<- data.frame(Li,Ls,MC,ni,hi,Ni_asc,Ni_dsc,Hi_asc,Hi_dsc))
##     Li   Ls    MC  ni    hi Ni_asc Ni_dsc Hi_asc Hi_dsc
## 1 0.55 0.60 0.575   2  0.55      2    366   0.55 100.01
## 2 0.60 0.65 0.625  14  3.83     16    364   4.38  99.46
## 3 0.65 0.70 0.675  18  4.92     34    350   9.30  95.63
## 4 0.70 0.75 0.725  20  5.46     54    332  14.76  90.71
## 5 0.75 0.80 0.775  18  4.92     72    312  19.68  85.25
## 6 0.80 0.85 0.825  24  6.56     96    294  26.24  80.33
## 7 0.85 0.90 0.875  35  9.56    131    270  35.80  73.77
## 8 0.90 0.95 0.925  61 16.67    192    235  52.47  64.21
## 9 0.95 1.00 0.975 174 47.54    366    174 100.01  47.54
#----Gráficas----
#Histogramas Frecuencia Acumuladas
barplot(ni,space = 0,main = "Grafica N°1:Distribucción de la Humedad Relativa registrada en el volcan Antisana", col = "lightcoral",xlab = "Humedad Relativa",ylab = "Cantidad",
        ylim=c(0,max(ni)),names.arg=round(MC,2), axis.lty=1)

#Total
barplot(ni,space = 0,main = "Grafica N°1:Distribucción de la Humedad Relativa registrada en el volcan Antisana", col = "lightcoral",xlab ="Humedad Relativa",ylab = "Cantidad",
        ylim=c(0,length(Humedad)),names.arg=round(MC,2), axis.lty=1)

#Histogramas Frecuencia Absoluta
barplot(hi,space = 0,main = "Grafica N°2:Distribucción de la Humedad Relativa registrada en el volcan Antisana", col = "lightcoral",xlab = "Humedad Relativa",ylab = "Porcentaje",
        names.arg=round(MC,2), axis.lty=1,ylim = c(0,max(hi)))

#Total
barplot(hi,space = 0,main = "Grafica N°2:Distribucción de la Humedad Relativa registrada en el volcan Antisana",col = "lightcoral",xlab = "Humedad Relativa",ylab = "Porcentaje",
        names.arg=round(MC,2), axis.lty=1,ylim = c(0,100))

#Diagrama de Caja
caja<-boxplot(Humedad, horizontal = TRUE, main = "Grafica N°1:Diagrama de Caja",
              xlab="Humedad Relativa", col="pink")

(round(summary(Humedad),2))
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    0.56    0.84    0.94    0.89    0.98    0.99
#Ojivas
plot(Li, Hi_dsc, type ="b", main ="Grafica N°1:Ojiva de Frecuencias Relativas Acumuladas Ascendete y Desc", ylab="Porcentaje %",xlab="Humedad Relativa")
lines(Ls, Hi_asc, type = "b", col="skyblue")

#----Obtención de Indicadores Estadisticos----

Indicadores<-c("n", "Minimo", "Maximo","k intervalos", "Amplitud","Media",
               "Mediana", "Desviacion Estandar", "Varianza", "Coef. de variación (%)",
               "Curtosis","Coef. de Asimetría")
Valores1<-c(length(Humedad),min(Humedad),max(Humedad),k,
            (max(Humedad)-min(Humedad))/k,mean(Humedad),median(Humedad),sd(Humedad),
            var(Humedad),round((sd(Humedad)/mean(Humedad))*100,2),kurtosi(Humedad),
            skew(Humedad))
Valores <- round(Valores1,2)
Estadisticas<- data.frame(Indicadores,Valores)
Estadisticas
##               Indicadores Valores
## 1                       n  366.00
## 2                  Minimo    0.56
## 3                  Maximo    0.99
## 4            k intervalos    9.00
## 5                Amplitud    0.05
## 6                   Media    0.89
## 7                 Mediana    0.94
## 8     Desviacion Estandar    0.11
## 9                Varianza    0.01
## 10 Coef. de variación (%)   12.13
## 11               Curtosis    0.20
## 12     Coef. de Asimetría   -1.18
(outliers <- sort(caja$out))
##  [1] 0.5583097 0.5840737 0.6157488 0.6205241 0.6221675 0.6266736 0.6268983
##  [8] 0.6285060 0.6299088 0.6307360 0.6354501 0.6404694 0.6409066
#CONCLUSIONES
#Los valores de la humedad fluctúan entre 0.56 (mínimo) y 0.99 (máximo).
#Los valores se encuentran en torno a 0.94 (mediana), indicando que los datos
#están centrados alrededor de este valor. El conjunto de valores es moderadamente
#homogéneo (coef. de variación 12.13%). Los valores tienden a acumularse más
#alrededor de la media (curtosis de 0.20), lo que significa que la distribución
#es casi normal, con una leve tendencia a ser más platicúrtica. La distribución
#de los datos muestra una fuerte asimetría negativa (asimetría de -1.18),
#indicando que hay una acumulación significativa de valores en la parte alta
#de la variable.
#La variable presenta un comportamiento desfavorable.

#VARIABLE RADIACIÓN SOLAR
#----TDF Cualitativa Continua----
#tabla de frec absolutas
Histograma<- hist(Solar)

n<-length(Histograma$breaks)
k <- (n-1)
Li <- Histograma$breaks[1:7]
Ls <- Histograma$breaks[2:8]
MC <- Histograma$mids
ni <- Histograma$counts
hi <- round((ni/sum(ni))*100,2)
Ni_asc <- cumsum(ni)
Ni_dsc <- rev(cumsum(rev(ni)))
Hi_asc <- cumsum(hi)
Hi_dsc <- rev(cumsum(rev(hi)))
(TDFelevacion<- data.frame(Li,Ls,MC,ni,hi,Ni_asc,Ni_dsc,Hi_asc,Hi_dsc))
##   Li Ls   MC ni    hi Ni_asc Ni_dsc Hi_asc Hi_dsc
## 1  0  5  2.5 51 13.93     51    366  13.93 100.00
## 2  5 10  7.5 86 23.50    137    315  37.43  86.07
## 3 10 15 12.5 79 21.58    216    229  59.01  62.57
## 4 15 20 17.5 33  9.02    249    150  68.03  40.99
## 5 20 25 22.5 57 15.57    306    117  83.60  31.97
## 6 25 30 27.5 58 15.85    364     60  99.45  16.40
## 7 30 35 32.5  2  0.55    366      2 100.00   0.55
#----Gráficas----
#Histogramas Frecuencia Acumuladas
barplot(ni,space = 0,main = "Grafica N°13:Distribucción de la Radiación Solar registrada en el volcan Antisana", col = "lightyellow",xlab = "Radiación Solar (J/m2)",ylab = "Cantidad",
        ylim=c(0,max(ni)),names.arg=round(MC,2), axis.lty=1)

#Total
barplot(ni,space = 0,main = "Grafica N°13:Distribucción de la Radiación Solar registrada en el volcan Antisana", col = "lightyellow",xlab ="Radiación Solar (J/m2)",ylab = "Cantidad",
        ylim=c(0,length(Solar)),names.arg=round(MC,2), axis.lty=1)

#Histogramas Frecuencia Absoluta
barplot(hi,space = 0,main = "Grafica N°14:Distribucción de la Radiación Solar registrada en el volcan Antisana",col = "lightyellow",xlab = "Radiación Solar (J/m2)",ylab = "Porcentaje",
        names.arg=round(MC,2), axis.lty=1,ylim = c(0,max(hi)))

#Total
barplot(hi,space = 0,main = "Grafica N°14:Distribucción de la Radiación Solar registrada en el volcan Antisana",col  = "lightyellow",xlab = "Radiación Solar (J/m2)",ylab = "Porcentaje",
        names.arg=round(MC,2), axis.lty=1,ylim = c(0,100))

#Diagrama de Caja
caja<-boxplot(Solar, horizontal = TRUE, main = "Grafica N°15:Diagrama de Caja",
              xlab="Radiación Solar (J/m2)", col="pink")

(round(summary(Solar),2))
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    1.26    7.29   12.65   14.44   22.38   30.27
#Ojivas
plot(Li, Hi_dsc, type ="b", main ="Grafica N°16:Ojiva de Frecuencias Relativas Acumuladas Ascendete y Desc",ylab="Porcentaje %",xlab="Radiación Solar (J/m2)")
lines(Ls, Hi_asc, type = "b", col="skyblue")

#Obtención de Indicadores Estadisticos

Indicadores<-c("n", "Minimo", "Maximo","k intervalos", "Amplitud","Media",
               "Mediana", "Desviacion Estandar", "Varianza", "Coef. de variación (%)",
               "Curtosis","Coef. de Asimetría")
Valores1<-c(length(Solar),min(Solar),max(Solar),k,
            (max(Solar)-min(Solar))/k,mean(Solar),median(Solar),sd(Solar),
            var(Solar),round((sd(Solar)/mean(Solar))*100,2),kurtosi(Solar),
            skew(Solar))
Valores <- round(Valores1,2)
Estadisticas<- data.frame(Indicadores,Valores)
Estadisticas
##               Indicadores Valores
## 1                       n  366.00
## 2                  Minimo    1.26
## 3                  Maximo   30.27
## 4            k intervalos    7.00
## 5                Amplitud    4.14
## 6                   Media   14.44
## 7                 Mediana   12.65
## 8     Desviacion Estandar    8.33
## 9                Varianza   69.36
## 10 Coef. de variación (%)   57.69
## 11               Curtosis   -1.24
## 12     Coef. de Asimetría    0.30
(outliers <- sort(caja$out))
## numeric(0)
#CONCLUSIONES
#La variable presenta un comportamiento neutro. La radiación solar oscila 
#entre un máximo de 30.27 MJ/m² y un mínimo de 1.26 MJ/m². La media, ubicada
#en 14.44 MJ/m², indica que los datos están centrados alrededor de este valor.
#La distribución es platicúrtica, como lo muestra una curtosis de -1.24, lo
#que sugiere que los valores tienden a agruparse menos alrededor de la media.
#La distribución de los datos es casi simétrica, con una ligera asimetría de
#0.30. Además, la diversidad de los valores es considerable, con un 
#coeficiente de variación del 57.69%.

#  ESTADÍSTICA INFERENCIAL  
#Modelo Normal para:  Temperatura Máxima
summary(TempMax)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   10.32   13.42   15.51   15.74   17.66   23.79
hist(TempMax, freq=FALSE)
histogramaMax <- hist(TempMax, freq=FALSE)
u4 <- mean(TempMax)
sigma4 <- sd(TempMax)
x <- seq(min(TempMax), max(TempMax), 0.1)
curve(dnorm(x, u4, sigma4), col="lightsalmon", add = TRUE)

FO4 <- histogramaMax$counts
FE4 <- c()
for (i in 1:length(histogramaMax$breaks)-1) {
  P <- (pnorm(histogramaMax$breaks[i+1], u4, sigma4)) - (pnorm(histogramaMax$breaks[i], u4, sigma4))
  FE4[i] <- P * length(TempMax)
}
cor(FO4, FE4)
## [1] 0.8997243
X2_4 <- sum((FO4 - FE4)^2 / FE4)
chi_c <- qchisq(0.99, length(FO4)-1)
X2_4 > chi_c
## [1] FALSE
#CONCLUSIONES

#El comportamiento de Temperatura Máxima se puede describir mediante un modelo
#normal, con una media aritmética de 15.74 y una desviación estándar de 3.37.
#El ajuste del modelo normal a los datos es bueno, con una correlación de 0.8997
#entre las frecuencias observadas y esperadas. La prueba de Chi-cuadrado
#confirma que el modelo normal es aceptado para describir los datos.

#Modelo Normal para:  Velocidad del Viento
summary(Viento)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.5882  1.4176  1.7495  1.7676  2.1345  2.9903
hist(Viento, freq=FALSE)

histogramaViento <- hist(Viento, freq=FALSE,ylim=c(0,0.9))
u5 <- mean(Viento)
sigma5 <- sd(Viento)
x <- seq(min(Viento), max(Viento), 0.1)
curve(dnorm(x, u5, sigma5), col="lightsalmon", add = TRUE)

FO5 <- histogramaViento$counts
FE5 <- c()
for (i in 1:(length(histogramaViento$breaks)-1)) {
  P <- (pnorm(histogramaViento$breaks[i+1], u5, sigma5)) - (pnorm(histogramaViento$breaks[i], u5, sigma5))
  FE5[i] <- P * length(Viento)
}
cor(FO5, FE5)
## [1] 0.9609081
X2_5 <- sum((FO5 - FE5)^2 / FE5)
chi_cr <- qchisq(0.99, length(FO5)-1)
X2_5 > chi_cr
## [1] FALSE
#El modelo normal se ajusta bien a los datos de la velocidad del viento,
#con una correlación de 0.9609 entre las frecuencias observadas y esperadas. 
#La prueba de Chi-cuadrado confirma que el modelo normal es adecuado para 
#describir estos datos. La media aritmética es de 1.7676 y la desviación
#estándar es de 0.5634, lo que describe eficazmente el comportamiento de 
#la velocidad del viento.

#Modelo Normal Radiacion Solar

summary(Solar)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   1.264   7.294  12.655  14.436  22.377  30.268
histogramaSolar<-hist(Solar,freq=FALSE)

datos1 <- Solar[Solar < mean(Solar)]
ajuste1 <- fitdistrplus::fitdist(datos1, "norm")
datos2 <- Solar[Solar >= mean(Solar)]
ajuste2 <- fitdistrplus::fitdist(datos2, "norm")

histogramaSolar <- hist(Solar, freq = FALSE, breaks = 20, col = "plum", ylim=c(0,0.2))


x <- seq(min(Solar), max(Solar), length.out = 100)
y1 <- dnorm(x, mean = ajuste1$estimate[1], sd = ajuste1$estimate[2])
y2 <- dnorm(x, mean = ajuste2$estimate[1], sd = ajuste2$estimate[2])


lines(x, y1, col = "blue", lwd = 2)
lines(x, y2, col = "red", lwd = 2)

legend("topright", legend = c("Curva 1", "Curva 2"), col = c("blue", "red"), lwd = 2)

u6<-mean(Solar)
u6
## [1] 14.436
sigma6<-sd(Solar)
sigma6
## [1] 8.328353
FO6<-histogramaSolar$counts
FO6
##  [1]  8 23 41 30 35 39 29 18 17  9 22 21 28 27 17  2
P6<-(pnorm(histogramaSolar$breaks[2],u6,sigma6))-
  (pnorm(histogramaSolar$breaks[1],u6,sigma6))
FE6<-P6*length(Solar)
FE6
## [1] 9.579907
FE6<-c()
for (i in 1:16) {
  P<-(pnorm(histogramaSolar$breaks[i+1],u6,sigma6))-
    (pnorm(histogramaSolar$breaks[i],u6,sigma6))
  FE6[i]<-P*length(Solar)
}
FE6
##  [1]  9.579907 13.688236 18.467489 23.525703 28.297752 32.139265 34.466306
##  [8] 34.900237 33.368511 30.124518 25.679000 20.668584 15.707889 11.271954
## [15]  7.637561  4.886342
FO6
##  [1]  8 23 41 30 35 39 29 18 17  9 22 21 28 27 17  2
cor(FO6,FE6)
## [1] 0.3377773
X2_6<-sum((FO6-FE6)**2/FE6)
X2_6
## [1] 116.0937
chi_cri <- qchisq(0.99, 9)
chi_cri
## [1] 21.66599
X2_6>chi_cri
## [1] TRUE
#CONCLUSIONES

#Aunque la radiación solar puede ser modelada con una distribución
#normal, el modelo no se ajusta bien a los datos. La media aritmética
#es de 14.436 y la desviación estándar es de 8.328. La correlación entre 
#las frecuencias observadas y esperadas es de 0.3378, indicando un mal 
#ajuste del modelo. La prueba de Chi-cuadrado confirma que el modelo
#normal no es adecuado para describir estos datos.

#Modelo Exponencial Precipitación
HistPreci <- hist(Precipitacion,freq=FALSE)

summary(Precipitacion)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   0.000   4.391  12.938  17.105  25.707  94.719
lambda <- sd(Precipitacion)
tasa <- 1 / mean(Precipitacion)
HistPreci<- hist(Precipitacion, freq = FALSE, col = "plum", breaks=4)


x <- seq(min(Precipitacion), max(Precipitacion), length.out = 100)
y <- dexp(x, rate = tasa)

lines(x, y, col = "red", lwd = 2)

#TEST
FO<-HistPreci$counts
FO
## [1] 242  85  33   4   2
n <- length(HistPreci$counts)
FE<-c()
for (i in 1:n){
  P<-dexp(HistPreci$breaks[i+1],lambda)-plnorm(HistPreci$breaks[i],lambda)
  FE[i]<-P*length(Precipitacion)
}
FE
## [1]  6.210078e-137  -4.641691e-37  -3.428381e-33  -5.033065e-31  -1.570895e-29
cor(FO,FE)
## [1] 0.413048
#CHI2
X2<-sum(((FO-FE)**2)/FE)
X2
## [1] 9.430478e+140
Vc <- qchisq(0.99, n)
Vc
## [1] 15.08627
X2>Vc
## [1] TRUE
#CONCLUSIONES

#Aunque la precipitación puede modelarse mediante una distribución 
#exponencial con una tasa de 0.0585, el modelo no se ajusta bien a
#los datos. La correlación entre las frecuencias observadas y esperadas
#es de 0.4130, lo que indica un mal ajuste del modelo. La prueba de 
#Chi-cuadrado confirma que el modelo exponencial no es adecuado para 
#describir estos datos.

#Modelo Normal Temperatura Mínima
HistTMin <- hist(TempMin,freq=FALSE)

summary(TempMin)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   2.650   7.260   8.001   8.046   9.024  10.853
sd(TempMin)
## [1] 1.374138
bins <- nclass.Sturges(TempMin)
bins <- round(sqrt(length(TempMin)))
numbreaks <-(bins-12)
breaks <- seq(min(TempMin), max(TempMin), length.out=numbreaks)
hist(TempMin, breaks = breaks)

hist(TempMin, breaks = breaks, freq = FALSE)
lambda <- 1/mean(TempMin)
u3<-mean(TempMin)
u3
## [1] 8.045505
sigma3<-sd(TempMin)
sigma3
## [1] 1.374138
x <- seq(min(TempMin), max(TempMin), 0.01)
curve(dnorm(x,u3,sigma3), col="red", add = TRUE)

FO3<-HistTMin$counts
FO3
## [1]   1   2   7  16  47 110  90  66  27
P3<-(pnorm(HistTMin$breaks[2],u3,sigma3))-(pnorm(HistTMin$breaks[1],u3,sigma3))
FE3<-P3*length(TempMin)
FE3
## [1] 0.0420963
FE3<-c()
for (i in 1:9) {
  P<-(pnorm(HistTMin$breaks[i+1],u3,sigma3))-(pnorm(HistTMin$breaks[i],u3,sigma3))
  FE3[i]<- P*length(TempMin)
  
  
  
  
}
FE3
## [1]  0.0420963  0.5487771  4.2878923 20.1169847 56.7574838 96.4103528 98.6589641
## [8] 60.8238474 22.5780464
FO3
## [1]   1   2   7  16  47 110  90  66  27
cor(FO3,FE3)
## [1] 0.9834224
X2_3<-sum((FO3-FE3)**2/FE3)
X2_3
## [1] 33.85235
chi_c <- qchisq(0.99, 9)
chi_c
## [1] 21.66599
X2_3>chi_c
## [1] TRUE
#CONCLUSIONES
#Aunque la temperatura mínima puede modelarse con una distribución normal 
#con una media aritmética de 8.05 y una desviación estándar de 1.37, 
#la prueba de Chi-cuadrado indica que el modelo normal no es adecuado para
#describir estos datos. A pesar de que el ajuste del modelo normal a los datos
#muestra una buena correlación de 0.9834 entre las frecuencias observadas y 
#esperadas, este modelo no es aceptado según la prueba de Chi-cuadrado.

#REGRESIONES
clima <- data.frame(
  TempMax,
  TempMin,
  Precipitacion,
  Viento,
  Humedad,
  Solar
)
cor(clima, use = "complete.obs")
##                  TempMax    TempMin Precipitacion     Viento    Humedad
## TempMax        1.0000000 -0.2107256    -0.6436932  0.6309984 -0.8656726
## TempMin       -0.2107256  1.0000000     0.4058936 -0.4481641  0.2303578
## Precipitacion -0.6436932  0.4058936     1.0000000 -0.4961352  0.6358255
## Viento         0.6309984 -0.4481641    -0.4961352  1.0000000 -0.7650931
## Humedad       -0.8656726  0.2303578     0.6358255 -0.7650931  1.0000000
## Solar          0.9087046 -0.3665294    -0.7032458  0.7907349 -0.8919654
##                    Solar
## TempMax        0.9087046
## TempMin       -0.3665294
## Precipitacion -0.7032458
## Viento         0.7907349
## Humedad       -0.8919654
## Solar          1.0000000
#REGRESIÓN LINEAL 
#TEMPERATURA MÁXIMA Y RADIACIÓN SOLAR
Solar <- datos$Solar
TempMax <- datos$`Max_Temperature`

x <- Solar
y <- TempMax

plot(x,y,
     col=4, pch=7,
     main="Regresión lineal: Radiación vs Temp. Máxima",
     xlab="Radiación solar (MJ/m2)",
     ylab="Temperatura máxima (°C)")

regresionLineal <- lm(y~x)
summary(regresionLineal)
## 
## Call:
## lm(formula = y ~ x)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.5400 -0.8502 -0.0288  0.7083  3.4930 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 11.223424   0.125508   89.42   <2e-16 ***
## x            0.312869   0.007533   41.53   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.199 on 364 degrees of freedom
## Multiple R-squared:  0.8257, Adjusted R-squared:  0.8253 
## F-statistic:  1725 on 1 and 364 DF,  p-value: < 2.2e-16
abline(regresionLineal, col="red", lwd=2)

# Coeficiente de correlación
r <- cor(x,y)
r
## [1] 0.9087046
# Coeficiente de determinación
r2 <- (r^2)*100
r2
## [1] 82.5744
#REGRESIÓN POTENCIAL
#PRECIPITACIÓN Y HUMEDAD RELATIVA
Precipitation <- datos$Precipitation
Humidity <- datos$`Relative_Humidity`

x <- Precipitation
y <- Humidity

# Evitar log(0)
x <- x[x>0]
y <- y[1:length(x)]

x1 <- log(x)
y1 <- log(y)

regresionPotencial <- lm(y1~x1)
summary(regresionPotencial)
## 
## Call:
## lm(formula = y1 ~ x1)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.42178 -0.02953  0.03940  0.06861  0.21773 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -0.20156    0.00950  -21.22   <2e-16 ***
## x1           0.03715    0.00340   10.93   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.1162 on 348 degrees of freedom
## Multiple R-squared:  0.2555, Adjusted R-squared:  0.2534 
## F-statistic: 119.4 on 1 and 348 DF,  p-value: < 2.2e-16
beta0 <- coef(regresionPotencial)[1]
beta1 <- coef(regresionPotencial)[2]

a <- exp(beta0)
b <- beta1

plot(x,y,
     col=5, pch=7,
     main="Regresión Potencial",
     xlab="Precipitación",
     ylab="Humedad Relativa")

curve(a*x^b, add=TRUE, col="red", lwd=2)

# Pearson
r <- cor(x1,y1)
r2 <- (r^2)*100
r2
## [1] 25.55111
#REGRESIÓN EXPONENCIAL
#RADIACIÓN Y PRECIPITACIÓN
Solar <- datos$Solar
Precipitation <- datos$Precipitation

x <- Solar
y <- Precipitation

y1 <- log(y[y>0])
x <- x[y>0]

regresionExp <- lm(y1~x)
summary(regresionExp)
## 
## Call:
## lm(formula = y1 ~ x)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -6.2994 -0.4646  0.1571  0.8239  2.3664 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  4.381634   0.135666   32.30   <2e-16 ***
## x           -0.163522   0.008468  -19.31   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.273 on 348 degrees of freedom
## Multiple R-squared:  0.5173, Adjusted R-squared:  0.5159 
## F-statistic: 372.9 on 1 and 348 DF,  p-value: < 2.2e-16
beta0 <- coef(regresionExp)[1]
beta1 <- coef(regresionExp)[2]

a <- exp(beta0)
b <- beta1

plot(x,y[y>0],
     col=5, pch=7,
     main="Regresión Exponencial",
     xlab="Radiación solar",
     ylab="Precipitación")

curve(a*exp(b*x), add=TRUE, col="red", lwd=2)

r <- cor(x,y1)
r2 <- (r^2)*100
r2
## [1] 51.72504
#REGRESIÓN LOGARÍTMICA
#RADIACIÓN SOLAR Y PRECIPITACIÓN
x <- Solar
y <- Precipitation

x1 <- log(x[x>0])
y <- y[x>0]

regresionLog <- lm(y~x1)
summary(regresionLog)
## 
## Call:
## lm(formula = y ~ x1)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -26.411  -5.601  -2.247   4.555  51.049 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  56.9616     2.1053   27.06   <2e-16 ***
## x1          -16.2247     0.8231  -19.71   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 11.22 on 364 degrees of freedom
## Multiple R-squared:  0.5163, Adjusted R-squared:  0.515 
## F-statistic: 388.6 on 1 and 364 DF,  p-value: < 2.2e-16
a <- coef(regresionLog)[1]
b <- coef(regresionLog)[2]

plot(x,y,
     col=4, pch=1,
     main="Regresión Logarítmica",
     xlab="Radiación solar",
     ylab="Precipitación")

curve(a + b*log(x), add=TRUE, col="red", lwd=2)

r <- cor(x1,y)
r2 <- (r^2)*100
r2
## [1] 51.63359
#REGRESIÓN POLINÓMICA
#TEMPERATURA MÍNIMA Y VIENTO
TempMin <- datos$`Min_Temperature`
Wind <- datos$Wind

x <- TempMin
y <- Wind

x2 <- x^2
x3 <- x^3

regresionPoli <- lm(y~x+x2+x3)
summary(regresionPoli)
## 
## Call:
## lm(formula = y ~ x + x2 + x3)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.86175 -0.27657 -0.02089  0.29562  0.96121 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)  
## (Intercept) -0.963610   1.131231  -0.852   0.3949  
## x            1.146002   0.491937   2.330   0.0204 *
## x2          -0.130461   0.069292  -1.883   0.0605 .
## x3           0.003896   0.003154   1.235   0.2176  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.3861 on 362 degrees of freedom
## Multiple R-squared:  0.2881, Adjusted R-squared:  0.2822 
## F-statistic: 48.83 on 3 and 362 DF,  p-value: < 2.2e-16
beta0 <- coef(regresionPoli)[1]
beta1 <- coef(regresionPoli)[2]
beta2 <- coef(regresionPoli)[3]
beta3 <- coef(regresionPoli)[4]

plot(x,y,
     col=5, pch=7,
     main="Regresión Polinómica",
     xlab="Temperatura mínima",
     ylab="Viento")

curve(beta0 + beta1*x + beta2*x^2 + beta3*x^3,
      add=TRUE, col="blue", lwd=2)

# Multivariable
y <- datos$Max_Temperature
x1 <- datos$Solar
x2 <- datos$Relative_Humidity

modelo3D <- lm(y ~ x1 + x2)
summary(modelo3D)
## 
## Call:
## lm(formula = y ~ x1 + x2)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.1685 -0.7900 -0.0163  0.6989  3.7443 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 18.79816    1.30693   14.38  < 2e-16 ***
## x1           0.23002    0.01596   14.41  < 2e-16 ***
## x2          -7.12789    1.22462   -5.82 1.29e-08 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.148 on 363 degrees of freedom
## Multiple R-squared:  0.8406, Adjusted R-squared:  0.8397 
## F-statistic: 957.3 on 2 and 363 DF,  p-value: < 2.2e-16
library(scatterplot3d)

s3d <- scatterplot3d(x1, x2, y,
                     pch = 16,
                     cex.symbols = 0.5,
                     highlight.3d = TRUE,
                     type = "p",
                     xlab = "Radiación Solar",
                     ylab = "Humedad",
                     zlab = "Temperatura Máxima",
                     main = "Regresión Múltiple en 3D")

s3d$plane3d(modelo3D, col = "blue")