Vous êtes sur la page 1sur 16

PROBABILIDAD

(GRUPO 7) (SUBGRUPO 20)


PRIMERA ENTREGA

INTEGRANTES:
Araujo Cuenca Juan Sebastian – Codigo: 1921980430

Tutor Virtual
Mauricio Gomez Vasquez

POLITECNICO GRANCOLOMBIANO INSTITUTO UNIVERSITARIO


Facultad de Ingenieria Industrial
Investigacion Formativa
Colombia 2020

1
Trabajo de Estadística
La distribución de Weibul l

Marzo de 2020

Cargamos la data y las librerías para trabajar


# Import de
librerías
library(readr)
library(dplyr)
library(tidyr)
library(ggplot2)
library(firatheme)

# Cargamos la data y exploramos el dataset (cantidad de variables y registros)


datos <- read_csv("Colombia - Colombia.csv")
glimpse(datos)

## Observations: 133,104
## Variables: 18
## $ Cod_Div <dbl> 5002000, 5002000, 5002000, 5002000, 5002...
## $ Latitud <chr> "5.789.301", "5.789.301", "5.789.301", "...
## $ Longitud <chr> "-7.542.874", "-7.542.874", "-7.542.874"...
## $ Región <chr> "AND", "AND", "AND", "AND", "AND", "AND"...
## $ Departamento <chr> "ANTIOQUIA", "ANTIOQUIA", "ANTIOQUIA", "...
## $ Municipio <chr> "ABEJORRAL", "ABEJORRAL", "ABEJORRAL", "...
## $ Fecha <chr> "8/7/2019", "8/7/2019", "8/7/2019", "8/7...
## $ Hora <time> 14:00:00, 15:00:00, 16:00:00, 17:00:00,...
## $ `Temperatura (°C)` <dbl> 26.0, 25.8, 25.6, 24.0, 22.4, 20.8, 19.9...
## $ `Velocidad del Viento m/s` <dbl> 1.5, 1.5, 1.5, 1.5, 1.3, 1.7, 1.7, 1.7, ...
## $ `Dirección del Viento` <dbl> 158.9, 146.1, 130.6, 110.6, 107.8, 82.9,...
## $ Presión <dbl> 1011.2, 1011.4, 1011.8, 1012.0, 1011.3, ...
## $ `Punto de Rocío` <dbl> 15.7, 17.3, 19.4, 19.4, 18.8, 19.1, 18.4...
## $ `Cobertura total nubosa` <dbl> 50.0, 50.0, 50.0, 50.0, 50.0, 39.2, 50.0...
## $ `Precipitación (mm/h)` <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0...
## $ `Probabilidad de Tormenta` <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0...
## $ Humedad <chr> "53.0", "59.5", "68.3", "75.5", "80.2", ...
## $ Pronóstico <chr> "Parcialmente nublado", "Parcialmente nu...

Desarrollo de la actividad
Numeral 1
Para esta actividad seleccionaremos los departamentos de ANTIOQUIA y BOYACÁ, y solo usaremos las variables
Velocidad del Viento m/s y Temperatura (°C), por lo hacemos:

2
datos <- datos %>%
filter(Departamento %in% c("ANTIOQUIA", "BOYACÁ")) %>%
mutate(Departamento = as.factor(Departamento)) %>%
select(Departamento, `Velocidad del Viento m/s`, `Temperatura
(°C)`)
glimpse(datos)

## Observations: 29,264
## Variables: 3
## $ Departamento <fct> ANTIOQUIA, ANTIOQUIA, ANTIOQUIA, ANTIOQU...
## $ `Velocidad del Viento m/s` <dbl> 1.5, 1.5, 1.5, 1.5, 1.3, 1.7, 1.7, 1.7, ...
## $ `Temperatura (°C)` <dbl> 26.0, 25.8, 25.6, 24.0, 22.4, 20.8, 19.9...
# Un pequeño resumen estadístico de los datos
summary(datos)

## Departamento Velocidad del Viento m/s Temperatura (°C)


## ANTIOQUIA:14750 Min. :0.100 Min. : 2.40
## BOYACÁ :14514 1st Qu.:1.100 1st Qu.:12.40
## Median :1.500 Median :15.60
## Mean :1.556 Mean :16.42
## 3rd Qu.:1.900 3rd Qu.:20.10
## Max. :6.300 Max. :36.80
Ahora hacemos los histogramas correspondientes para estas dos variables en los dos de partamentos.
Para la variable Velocidad del viento m/s:
ggplot(data = datos %>% filter(Departamento == "ANTIOQUIA"),
aes(x = `Velocidad del Viento m/s`)) +
geom_histogram(breaks = seq(0, 6.4, by = 0.2)) +
labs(x = "Velocidad del Viento (m/s) para
Antioquia",
y = "Conteo") +
scale_x_continuous(breaks = seq(0, 6.4, by = 0.8)) +
scale_y_continuous(breaks = seq(0, 4000, by = 400))
+ theme_fira(family = "Fira Sans")
Conteo
2400

2000

1600

1200

800

400

0.0 0.8 1.6 2.4 3.2 4.0 4.8 5.6 6.4


Velocidad del Viento (m/s) para Antioquia
ggplot(data = datos %>% filter(Departamento == "BOYACÁ"),
aes(x = `Velocidad del Viento m/s`)) +
geom_histogram(breaks = seq(0, 6.4, by = 0.2)) +
labs(x = "Velocidad del Viento (m/s) para
Boyacá",
y = "Conteo") +
scale_x_continuous(breaks = seq(0, 6.4, by = 0.8)) +
scale_y_continuous(breaks = seq(0, 4000, by = 400))
+ theme_fira(family = "Fira Sans")
Conteo
2400

2000

1600

1200

800

400

0
0.0 0.8 1.6 2.4 3.2 4.0 4.8 5.6 6.4
Velocidad del Viento (m/s) para Boyacá
Ahora combinando los dos departamentos apilando las barras:
ggplot(data = datos,
aes(x = `Velocidad del Viento m/s`, fill = Departamento)) +
geom_histogram(breaks = seq(0, 6.4, by = 0.2)) +
labs(x = "Velocidad del Viento
(m/s)", y = "Conteo") +
scale_x_continuous(breaks = seq(0, 6.4, by = 0.8)) +
scale_y_continuous(breaks = seq(0, 10000, by = 800))
+ theme_fira(family = "Fira Sans")
Conteo 4000

3200

2400
Departamento
ANTIOQUIA
BOYACÁ
1600

800

0
0.0 0.8 1.6 2.4 3.2 4.0 4.8 5.6 6.4
Velocidad del Viento (m/s)
Para la variable Temperatura (°C):
ggplot(data = datos %>% filter(Departamento == "ANTIOQUIA"),
aes(x = `Temperatura (°C)`)) +
geom_histogram(breaks = seq(2, 40, by = 1))
+ labs(x = "Temperatura (°C) para
Antioquia",
y = "Conteo") +
scale_x_continuous(breaks = seq(2, 40, by = 4)) +
scale_y_continuous(breaks = seq(0, 4000, by = 200))
+ theme_fira(family = "Fira Sans")
Conteo
1200

1000

800

600

400

200

0
2 6 10 14 18 22 26 30 34 38
Temperatura (°C) para Antioquia
ggplot(data = datos %>% filter(Departamento == "BOYACÁ"),
aes(x = `Temperatura (°C)`)) +
geom_histogram(breaks = seq(2, 40, by = 1))
+ labs(x = "Temperatura (°C) para Boyacá",
y = "Conteo") +
scale_x_continuous(breaks = seq(2, 40, by = 4)) +
scale_y_continuous(breaks = seq(0, 4000, by = 200))
+ theme_fira(family = "Fira Sans")
Conteo 1800

1600

1400

1200

1000

800

600

400

200

2 6 10 14 18 22 26 30 34 38
Temperatura (°C) para Boyacá
Ahora combinando los dos departamentos apilando las barras:
ggplot(data = datos,
aes(x = `Temperatura (°C)`, fill = Departamento)) +
geom_histogram(breaks = seq(2, 40, by = 1)) +
labs(x = "Temperatura
(°C)", y = "Conteo") +
scale_x_continuous(breaks = seq(2, 40, by = 4)) +
scale_y_continuous(breaks = seq(0, 4000, by = 400))
+ theme_fira(family = "Fira Sans")
Conteo
2400

2000

1600

Departamento
1200 ANTIOQUIA
BOYACÁ

800

400

2 6 10 14 18 22 26 30 34 38
Temperatura (°C)
Comparemos la variabilidad de estas variables:
datos_long <- datos %>%
gather(key = "Variable", value = "Valor",
c("Velocidad del Viento m/s", "Temperatura (°C)"))

datos_long %>% group_by(Departamento, Variable) %>%


summarise(Minimo = min(Valor),
Maximo = max(Valor),
Desviacion = sd(Valor),
Varianza = var(Valor),
CV = sd(Valor)/mean(Valor)) %>%
knitr::kable()

Departamento Variable Minimo Maximo Desviacion Varianza CV


ANTIOQUIA Temperatura (°C) 10.9 36.7 4.7097504 22.1817486 0.2406976
ANTIOQUIA Velocidad del Viento m/s 0.2 5.6 0.5841882 0.3412759 0.4422443
BOYACÁ Temperatura (°C) 2.4 36.8 4.0772561 16.6240170 0.3083394
BOYACÁ Velocidad del Viento m/s 0.1 6.3 0.6970873 0.4859307 0.3882963

Es claro que el departamento de Antioqua presenta una mayor variabilidad absoluta en ambas variables, pero
relativamente hablando (coeficiente de variación CV) tenemos que es más la variabilidad de la temperatura
en Boyacá que en Antioquia.

Numeral 2
Hallamos los valores de los parámetros k y c usando las ecuaciones 3 y 4 de la guía las cuales son, respectiva-
mente
σ −1.09 v
k= , c=
v Γ 1 + k1
En este orden de ideas tendríamos:
vars <- datos_long %>% group_by(Departamento, Variable) %>%
summarise(std = sd(Valor),
avg = mean(Valor)) %>%
mutate(k = (std/avg)ˆ(-1.09),
c = avg/gamma(1 + 1/k))

knitr::kable(vars, col.names = c("Departamento", "Variable", "$\\sigma$",


"$\\bar{x}$", "$k$", "$c$"))

Departamento Variable σ x¯ k c
ANTIOQUIA Temperatura (°C) 4.7097504 19.567085 4.722759 21.381573
ANTIOQUIA Velocidad del Viento m/s 0.5841882 1.320963 2.433482 1.489713
BOYACÁ Temperatura (°C) 4.0772561 13.223274 3.605441 14.673299
BOYACÁ Velocidad del Viento m/s 0.6970873 1.795246 2.804220 2.015993

Si consideramos la ecuación 1 de la guía (con X como variable):


!
k
k−1 X
f (X ) = k X exp −
c c c

Y ahora reemplazamos los valores obtenidos y simplificando tendríamos para las dos variables —v y T
(velocidad y temperatura, respectivamente)— en cuestión y los dos departamentos —A y B (Antioquia
y Boyacá, respectivamente)—:
v 1.433482 v 2.433482
fA (v) = 1.6335235 exp −
1.4897135 1.4897135

v 1.8042202 v 2.8042202
fB (v) = 1.3909869 exp −
2.0159933 2.0159933
!
3.7227589 4.7227589
T
fA (T ) = 0.2208799 T exp −
21.3815725
21.3815725
!
2.6054411 3.6054411
T
fB (T ) = 0.2457144 T exp −
14.6732994
14.6732994
Numeral 3
Ahora graficaremos las distribuciones obtenidas para cada departamento y compararemos con los histogramas
del punto 1:
weibull <- function(X, k, c) {
(k/c)*(X/c)ˆ(k-1)*exp(-
(X/c)ˆk)}
X <- seq(0, 6.4, by = 0.05)
f <- weibull(X, k = vars$k[2], c = vars$c[2])
ggplot() +
geom_histogram(
data = datos %>% filter(Departamento == "ANTIOQUIA"),
aes(x = `Velocidad del Viento m/s`, y =
..density..), breaks = seq(0, 6.4, by = 0.2)) +
geom_line(aes(x = X, y = f)) +
labs(x = "Velocidad del Viento (m/s) para
Densidad de probabilidad

Antioquia", y = "Densidad de probabilidad") +


scale_x_continuous(breaks = seq(0, 6.4, by = 0.8))
+ scale_y_continuous(breaks = seq(0, 1, by = 0.2))
+ theme_fira(family = "Fira Sans")

0.8

0.6

0.4

0.2

0.0
0.0 0.8 1.6 2.4 3.2 4.0 4.8 5.6 6.4
Velocidad del Viento (m/s) para Antioquia
X <- seq(0, 6.4, by = 0.05)
f <- weibull(X, k = vars$k[4], c = vars$c[4])
ggplot() +
geom_histogram(
data = datos %>% filter(Departamento == "BOYACÁ"),
aes(x = `Velocidad del Viento m/s`, y =
..density..), breaks = seq(0, 6.4, by = 0.2)) +
geom_line(aes(x = X, y = f)) +
labs(x = "Velocidad del Viento (m/s) para
Boyacá", y = "Densidad de probabilidad") +
scale_x_continuous(breaks = seq(0, 6.4, by = 0.8))
+ scale_y_continuous(breaks = seq(0, 1, by = 0.2))
+ theme_fira(family = "Fira Sans")
Densidad de probabilidad
0.8

0.6

0.4

0.2

0.0

0.0 0.8 1.6 2.4 3.2 4.0 4.8 5.6 6.4


Velocidad del Viento (m/s) para Boyacá
X <- seq(0, 40, by = 0.1)
f <- weibull(X, k = vars$k[1], c = vars$c[1])
ggplot() +
geom_histogram(
data = datos %>% filter(Departamento == "ANTIOQUIA"),
aes(x = `Temperatura (°C)`, y =
..density..), breaks = seq(2, 40, by = 1)) +
geom_line(aes(x = X, y = f)) +
labs(x = "Temperatura (°C) para
Antioquia", y = "Densidad de
probabilidad") +
scale_x_continuous(breaks = seq(2, 40, by = 4)) +
scale_y_continuous(breaks = seq(0, 1, by = 0.02))
+ theme_fira(family = "Fira Sans")
Densidad de probabilidad
0.08

0.06

0.04

0.02

0.00

2 6 10 14 18 22 26 30 34 38
Temperatura (°C) para Antioquia
X <- seq(0, 40, by = 0.1)
f <- weibull(X, k = vars$k[3], c = vars$c[3])
ggplot() +
geom_histogram(
data = datos %>% filter(Departamento == "BOYACÁ"),
aes(x = `Temperatura (°C)`, y =
..density..), breaks = seq(2, 40, by = 1)) +
geom_line(aes(x = X, y = f)) +
labs(x = "Temperatura (°C) para
Boyacá", y = "Densidad de
probabilidad") +
scale_x_continuous(breaks = seq(2, 40, by = 4)) +
scale_y_continuous(breaks = seq(0, 1, by = 0.02))
+ theme_fira(family = "Fira Sans")
Densidad de probabilidad
0.12

0.10

0.08

0.06

0.04

0.02

0.00

2 6 10 14 18 22 26 30 34 38
Temperatura (°C) para Boyacá

Numeral 4
Se tiene que la velocidad más probable para el viento está dada por:
1/k
k−1
vmp = c
k

Entonces para estos dos departamentos tendríamos:


# Para Antioquia
vars$c[2]*((vars$k[2]-1)/vars$k[2])ˆ(1/vars$k[2])

## [1] 1.198548
# Para Boyacá
vars$c[4]*((vars$k[4]-1)/vars$k[4])ˆ(1/vars$k[4])

## [1] 1.722626
Ahora, la ecuación que permite hallar la velocidad del viento que entregaría la máxima energía eólica es:
1/k
k+ 2
vmaxE = c
k

Entonces, aplicada a cada departamento tenemos que


# Para Antioquia
vars$c[2]*((vars$k[2]+2)/vars$k[2])ˆ(1/vars$k[2])

## [1] 1.906154
# Para
Boyacá
vars$c[4]*((vars$k[4]+2)/vars$k[4])ˆ(1/vars$k[4])

## [1]
2.442684
De acuerdo con lo anterior, es claro que el departamento que es más viable para generar energía eólica es
Boyacá pues tiene una media mayor de velocidad del viento (ver tabla del punto 2) con menos variabilidad
(ver tabla del punto 1).

Numeral 5
La distribución acumulada de probabilidad para la distribución de Weibull viene dada por:
!
k
X
F (X ) = 1 − exp −
c

Primero calculamos el percentil 75 para cada departamento:


datos %>% group_by(Departamento) %>%
summarise(p75 = quantile(`Velocidad del Viento m/s`, 0.75))

## # A tibble: 2 x 2
## Departamento p75
## <fct> <dbl>
## 1 ANTIOQUIA 1.6
## 2 BOYACÁ 2
Ahora la probabilidad buscada es:
# Para Antioquia
1 - (1 - exp(-(1.6/vars$c[2])ˆvars$k[2]))

## [1] 0.3042772
# Para Boyacá
1 - (1 - exp(-(2.4/vars$c[4])ˆvars$k[4]))

## [1] 0.1958163
Esto es, del 30.4% y del 19.6% (aprox.), respectivamente para Antioquia y para Boyacá. Esto se explica y
entiende en virtud del hecho de que existe menor variabilidad en la variable velocidad del viento para Boyacá.

Numeral 6
Primero hallamos los percentiles 50 y 70:
datos %>% group_by(Departamento) %>%
summarise(p50 = quantile(`Velocidad del Viento m/s`,
0.50), p70 = quantile(`Velocidad del Viento
m/s`, 0.70))

## # A tibble: 2 x 3
## Departamento p50 p70
## <fct> <dbl> <dbl>
## 1 ANTIOQUIA 1.2 1.5
## 2 BOYACÁ 1.8 2
Ahora la probabilidad buscada es:
# Para Antioquia
(1 - exp(-(1.5/vars$c[2])ˆvars$k[2])) - (1 - exp(-(1.2/vars$c[2])ˆvars$k[2]))

## [1] 0.1921622
# Para Boyacá
(1 - exp(-(2.0/vars$c[4])ˆvars$k[4])) - (1 - exp(-(1.8/vars$c[4])ˆvars$k[4]))

## [1] 0.1068961
Esto es, del 19.2% y 10.7% (aprox.) para Antioquia y Boyacá, respectivamente.

Vous aimerez peut-être aussi