Tema: Estadistica inferencial de variables cuantitativas continuas

Precipitación

Cargamos las librería

library(PASWR)
## Loading required package: lattice
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(readr)

Carga los datos (Conjunto de datos)

setwd("/cloud/project")
read_csv("weatherdataANTISANA.csv")
## Rows: 366 Columns: 10
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (1): Date
## dbl (9): Longitude, Latitude, Elevation, Max Temperature, Min Temperature, P...
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
## # A tibble: 366 × 10
##    Date       Longitude Latitude Elevation `Max Temperature` `Min Temperature`
##    <chr>          <dbl>    <dbl>     <dbl>             <dbl>             <dbl>
##  1 01/01/2012     -78.1   -0.468      4048              16.1              6.91
##  2 01/02/2012     -78.1   -0.468      4048              15.5              9.23
##  3 01/03/2012     -78.1   -0.468      4048              11.5              8.69
##  4 01/04/2012     -78.1   -0.468      4048              12.0              9.53
##  5 01/05/2012     -78.1   -0.468      4048              11.7              7.90
##  6 01/06/2012     -78.1   -0.468      4048              12.1              7.84
##  7 01/07/2012     -78.1   -0.468      4048              13.1              6.39
##  8 01/08/2012     -78.1   -0.468      4048              11.5              9.76
##  9 01/09/2012     -78.1   -0.468      4048              12.9             10.1 
## 10 01/10/2012     -78.1   -0.468      4048              13.4              8.41
## # ℹ 356 more rows
## # ℹ 4 more variables: Precipitation <dbl>, Wind <dbl>,
## #   `Relative Humidity` <dbl>, Solar <dbl>
datos3 <- read.csv("weatherdataANTISANA.csv", header = T, sep = ",", dec = ".")

EXTRAER LA VARIABLE CONTINUA

Precipitacion<-datos3$Precipitation
hist(Precipitacion,freq = FALSE,main = "Gráfica No.7.1: Modelo de probabilidad - Exponencial", xlab = "Precipitacion (mm)", ylab = "Densidad de probabilidad")

 library(MASS)
## 
## Attaching package: 'MASS'
## The following object is masked from 'package:dplyr':
## 
##     select
#Realizamo la gráfica

histograma<-hist(Precipitacion,freq = FALSE,main="Gráfica 7.2.Modelo de probabilidad exponencial",
                 xlab="Precipitacion (mm)",ylab="Densidad de probabilidad",col="salmon")

Conjeturamos el modelo

# Histograma con densidades
hist(Precipitacion, freq = FALSE,
     main = "Gráfico N° 7.3:Modelo de probabilidad - Exponencial",
     xlab = "Precipitación (mm)", ylab = "Densidad de probabilidad",
     col = "salmon", border = "white")

# Parámetro lambda
lambda <- 1 / mean(Precipitacion)

# Curva de la distribución exponencial
x <- seq(0, max(Precipitacion), length.out = 1000)
y <- dexp(x, lambda)

# Dibujar la curva sobre el histograma
lines(x, y, col = "skyblue3", lwd = 2)

Entonces, se observa el modelo, para comprobar la correlación entre la frecuencia observada (muestra) y la frecuencia esperada (población),se realizan los test de Pearson y de Chi-cuadrado que son muy eficácez al momento de evaluar un modelo.

 #Frecuencia simple observada
Fo<-histograma$counts
Fo
##  [1] 150  92  58  27  23  10   4   0   1   1
#Frecuencia simple esperada
P<-c(0)
for (i in 1:10) 
{P[i] <-(pexp(histograma$breaks[i+1],lambda)-
           pexp(histograma$breaks[i],lambda))}
Fe<-P*length(Precipitacion)
sum(Fe)
## [1] 364.9422

Test de Pearson

Mide el grado de correlación entre la frecuencia observada y la frecuencia esperada.

plot(Fo,Fe, main="Gráfica 7.4:Correlación de las frecuencias del modelo exponencial",col="skyblue3",xlab = "Frecuencia Observada",ylab="Frecuencia Esperada")

Correlación<-cor(Fo,Fe)*100
Correlación
## [1] 99.55792

Test de Chi-Cuadrado El test de Chi-Cuadrado utiliza dos parámetro: grados de libertad (se refiere al numero de valores libres de variar dentro de intervalos de la variable, k-1), y nivel de significancia (probabilidad de cometer un error, valores de 0.05,0.1,0.15)¨

#Test de Chi-Cuadrado
#Grados de libertad
grados_libertad <- length(histograma$counts)-1
grados_libertad
## [1] 9
# Nivel de significancia
nivel_significancia <- 0.05


#Frecuencia Observada porcentual
Fo<-((histograma$counts)/length(Precipitacion))*100
Fo
##  [1] 40.983607 25.136612 15.846995  7.377049  6.284153  2.732240  1.092896
##  [8]  0.000000  0.273224  0.273224
sum(Fo)
## [1] 100
#Frecuencia esperada
Fe<-P*100
Fe
##  [1] 44.2693744 24.6715993 13.7496366  7.6627585  4.2705033  2.3799782
##  [7]  1.3263767  0.7391980  0.4119597  0.2295877
sum(Fe)
## [1] 99.71097
x2<-sum((Fe-Fo)^2/Fe)
x2
## [1] 2.420161
# Calcular el umbral de aceptación
umbral_aceptacion <- qchisq(1 - nivel_significancia, grados_libertad)
umbral_aceptacion
## [1] 16.91898
x2<umbral_aceptacion
## [1] TRUE

RESUMEN TEST DE BONDAD

Variable<-c("Precipitación (mm)")
tabla_resumen<-data.frame(Variable,round(Correlación,2),round(x2,2),round(umbral_aceptacion,2))
colnames(tabla_resumen)<-c("Variable","Test Pearson (%)","Chi Cuadrado","Umbral de aceptación")
library(knitr)
kable(tabla_resumen, format = "markdown", caption = "Tabla 1.Resumen de test de bondad al modelo de probabilidad")
Tabla 1.Resumen de test de bondad al modelo de probabilidad
Variable Test Pearson (%) Chi Cuadrado Umbral de aceptación
Precipitación (mm) 99.56 2.42 16.92

Cálculo de probabilidades

¿Cuál es la probabilidad de que la cantidad de precipitación este entre 0 mm a 10 mm de agua ?

probabilidad <- pexp(10, lambda) - pexp(0, lambda)
probabilidad * 100
## [1] 44.26937
# Curva de densidad exponencial
plot(x, dexp(x, lambda), col = "skyblue3", lwd = 2,
     xlim = c(0, 100),
     main = "Gráfica 7.5:Modelo de probabilidad exponencial - Probabilidad entre 0 y 10 mm",
     ylab = "Densidad de probabilidad",
     xlab = "Precipitación (mm)")

# Definir el rango de la sección (0 a 10 mm)
x_section <- seq(0, 10, by = 0.1)
y_section <- dexp(x_section, lambda)

# Pintar la sección de la curva
lines(x_section, y_section, col = "red", lwd = 2)

# Pintar el área debajo de la curva en rojo semitransparente
polygon(c(x_section, rev(x_section)),
        c(y_section, rep(0, length(y_section))),
        col = rgb(1, 0, 0, 0.6))

# Añadir leyenda
legend("topright",
       legend = c("Modelo exponencial", "Área de probabilidad (0-10 mm)"),
       col = c("skyblue3", "red"),
       lwd = 2, pch = c(NA, 15))

# Calcular y mostrar la probabilidad
probabilidad <- pexp(10, lambda) - pexp(0, lambda)
cat("Probabilidad entre 0 y 10 mm:", round(probabilidad * 100, 2), "%\n")
## Probabilidad entre 0 y 10 mm: 44.27 %

Teorema de límite central

El teorema de límite central nos indica que, aunque las variables individuales no sigan una distribución normal, la distribución de las medias aritméticas de n conjuntos muestrales, ses normal, y por lo tanto, podemos obtener la media poblacional mediante intervalos de confianza

# Nuestra media aritmetica muestral es nuestro "u"
x<-mean(Precipitacion)
x
## [1] 17.10453
sigma<-sd(Precipitacion)
sigma
## [1] 16.11552
#P(x-2e<u<x+2e)=95%
e<-sigma/sqrt(length(Precipitacion))
e
## [1] 0.8423717
li<-x-2*e
li
## [1] 15.41979
ls<-x+2*e
ls
## [1] 18.78928
tabla_media<-data.frame(round(li,2),x,round(ls,2),e)
colnames(tabla_media)<-c("Limite Inferior","Media poblacional","Límite superior", "Desviación estándar poblacional")
library(knitr)
kable(tabla_media, format = "markdown", caption = "Tabla 7.2: media poblacional de la precipitación de cada uno de los registros de clima en el volcán Antisana")
Tabla 7.2: media poblacional de la precipitación de cada uno de los registros de clima en el volcán Antisana
Limite Inferior Media poblacional Límite superior Desviación estándar poblacional
15.42 17.10453 18.79 0.8423717

CONCLUSIONES: La variable precipitación (mm) sigue un modelo de probabilidad exponencial aprobando los test de Pearson y Chi-Cuadrado, de esta manera, logramos calcular probabilidades, como por ejemplo, que al seleccionar aleatoriamente una cantidad de precipitación en el volcán Antisana la probabilidad de que su precipitación este entre 0 (mm) y 10 (m) es del 44.26%, y, mediante el teorema de límite central, sabemos que, su media aritmética poblacional se encuentra entre 15.42 (mm) y 18.79 (mm) con una confianza del 95%.

.