Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Felipe Ossa y Pilar Tello Probabilidad y Estadística: Laboratorio 05 Segundo Semestre 2022 1 / 43
Base de datos RentasMunich.dta
Felipe Ossa y Pilar Tello Probabilidad y Estadística: Laboratorio 05 Segundo Semestre 2022 2 / 43
Manipulación de datos con dplyr
Felipe Ossa y Pilar Tello Probabilidad y Estadística: Laboratorio 05 Segundo Semestre 2022 3 / 43
Instalación dplyr
Felipe Ossa y Pilar Tello Probabilidad y Estadística: Laboratorio 05 Segundo Semestre 2022 4 / 43
filter
Felipe Ossa y Pilar Tello Probabilidad y Estadística: Laboratorio 05 Segundo Semestre 2022 5 / 43
slice
La función slice permite seleccionar un subconjunto de filas de los datos
según la posición de las filas. Lo primero que se le entrega a la función es la
base de datos y luego la posición de las filas que se quieren conservar. En
nuestra base un ejemplo es el siguiente:
slice(data,1:5)
Felipe Ossa y Pilar Tello Probabilidad y Estadística: Laboratorio 05 Segundo Semestre 2022 8 / 43
arrange
arrange(data, cocina, bano, localizacion)
Felipe Ossa y Pilar Tello Probabilidad y Estadística: Laboratorio 05 Segundo Semestre 2022 9 / 43
arrange
arrange(data, cocina, bano, localizacion, calefaccion)
Felipe Ossa y Pilar Tello Probabilidad y Estadística: Laboratorio 05 Segundo Semestre 2022 10 / 43
arrange
Se puede indicar orden descendente con la función desc(). Un ejemplo:
arrange(data, desc(cocina))
Felipe Ossa y Pilar Tello Probabilidad y Estadística: Laboratorio 05 Segundo Semestre 2022 11 / 43
arrange
Felipe Ossa y Pilar Tello Probabilidad y Estadística: Laboratorio 05 Segundo Semestre 2022 12 / 43
select
La función select permite obtener un subconjunto de datos según sus
columnas. Lo primero que se le entrega a la función es la base de datos y
luego las columnas que se quieren mantener. En nuestra base un ejemplo es
el siguiente:
select(data, cocina, bano)
## cocina bano
## 1 Estándar Estándar
## 2 Estándar Premium
## 3 Estándar Estándar
## 4 Estándar Estándar
## 5 Estándar Estándar
## 6 Estándar Estándar
## 7 Estándar Estándar
## 8 Estándar Premium
## 9 Estándar Estándar
## 10 Estándar Estándar
## 11 Estándar Estándar
## 12 Estándar Estándar
## 13 Estándar Estándar
## 14 Estándar Estándar
## 15
Felipe Estándar Estándar
Ossa y Pilar Tello Probabilidad y Estadística: Laboratorio 05 Segundo Semestre 2022 13 / 43
rename
La función rename permite renombrar columnas. Lo primero que se le
entrega a la función es la base de datos y luego el nuevo nombre de las
columnas que se quieren renombrar con su nombre antiguo. En nuestra
base un ejemplo es el siguiente, renombraremos la variable rent por renta:
rename(data, renta=rent)
## localizacion
## 1 Promedio
## 2 Bueno
## 3 Alta
Felipe Ossa y Pilar Tello Probabilidad y Estadística: Laboratorio 05 Segundo Semestre 2022 15 / 43
mutate
La función mutate permite agregar nuevas columnas que son funciones de
las columnas existentes. Lo primero que se le entrega a la función es la base
de datos y luego el nombre de la nueva columna a agregar y su definición.
En nuestra base un ejemplo es el siguiente:
mutate(data, rentam2=rent/area)
## rentam2
## 1 3.456410
## 2 4.201676
## 3 12.267020
## 4 7.254438
## 5 8.321967
Felipe Ossa y Pilar Tello Probabilidad y Estadística: Laboratorio 05 Segundo Semestre 2022 17 / 43
summarise
Felipe Ossa y Pilar Tello Probabilidad y Estadística: Laboratorio 05 Segundo Semestre 2022 18 / 43
sample_n y sample_frac
Felipe Ossa y Pilar Tello Probabilidad y Estadística: Laboratorio 05 Segundo Semestre 2022 19 / 43
sample_n y sample_frac
sample_n(data, size=5)
Felipe Ossa y Pilar Tello Probabilidad y Estadística: Laboratorio 05 Segundo Semestre 2022 20 / 43
sample_n y sample_frac
sample_frac(data, size=0.001)
Felipe Ossa y Pilar Tello Probabilidad y Estadística: Laboratorio 05 Segundo Semestre 2022 21 / 43
Operador Pipe (dplyr)
El operador “Pipe” %>% permite realizar múltiples funciones y operaciones dentro
de la base de datos. Esto permite resumir líneas de código y ocupar menos espacio
en la memoria, porque para aplicar cada función recién aprendida debemos ir
escribiéndola en alguna parte. Lo primero que debemos entregar es la base de
datos y luego separadas por %>% las operaciones a realizar.
data2 <- data %>% filter(rent>600) %>% sample_n(size=5) %>% arrange(desc(rent))
data2
## # A tibble: 4 x 7
## # Groups: bano [2]
## bano cocina n minimo media maximo sd
## <fct> <fct> <int> <dbl> <dbl> <dbl> <dbl>
## 1 Estándar Estándar 2778 40.5 441. 1843. 179.
## 2 Estándar Premium 113 133. 589. 1459. 229.
## 3 Premium Estándar 173 178. 638. 1551. 259.
## 4 Premium Premium 18 286. 777. 1188 231.
Felipe Ossa y Pilar Tello Probabilidad y Estadística: Laboratorio 05 Segundo Semestre 2022 23 / 43
Modelos probabilísticos
Felipe Ossa y Pilar Tello Probabilidad y Estadística: Laboratorio 05 Segundo Semestre 2022 24 / 43
Modelo Log-normal
para x > 0.
En la clase se enseña (sin demostración), que si X tiene distribución
Log-Normal, entonces sus logaritmos tienen distribución normal con media
λ y desviación estándar ζ. ¿Qué quiere decir esto exactamente? ¿Nos
convencería un gráfico?
Felipe Ossa y Pilar Tello Probabilidad y Estadística: Laboratorio 05 Segundo Semestre 2022 25 / 43
Simulación
Felipe Ossa y Pilar Tello Probabilidad y Estadística: Laboratorio 05 Segundo Semestre 2022 26 / 43
Modelo Log-Normal y Normal
Felipe Ossa y Pilar Tello Probabilidad y Estadística: Laboratorio 05 Segundo Semestre 2022 27 / 43
Modelo Log-Normal y Normal
hist(X, freq = FALSE, main = "Muestra Log-Normal", ylim=c(0,0.55))
curve(dlnorm(x, meanlog = lambda, sdlog = zeta),
add = TRUE, col = 2, lwd=2)
Muestra Log−Normal
0.5
0.4
Density
0.3
0.2
0.1
0.0
2 4 6 8 10
Felipe Ossa y Pilar Tello Probabilidad y Estadística: Laboratorio 05 Segundo Semestre 2022 28 / 43
Modelo Log-Normal y Normal
Felipe Ossa y Pilar Tello Probabilidad y Estadística: Laboratorio 05 Segundo Semestre 2022 29 / 43
Modelo Log-Normal y Normal
hist(Y, freq = FALSE, main = "Logaritmos de X", ylim=c(0,1.3))
curve(dnorm(x, mean = lambda, sd = zeta),
add = TRUE, col = 2, lwd=2)
Logaritmos de X
1.2
1.0
0.8
Density
0.6
0.4
0.2
0.0
¿Convencidos?
Felipe Ossa y Pilar Tello Probabilidad y Estadística: Laboratorio 05 Segundo Semestre 2022 30 / 43
Notas acerca del histograma
NOTA: Trabajar con histogramas para generar una distribución empírica puede
tener sus dificultades.
0.020
Density
Density
0.010
0.010
0.000
0.000
0 200 400 600 800 0 20 40 60 80 100
Z Z
0.08
Density
Density
0.04
0.04
0.00
0.00
0 20 40 60 80 100 0 20 40 60 80 100
Z Z
Felipe Ossa y Pilar Tello Probabilidad y Estadística: Laboratorio 05 Segundo Semestre 2022 32 / 43
Notas acerca del histograma
Muchas barras Demasiadas barras
1.5
3.0
2.5
1.0
2.0
Density
Density
1.5
0.5
1.0
0.5
0.0
0.0
2.0 2.5 3.0 2.0 2.2 2.4 2.6 2.8 3.0 3.2
Z Z
Felipe Ossa y Pilar Tello Probabilidad y Estadística: Laboratorio 05 Segundo Semestre 2022 33 / 43
Otro ejemplo
Felipe Ossa y Pilar Tello Probabilidad y Estadística: Laboratorio 05 Segundo Semestre 2022 34 / 43
Parte entera de exponencial
N <- 1000
X <- rexp(N, rate = 1)
hist(X, freq = FALSE, main = "Muestra exponencial", ylim=c(0,0.9))
curve(dexp(x, rate = 1) , add = TRUE, col = 2, lwd=2)
Muestra exponencial
0.8
0.6
Density
0.4
0.2
0.0
0 2 4 6 8
Felipe Ossa y Pilar Tello Probabilidad y Estadística: Laboratorio 05 Segundo Semestre 2022 35 / 43
Parte entera de exponencial
## Y
## 0 1 2 3 4 5 7 8
## 0.636 0.225 0.089 0.031 0.010 0.006 0.002 0.001
p <- 1 - exp(-1)
prob.geometrica <- p*(1-p)ˆ(0:7) # Evaluar de 0 a 7
round(rbind(prob.empirica,prob.geometrica),3)
## 0 1 2 3 4 5
## prob.empirica 0.636 0.225 0.089 0.031 0.010 0.006
## prob.geometrica 0.632 0.233 0.086 0.031 0.012 0.004
## 7 8
## prob.empirica 0.002 0.001
## prob.geometrica 0.002 0.001
Felipe Ossa y Pilar Tello Probabilidad y Estadística: Laboratorio 05 Segundo Semestre 2022 36 / 43
Parte entera de exponencial
plot(prob.empirica, xlab = "X", ylab = "Probabilidad")
points(0:7, prob.geometrica, col = 2, pch = 20, lwd=6)
0.6
0.5
0.4
Probabilidad
0.3
0.2
0.1
0.0
0 1 2 3 4 5 7 8
Felipe Ossa y Pilar Tello Probabilidad y Estadística: Laboratorio 05 Segundo Semestre 2022 37 / 43
Comentarios
Felipe Ossa y Pilar Tello Probabilidad y Estadística: Laboratorio 05 Segundo Semestre 2022 38 / 43
Acerca de esperanzas, sumas o integración. . .
R no es una herramienta algebraica, y opera con valores y vectores finitos.
Por lo tanto, no se pueden calcular límites no triviales de manera exacta.
En suma, no se pueden calcular derivadas, integrales (propias e impropias)
ni series. R tiene programadas funciones que calculan integrales
numéricamente (como pnorm, pgamma, etc.), pero respecto a sumas o
límites infinitos, sólo quedan dos opciones sencillas. Por ejemplo, para
calcular E (X 2 ):
Truncar una secuencia de los valores teóricos
∞
X N
X
E (X 2 ) = k 2 · pX (k) ≈ k 2 · pX (k)
k=1 k=1
Felipe Ossa y Pilar Tello Probabilidad y Estadística: Laboratorio 05 Segundo Semestre 2022 39 / 43
Acerca de esperanzas, sumas o integración. . .
k <- 0:N
probs.k <- dpois(k, lambda = 4) # Calcular cada término
## [1] 116
Felipe Ossa y Pilar Tello Probabilidad y Estadística: Laboratorio 05 Segundo Semestre 2022 40 / 43
Acerca de esperanzas, sumas o integración. . .
## [1] 114.7463
1/N * sum(Xˆ3)
## [1] 114.7463
Felipe Ossa y Pilar Tello Probabilidad y Estadística: Laboratorio 05 Segundo Semestre 2022 41 / 43
Más ejercicios
Z 1
cos(x ) e −x dx
0
Felipe Ossa y Pilar Tello Probabilidad y Estadística: Laboratorio 05 Segundo Semestre 2022 42 / 43
Más ejercicios
Z ∞
1 1 2
x 2 · √ · e − 2 x dx
−∞ 2π
Felipe Ossa y Pilar Tello Probabilidad y Estadística: Laboratorio 05 Segundo Semestre 2022 43 / 43