####################################
#Tarea del curso "ESTADISTICA-R"
####################################
# "La climatologia en el Volcan Antizana"
# Planteamiento de problema: 
#Atravez del analisis estadistico podemos obtener  un conjunto de datos climatologicos que nos ayuda a extraer ingformacion until para la toma de decisiones 
#Como caso de estudio consideramos el Volcan Antizana con datos obtenidos de globalweather.tamu.edu
#sitio web del clima global que permite la descarga de datos de precipitacion,
#temperatura, viento, humedad, y radiacion solar

#localizacion:
#latitud -0.4683
#longitud -78.125
library(magick)
## Linking to ImageMagick 6.9.9.14
## Enabled features: cairo, freetype, fftw, ghostscript, lcms, pango, rsvg, webp
## Disabled features: fontconfig, x11
setwd("~/elevacion")
image_read("Infografia-PARQUEANTISANA-A.jpg")

 #OBJETIVOS
#APLICAR LA ESTADISTICA PARA EL ANALIZIS DE DATOS HACERCA DE LA CLIMATOLOGIA EN EL VOLCAN ANTIZANA MEDIANTE HERRRAMIENTAS COMPUTACIONALES
#CONOCER LA SITUACION ACTUAL Y COMPORTAMIENTO DEL CLIMA ATRAVEZ DE LOS DATOS GENERADOS Y ESTABLECER RELACIONES ENTRE VARIABLES CON EL FIN DE REALIZAR ESTIMACIONES
#EMPLEAR UN MODELO DE PROBABIBILIDAD PARA GENERALIZAR PARA OBETENER CONCLUSIONES DE LA POBLACION A PARTIR DE LOS RESULTADOS DE LA MUESTRA 
#POBLACION
#Todo el aire de zona del volcan antisana 
#U={x/x es RegistroClima ^ ubicacion (x)="volcan antizana"}
#INDIVIDUO
#Cada una de las mediciones o registros de clima de la zona del volcan antizana 
#xi:i=1,............., inf
#M={c1,c2,......, c366}
#n=366
#VARIABLES
#temperatura (ā„ƒ)
#precipitacion(mlH20)
#velocidad del viento(m/s)
#humedad relativa
#radiacion solar (J/m²)
#DESCRIPCIONES
#Sensacion de calor 
#Caida de lluvia
#Rapides de las rafagas de aitre
#Presencia de vapor de agua en el aire
#Cantidad de energia que proviene del sol por unidad de area 
#TIPO
#Cuantitativa Dominio: R u {0} Rango:[8.20:23.79]  Instrumento de medicion: termometro Unidades de medida: ā„ƒ,              Escala:(relativo)
#Cuantitativa Dominio:R+ u {0} Rango:[0.01:94.72]  Instrumento de medicion: plubiometro Unidades de medida: mlH20,          Escala:(absoluto razon)
#Cuantitativa Dominio:R+ u {0} Rango:[0.59:2.99]   Instrumento de medicion: amenometro Unidades de medida:m/s,              Escala: (razon)
#Cuantitativa Dominio:[0,1]    Rango:[0.56: 0.99]  Instrumento de medicion: igrometro(relativo no puede superar a 1 o 100), Escala:(razon)
#Cuantitativa Dominio:R+ u {0} Rango:[1.26: 9.99]  Instrumento de medicion: Piranometro Unidades de medida:J/m^2            Escala: (razon)
#SUBTIPO 
#Discreta
#Continua
#Continua
#Discreta
#Continua

setwd("~/elevacion")
TABLA_DE_VARIABLES<-read.csv("Libro2 (Autoguardado).csv", header = TRUE, sep = ";", dec = ".")
View(TABLA_DE_VARIABLES)

#EXTRAER DATOS
datosTemperaturaMax<-TABLA_DE_VARIABLES[ ,5]
datosTemperaturaMin<-TABLA_DE_VARIABLES[ ,6]
datosPrecipitacion<-TABLA_DE_VARIABLES[ ,7]
datosViento<-TABLA_DE_VARIABLES[ ,8]
datosHumedad<-TABLA_DE_VARIABLES[ ,9]
datosSolar<-TABLA_DE_VARIABLES[ ,10]
#RESUMEN DE ESTADISTICA DESCRIPTIVA DE CADA VARIABLE 
library(PASWR)
## Loading required package: e1071
## Loading required package: MASS
## Loading required package: lattice
EDA(datosTemperaturaMax)
## [1] "datosTemperaturaMax"

## Size (n)  Missing  Minimum   1st Qu     Mean   Median   TrMean   3rd Qu 
##  366.000    0.000   10.320   13.415   15.740   15.510   15.655   17.663 
##     Max.   Stdev.     Var.  SE Mean   I.Q.R.    Range Kurtosis Skewness 
##   23.790    2.868    8.223    0.150    4.248   13.470   -0.558    0.387 
## SW p-val 
##    0.000
EDA(datosTemperaturaMin)
## [1] "datosTemperaturaMin"

## Size (n)  Missing  Minimum   1st Qu     Mean   Median   TrMean   3rd Qu 
##  366.000    0.000    2.650    7.258    8.046    8.005    8.090    9.022 
##     Max.   Stdev.     Var.  SE Mean   I.Q.R.    Range Kurtosis Skewness 
##   10.850    1.374    1.888    0.072    1.764    8.200    0.566   -0.434 
## SW p-val 
##    0.000
EDA(datosPrecipitacion)
## [1] "datosPrecipitacion"

## Size (n)  Missing  Minimum   1st Qu     Mean   Median   TrMean   3rd Qu 
##  366.000    0.000    0.010    4.303   17.105   12.940   15.689   25.758 
##     Max.   Stdev.     Var.  SE Mean   I.Q.R.    Range Kurtosis Skewness 
##   94.720   16.115  259.699    0.842   21.455   94.710    1.951    1.295 
## SW p-val 
##    0.000
EDA(datosViento)
## [1] "datosViento"

## Size (n)  Missing  Minimum   1st Qu     Mean   Median   TrMean   3rd Qu 
##  366.000    0.000    0.590    1.420    1.768    1.750    1.765    2.132 
##     Max.   Stdev.     Var.  SE Mean   I.Q.R.    Range Kurtosis Skewness 
##    2.990    0.456    0.208    0.024    0.712    2.400   -0.719    0.110 
## SW p-val 
##    0.003
EDA(datosHumedad)
## [1] "datosHumedad"

## Size (n)  Missing  Minimum   1st Qu     Mean   Median   TrMean   3rd Qu 
##  366.000    0.000    0.560    0.840    0.895    0.940    0.904    0.980 
##     Max.   Stdev.     Var.  SE Mean   I.Q.R.    Range Kurtosis Skewness 
##    0.990    0.109    0.012    0.006    0.140    0.430    0.200   -1.177 
## SW p-val 
##    0.000
EDA(datosSolar)
## [1] "datosSolar"

## Size (n)  Missing  Minimum   1st Qu     Mean   Median   TrMean   3rd Qu 
##  366.000    0.000    1.260    7.245   14.436   12.655   14.305   22.462 
##     Max.   Stdev.     Var.  SE Mean   I.Q.R.    Range Kurtosis Skewness 
##   30.270    8.328   69.360    0.435   15.217   29.010   -1.244    0.297 
## SW p-val 
##    0.000
#CONCLUSION 
#La situavion actual y el comportamiento del clima son explicados mediante las siguientes variables:
#Los valores de la temperatura maxima fluctuan entre 10.32 y 23.790 y su promedio esta alrededor de 15.74 siendo un conjunto de datos homogeneo se acumulan moderadamente en los valores medios de la variable por lo tanto el comportamiento de la variable es beneficioso para la climatologia en el volcan Antizana
#Los valores de la temperatura minima fluctuan entre 2.65 y 10.85 y su promedio esta alrededor de 8 siendo un conjunto de datos heterogeneo se acumulan fuertemente en los valores altos de la variable por lo tanto el comportamiento de la variable es beneficioso para la climatologia en el volcan Antizana
#Los valores de la precipitacion fluctuan entre 0.01 y 94.74 y su promedio esta alrededor de 12.94 siendo un conjunto de datos heterogeneo se acumulan fuertemente en los valores bajos de la variable por lo tanto el comportamiento de la variable es beneficioso para la climatologia en el volcan Antizana
#Los valores de la viento fluctuan entre 0.59 y 2.99 y su promedio esta alrededor de 1.75 siendo un conjunto de datos homogeneo se acumulan moderadamente en los valores medios de la variable por lo tanto el comportamiento de la variable es beneficioso para la climatologia en el volcan Antizana
#Los valores de la Humedad fluctuan entre 0.56 y 0.99 y su promedio esta alrededor de 0.94 siendo un conjunto de datos homogeneo se acumulan moderadamente en los valores bajos de la variable por lo tanto el comportamiento de la variable es beneficioso para la climatologia en el volcan Antizana
#Los valores de la Radiacion Solar fluctuan entre 1.26 y 30.27 y su promedio esta alrededor de 14.43 siendo un conjunto de datos heterogeneo se acumulan moderadamente en los valores medios-bajos de la variable por lo tanto el comportamiento de la variable es beneficioso para la climatologia en el volcan Antizana

#REGRESION LINEAL
names(TABLA_DE_VARIABLES)
##  [1] "Date"              "Longitude"         "Latitude"         
##  [4] "Elevation"         "Max.Temperature"   "Min.Temperature"  
##  [7] "Precipitation"     "Wind"              "Relative.Humidity"
## [10] "Solar"             "X"                 "X.1"              
## [13] "X.2"
attach(TABLA_DE_VARIABLES)
x<-Solar
y<-Max.Temperature

plot(x,y)

regresionlineal<-lm(y~x)
regresionlineal
## 
## Call:
## lm(formula = y ~ x)
## 
## Coefficients:
## (Intercept)            x  
##     11.2237       0.3129
plot(x,y, col=4, pch=7, mail="m")
## Warning in plot.window(...): "mail" is not a graphical parameter
## Warning in plot.xy(xy, type, ...): "mail" is not a graphical parameter
## Warning in axis(side = side, at = at, labels = labels, ...): "mail" is not
## a graphical parameter

## Warning in axis(side = side, at = at, labels = labels, ...): "mail" is not
## a graphical parameter
## Warning in box(...): "mail" is not a graphical parameter
## Warning in title(...): "mail" is not a graphical parameter
abline(regresionlineal, col="red")

coefPearson<-cor(x,y)
coefDeterminacion<-coefPearson^2
coefDeterminacion*100
## [1] 82.57388
#LOGARITMICA
#y= ax^b

plot(Precipitation, Relative.Humidity)

x<-Precipitation
y<-Relative.Humidity
x1<-log(x)
y1<-log(y)

regresionPotencial<-lm(y1~x1) 
regresionPotencial
## 
## Call:
## lm(formula = y1 ~ x1)
## 
## Coefficients:
## (Intercept)           x1  
##    -0.21183      0.05066
#intercepto y pendiente con lm
#y1= -0.2118 + 0.0506 X1
summary(regresionPotencial)
## 
## Call:
## lm(formula = y1 ~ x1)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.28377 -0.02357  0.01426  0.04004  0.23442 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -0.211834   0.004719  -44.89   <2e-16 ***
## x1           0.050661   0.001638   30.94   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.06977 on 364 degrees of freedom
## Multiple R-squared:  0.7245, Adjusted R-squared:  0.7237 
## F-statistic:   957 on 1 and 364 DF,  p-value: < 2.2e-16
beta0<-regresionPotencial$coefficients[1]
#A
beta1<-regresionPotencial$coefficients[2]

b=beta1
a=exp(beta0)
plot(x, y, col=5, pch=7, main="Regresion Potencial", xlab="Precipitacion ", ylab="Humedad relativa (fraccion)")
#pch estilo de punto 
curve(a*x^b, from=0, to=100, add = T, col="red")

#from  to (limites)
#y dom (0,1)
#x todos los reales positivos

#CONCLUCIONES
#Entre la precipitacion y la humedad relativa existe relacion de tipo logaritmica cuya ecuacion matematica es y= 16.2lnx+ 56.96 Los valores de precipitacion deben ser menores a 65.15 ml de agua y la humedad relativa se ve influencianda en un 72.5 con respecto a la precipitacion y el resto se debe a otros factores
#Por ejemplo cuando la preicpitacion vale 30 y la humedad relativa vale 0.95
#El modelo no funciona par la variable precipitacion existen  restricciones,el modelo  es valido solo para (0,65)


#EXPONENCIAL

plot (Solar, Precipitation)

#A MAYOR radiacion menor precipitacion
x<-Solar
y<-Precipitation
y1<-log(y)
regresionExponencial<-lm(y1~x )
regresionExponencial
## 
## Call:
## lm(formula = y1 ~ x)
## 
## Coefficients:
## (Intercept)            x  
##      4.6843      -0.1978
#intercepto y pendiente
beta0<-regresionExponencial$coefficients[1]
beta1<-regresionExponencial$coefficients[2]
b=beta1
a=exp(beta0)
plot(x,y, col=5, pch=7, main="Regresion exponencial", xlab="radiacion", ylab = "Radiacion")
curve(a*exp(b*x), from=0, to=100, add=T, col="red")

#Entre la precipitacion y radiacion existe relacion de tipo exponencial cuya ecuacion mate es y= 0.81x^ 0.0506 donde y  es la precipitacion y x la radiacion en j/m^2 
#donde no existen restricciones y la precipitacion esta influenciada en un  54,6 % por radiacion solar y el resto se debe a otros factores. por ejemplo cuando
#la radiacion solar vale 40 la precipitacion solar se espera que valga 0.96
#LOGARITMICA
plot(Solar, Precipitation)

x<-Solar
y<-Precipitation
x1<-log(x)
regresionLogaritmica<-lm(y~x1 )
regresionLogaritmica
## 
## Call:
## lm(formula = y ~ x1)
## 
## Coefficients:
## (Intercept)           x1  
##       56.96       -16.22
summary(regresionLogaritmica)
## 
## Call:
## lm(formula = y ~ x1)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -26.414  -5.596  -2.253   4.560  51.030 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   56.959      2.105   27.06   <2e-16 ***
## x1           -16.224      0.823  -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=regresionLogaritmica$coefficients[1]
b=regresionLogaritmica$coefficients[2]
  plot(x,y, col=2, pxh=20, main="ggg")
## Warning in plot.window(...): "pxh" is not a graphical parameter
## Warning in plot.xy(xy, type, ...): "pxh" is not a graphical parameter
## Warning in axis(side = side, at = at, labels = labels, ...): "pxh" is not a
## graphical parameter

## Warning in axis(side = side, at = at, labels = labels, ...): "pxh" is not a
## graphical parameter
## Warning in box(...): "pxh" is not a graphical parameter
## Warning in title(...): "pxh" is not a graphical parameter
curve(a+b*log(x), add=T, col="blue")

#conclusion la ecuacion es de tipo logaritmica 
#el que manda es el coeficiente nos mide el grado de realacion asi que nos quedamos con el que tienbe restricciones
#escojo al de mayor coeficiente 

#POLINOMICA
plot(Min.Temperature, Wind)

x<- Min.Temperature
y<-Wind
xcuad<-x^2
xube<-x^3
regresionPolinomica<-lm(y~x+xcuad+xube)
regresionPolinomica
## 
## Call:
## lm(formula = y ~ x + xcuad + xube)
## 
## Coefficients:
## (Intercept)            x        xcuad         xube  
##   -0.964824     1.145996    -0.130405     0.003892
summary(regresionPolinomica)
## 
## Call:
## lm(formula = y ~ x + xcuad + xube)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.86323 -0.27804 -0.02127  0.29799  0.96083 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)  
## (Intercept) -0.964824   1.132537  -0.852   0.3948  
## x            1.145996   0.492405   2.327   0.0205 *
## xcuad       -0.130405   0.069346  -1.881   0.0608 .
## xube         0.003892   0.003156   1.233   0.2184  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.3862 on 362 degrees of freedom
## Multiple R-squared:  0.2878, Adjusted R-squared:  0.2819 
## F-statistic: 48.77 on 3 and 362 DF,  p-value: < 2.2e-16
beta0<- regresionPolinomica$coefficients[1]
beta1<-regresionPolinomica$coefficients[2]
beta2<-regresionPolinomica$coefficients[3]
beta3<-regresionPolinomica$coefficients[4]
a<-beta0
b<-beta1
c<-beta2
d<-beta3
plot(x,y,col=5,pch=7, main="Regresion Polinomica", xlab="Temperatura Minima", ylab= "Viento")
curve((a+(b*x)+(c*x^2)+(d*x^3)), add=T, col= "blue")

coefPearson<-cor(x,y)
coefDeterminacion<-coefPearson^2
coefDeterminacion*100
## [1] 20.06028
#CONCLUSION
#Entre la velocidad del viento y la temperatura minima existe una relacion de tipo polinomica cuya ecuacion matematica es y=-0.965+1.146x-0.13x^2+0.003x^3
#si existen restricciones, el modelo funciona solo entre los valores de y o mayores a la primera raiz  0.93 y menores a 4.1 y mayores a 19.1 de temperatura y la velocidad esta influenciada en un 28.8 % por la temperatura minima y el resto se debe a otros factores 
#cuando la temperatura vale 3 se espera un valor de 1.38 m/s de velocidad del viento



#REGRESIƓN MƚLTIPLE LINEAL
setwd("~/elevacion")
DatosMultiple <- read.csv(file = "3D.csv", header = T, sep = ";",dec =  ".")
names(DatosMultiple)
## [1] "Solar"             "Max.Temperature"   "Relative.Humidity"
View(DatosMultiple)
library(scatterplot3d)
attach(DatosMultiple)
## The following objects are masked from TABLA_DE_VARIABLES:
## 
##     Max.Temperature, Relative.Humidity, Solar
y<-Max.Temperature
x1<-Relative.Humidity
x2<-Solar
scatterplot3d(y,x1,x2)

coefPearson<-cor(y,x1+x2)
coefPearson^2
## [1] 0.8243737
regresionMultiple<-lm(y~x1+x2)
regresionMultiple
## 
## Call:
## lm(formula = y ~ x1 + x2)
## 
## Coefficients:
## (Intercept)           x1           x2  
##     18.8300      -7.1563       0.2297
tempmaxreg<-scatterplot3d(x1,x2,y)

tempmaxeg<- scatterplot3d(x1,x2,y,
main="Regresión Multiple", xlab = "humedad relativa", 
ylab = "temperatura maxima", zlab = "radiacion Solar")
tempmaxreg$plane3d(regresionMultiple)

#y=18.83-7.15 X1 +0.229 X2
#T= 18.83-7.15 HR +0.229 RS

#No existen restricciones
#CONCLUSION
#Entre la temperatura maxima, humedad relativa, y radiacion solar existe una relacion de tipo lineal multiple cuya ecuacion matematica es 
#y=18.83-7.15 X1 +0.229 X2 siendo y la temperatura maxima, x1 la humedad relativa y x2 la radiacion solar (J/m^2) Sin restricciones y la temperatura maxima se ve influenciada en un 82.42 %
#por la combinacion de la humedad relativa y la radiacion solar, por ejemplo cuando tenemos una humedad relativa de 0.5 y radiacion solar de 25 esperamos una temperatura maxima de 20.5 grados centigrados