#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")
