Esta primera tarea de Estadística Computacional, significa el primer acercamiento a R y RStudio dentro del curso. Para familiarizarnos con el lenguaje y sus posibilidades, se abordan cuatro desafíos comenzando con ejemplos de operadores matemáticos, luego ejemplos de tipos de estructura de datos. El tercer desafío consiste en aplicar lo aprendido en R para desarrollar un juego de piedra, papel o tijeras. Finalmente, el cuarto desafío consiste en seleccionar un dataset, analizar sus datos y graficarlo en R.
10 ejemplos con diferentes operadores matemáticos
# 1 Coseno de 0º
cos(0)
## [1] 1
#2 Seno de 90º
sin(90 * pi/180)
## [1] 1
#3 Tangente de 45º
tan(45 * pi/180)
## [1] 1
#4 Función exponencial
exp(2)
## [1] 7.389056
#5 Logaritmo natural
log(1)
## [1] 0
#6 Factorial de un número
factorial(5)
## [1] 120
#7 Valor absoluto
abs(25-33)
## [1] 8
#8 Aproximación truncada de un número
trunc(9.23)
## [1] 9
#9 Secuencia numérica descendente con operador " : "
4:-4
## [1] 4 3 2 1 0 -1 -2 -3 -4
#10 Secuencia numérica ascendente de pares con "seq"
seq(from = 0, to = 10, by = 2)
## [1] 0 2 4 6 8 10
Realice ejemplos usando otros tipos de estructura de datos: elementos
booleanos, factores, tablas, entre otros.
-> Elementos booleanos de comparación numérica:
# Ocho no es menor que cinco, esta comparación debe retornar False
8 < 5
## [1] FALSE
# Diez sí es mayor que nueve, esta comparación retorna verdadero
10 > 9
## [1] TRUE
-> Operadores lógicos:
# Si a es verdadero y b es falso, a ∧ b es falso
a = TRUE
b = FALSE
a & b # Operador "and"
## [1] FALSE
# Si a es verdadero y b es falso, a ∨ b es verdadero
a | b # Operador "or"
## [1] TRUE
-> Acceder a elementos de una lista:
# Definiendo una lista, podemos acceder a sus elementos especificando la posición
semana = list("lunes", "martes", "miércoles", "jueves", "viernes")
# Primer elemento de la lista
semana[[1]]
## [1] "lunes"
# Segundo elemento de la lista
semana[[2]]
## [1] "martes"
# Podemos actualizar la lista incluyendo un nuevo elemento en la posición 6
semana[[6]] <- "sábado"
# Accedemos al sexto elemento de la lista recién agregado
semana[[6]]
## [1] "sábado"
# Mostramos la lista completa
semana
## [[1]]
## [1] "lunes"
##
## [[2]]
## [1] "martes"
##
## [[3]]
## [1] "miércoles"
##
## [[4]]
## [1] "jueves"
##
## [[5]]
## [1] "viernes"
##
## [[6]]
## [1] "sábado"
# Factores
colorCuadernos <- c("Blanco", "Rojo", "Rojo", "Azul", "Blanco", "Amarillo")
# Tabla de factores
table(colorCuadernos)
## colorCuadernos
## Amarillo Azul Blanco Rojo
## 1 1 2 2
# Consultar elemento -> ¿Hay al menos un cuaderno rojo?
"Rojo" %in% colorCuadernos
## [1] TRUE
# Consultar elemento -> ¿Hay al menos un cuaderno negro?
"Negro" %in% colorCuadernos
## [1] FALSE
El código contempla la elección de parte del usuario de la alternativa con la que jugará, siendo las posibilidades “Piedra”, “Papel” o “Tijeras”. Por contraparte, existe un jugador virtual, en este caso denominado “Computador”, para quien el programa toma una muestra, mediante la función sample de tres alternativas que presenta el juego. Posteriormente, el programa imprimirá la alternativa seleccionada por el usuario, la alternativa del computador y el resultado del juego.
jugar <- function(user_movimiento = c("Piedra", "Papel", "Tijeras")){
machine_movimiento <- sample(c("Piedra", "Papel", "Tijeras"), 1)
cat("Usuario: ", user_movimiento, "\n")
cat("Computador: ", machine_movimiento, "\n")
if ((user_movimiento == "Piedra" & machine_movimiento == "Tijeras") |
(user_movimiento == "Papel" & machine_movimiento == "Piedra") |
(user_movimiento == "Tijeras" & machine_movimiento == "Papel")){
print("¡Has ganado!")
} else if ((machine_movimiento == "Piedra" & user_movimiento == "Tijeras") |
(machine_movimiento == "Papel" & user_movimiento == "Piedra") |
(machine_movimiento == "Tijeras" & user_movimiento == "Papel")){
print("¡Has perdido!")
} else {
print("Empate")
}
}
jugar("Papel")
## Usuario: Papel
## Computador: Piedra
## [1] "¡Has ganado!"
Alternativamente, el programa se puede modificar para que ambas opciones funcionen con la función sample, se esta forma la elección del usuario se vuelve automática, simulando el juego sin necesidad de introducit una elección por escrito.
jugar_auto <- function(movimiento = c("Piedra", "Papel", "Tijeras")){
user <- sample(movimiento, 1)
machine <- sample(movimiento, 1)
cat("Usuario: ", user, "\n")
cat("Computador: ", machine, "\n")
if ((user == "Piedra" & machine == "Tijeras") |
(user == "Papel" & machine == "Piedra") |
(user == "Tijeras" & machine == "Papel")){
print("¡Has ganado!")
} else if ((machine == "Piedra" & user == "Tijeras") |
(machine == "Papel" & user == "Piedra") |
(machine == "Tijeras" & user == "Papel")){
print("¡Has perdido!")
} else {
print("Empate")
}
}
jugar_auto()
## Usuario: Piedra
## Computador: Tijeras
## [1] "¡Has ganado!"
4.1 Seleccionar dataset y cargarlo
data(USPersonalExpenditure)
4.2 Describa el conjunto de datos y explique para que fue o podría
ser utilizado.
(USPersonalExpenditure)
## 1940 1945 1950 1955 1960
## Food and Tobacco 22.200 44.500 59.60 73.2 86.80
## Household Operation 10.500 15.500 29.00 36.5 46.20
## Medical and Health 3.530 5.760 9.71 14.0 21.10
## Personal Care 1.040 1.980 2.45 3.4 5.40
## Private Education 0.341 0.974 1.80 2.6 3.64
El conjunto de datos posee información sobre el gasto personal en Estados Unidos en la categorías de comida y tacabo, hogar, salud, cuidado personal y educación privada para los años 1940, 1945, 1950, 1955 y 1960. La información se estructura en una matriz de 5x5, siendo cada columna un año y cada fila la categoría del gasto.
Información de este tipo podría ser utilizada para determinar tendencias de consumo en una población a lo largo de los años, así como movimientos en las distintas industrias y el mercado. Al mismo tiempo, nos permite comparar las categorías entre sí para determinar las prioridades de una población al momento de gastar su dinero y si estas se modifican a través del tiempo o tras algún evento de relevancia. Analizar este tipo de información podría ser útil al momento de decidir estrategias de mercado y también políticas públicas. Así como poder predecir posibles comportamientos y demanda para el futuro.
¿Cuál es la fuente de los datos?
La fuente es el libro “Almanaque mundial” de 1962
Source: The
World Almanac and Book of Facts, 1962, p. 756
4.3 Describa cada variable, indique a qué tipo de variable corresponde, indique qué valores puede tomar y su unidad de medida.
Las variables son categorías de gasto, en este caso tenemos
cinco:
Gasto en comida y tabaco, gastos del hogar, salud, cuidado
personal, educación privada.
Cada categoría entrega datos para cinco
años: 1940, 1945, 1950, 1955 y 1960.
Los valores son números enteros
positivos incluyendo el cero. Sin embargo, en la información real los
datos van desde 0.341 hasta 86.80.
La unidad de medida es dinero,
puntualmente, miles de millones de dólares.
4.4 Ejecute la función summary(“conjunto_de_datos”). ¿Qué puede
observar?
summary(USPersonalExpenditure)
## 1940 1945 1950 1955
## Min. : 0.341 Min. : 0.974 Min. : 1.80 Min. : 2.60
## 1st Qu.: 1.040 1st Qu.: 1.980 1st Qu.: 2.45 1st Qu.: 3.40
## Median : 3.530 Median : 5.760 Median : 9.71 Median :14.00
## Mean : 7.522 Mean :13.743 Mean :20.51 Mean :25.94
## 3rd Qu.:10.500 3rd Qu.:15.500 3rd Qu.:29.00 3rd Qu.:36.50
## Max. :22.200 Max. :44.500 Max. :59.60 Max. :73.20
## 1960
## Min. : 3.64
## 1st Qu.: 5.40
## Median :21.10
## Mean :32.63
## 3rd Qu.:46.20
## Max. :86.80
La función summary muestra los datos ordenados de menor a mayor, considerando: mínimos, máximos, cuartiles, media y mediana.
4.5 Ejecute la función plot(“conjunto_de_datos”). ¿Qué puede
observar?
Al ejecutar directamente “plot(dataset)” se muestra un gráfico generado con el dataset. Sin embargo, en este caso, al tratarse de una matriz debemos seleccionar qué queremos graficar exactamente. A continuación el gasto en Comida y tabaco a lo largo de los años:
barplot(USPersonalExpenditure[1,], xlab = "Year", ylab = "Food and Tobacco (Billions of dollars)")
El gasto aumenta considerablemente al pasar los años. Lo mismo ocurre en las otras categorías. Debemos considerar también el momento histórico de esta información, al tratarse de la época de la post-guerra tras la Segunda Guerra Mundial en donde EEUU vivió una importante prosperidad y expansión económica.
Historia económica de los Estados Unidos. (2023). Wikipedia, La enciclopedia libre. Recuperado el 24 de abril de 2023 de https://es.wikipedia.org/wiki/Historia_econ%C3%B3mica_de_los_Estados_Unidos
Kabacoff, R. I. (2023). Operators in R. StatMethods. Recuperado el 24 de abril de 2023 de https://www.statmethods.net/management/operators.html
R Core Team. (2023). sample: Random Samples and Permutations. R: A Language and Environment for Statistical Computing. RDocumentation. Recuperado el 24 de abril de 2023 de https://www.rdocumentation.org/packages/base/versions/3.6.2/topics/sample
R Core Team. (2023). R: A language and environment for statistical computing. Reference Index (Version 4.3.0). R Foundation for Statistical Computing. Recuperado el 24 de abril de 2023 de https://cran.r-project.org
USPersonalExpenditure dataset escogido de https://stat.ethz.ch/R-manual/R-devel/library/datasets/html/00Index.html