EJERCICIO 1
Procedemos a usar “readr”, de esta forma podemos hacer uso de nuestra base de datos, posteriormente lo convertimos a un data.frame para manipularlo de mejor forma
library(readr)
SSNMX <- read_csv("C:/Users/ARRA/Downloads/SSNMX_catalogo_19800101_20210924.csv")
datos <- as.data.frame(SSNMX)
View(datos)1.El total de sísmo detectados por mes.
Convertiremos los datos que aparecen en la columna Fecha de tipo character al de clase date, y de esta forma poder extraer los meses.
datos$Fecha <- as.Date(datos$Fecha)después con “%m” seleccionamos los meses, y con la función table podemos contar la frecuencia con la que aparece cada uno.
library(printr)## Registered S3 method overwritten by 'printr':
## method from
## knit_print.data.frame rmarkdown
meses <- (format(datos$Fecha,'%m'))
Sismos <- as.data.frame(table(meses))
Sismos| meses | Freq |
|---|---|
| 01 | 21195 |
| 02 | 20644 |
| 03 | 19155 |
| 04 | 17959 |
| 05 | 17807 |
| 06 | 18129 |
| 07 | 17633 |
| 08 | 17827 |
| 09 | 21497 |
| 10 | 18254 |
| 11 | 18094 |
| 12 | 18570 |
2. El total de sismos detectados por cada estado de la república.
Observando la columna de “referencia.de.localización”, la abreviatura de los estados aprecen al final y separados porcoma, separaremos el texto en dos con ayuda de la función str_split_fixed de la libreria stringr.
Utilizando la función table para que nos cuantifique la frecuencia con la que se detectaron sismos en cada estado, referenciando la columna 2 de la matríz “estados”.
Por último, utilizando “printr” para darle formato a nuestra tabla.
library(kableExtra)
library(stringr,pander)
library(printr)
estados <- str_split_fixed(datos$`Referencia de localizacion`,",", 2)
Sismos_estados <- table(estados[ ,2])
Sismos_estados| AGS | BC | BCS | CAMP | CDMX | CHIH | CHIS | COAH | COL | DGO | GRO | GTO | HGO | JAL | MEX | MICH | MOR | N | NAY | NL | OAX | PUE | QR | QRO | SIN | SLP | SON | TAB | TAMS | TLAX | VER | YUC | ZAC |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 42 | 8170 | 2846 | 62 | 285 | 400 | 42913 | 109 | 5288 | 61 | 39249 | 82 | 548 | 6832 | 583 | 13979 | 233 | 3 | 263 | 420 | 94592 | 1130 | 86 | 15 | 920 | 189 | 1309 | 530 | 115 | 120 | 5159 | 3 | 228 |
3. Gráfico circular de frecuencia de los sísmos de acuerdo a la hora del día (0-23 ó 1-24) cuando aconteció
usamos ggplot y utilizaremos la función graficadora coord_polar. Separamos los datos de la columna “Hora” en tres secciones, horas, minutos y segundos.
Creamos un data.frame “f_horas” el cuál indica la frecuencia con la que se repitieron las horas en un formato de 0-23, dándonos información de la cantidad de sismos que se detectaron en dichos periodos de tiempo.
library(ggplot2)
hr <- str_split_fixed(datos$Hora,":", 3)
f_horas <-data.frame(table(hr[,1]))
ggplot(f_horas, aes(x = Var1, y= Freq, fill = Var1)) +
geom_bar(aes( y = Freq),fill= "darkgoldenrod1",
color = "gray1", size = 0.1, stat = "identity") +
coord_polar(theta = "x") +
labs(x = "Horas 24",
y = "Frec. sismos", fill = "Horas")El gráfico nos proyecta los intervalos de horas en los que hubo mayor movimiento sísmico.
4. Considerando solamente aquellos sismos cuya magnitud fue mayor o igual a 5 ¿cuáles son los 5 estados con mayor cantidad de sísmos?
Al objeto “datos” lo hacemos un data.frame con una Columna con los estados, después creamos “sismosM_I5” para los sismos con una magnitud mayor o igual a 5. Con la función table creamos “sismos5” el cuál nos dice la frecuencia de los sismos con los que se presentaron cada Estado.
Hacemos un ordenamiento decreciente de la cantidad de sismos detectados y mostramos los 5 estados con mayor cantidad de sismos con una magnitud igual o superior de 5.
library(printr)
library(kableExtra)
datos<-data.frame(datos,estados[ ,2])
sismosM_I5 <- datos$estados...2.[datos$Magnitud >= 5]
sismosm5 <- as.data.frame(table(sismosM_I5))
sismosm5_Ord <- sismosm5[order(sismosm5$Freq, decreasing = TRUE), ]## sismosM_I5 Freq
## 6 CHIS 5701
## 18 OAX 3848
## 9 GRO 2178
## 28 VER 907
## 14 MICH 738
Procedemos a usar la función “printr” para darle formato a la tabla:
tablaej4| sismosM_I5 | Freq | |
|---|---|---|
| 6 | CHIS | 5701 |
| 18 | OAX | 3848 |
| 9 | GRO | 2178 |
| 28 | VER | 907 |
| 14 | MICH | 738 |
5. Realizar un histograma de la magnitud de los sísmos detectados en el estado de Chiapas.
Primero identificando el estado de Chiapas el cual tiene la abreviación “CHIS” y agarramos las magnitudes de los sismos de dicho estado, el cual lo asignamos al objeto “Magni”, con ggplot procedemos a realizar el histograma.
Magni <- table(datos$Magnitud[datos$estados...2. == " CHIS"]) ggplot(data.frame(Magni), aes(Var1, Freq) ) +
geom_point(alpha = 0.4, color = "orangered", aes(color = Freq))+
theme(axis.text.x = element_text(face = "bold", angle = 80, hjust = 1, size = 6))EJERCICIO 2
Utilizando los datos disponibles en Moodle llamados corazon, obtener el vector de estimaciones puntuales para los parámetros b cuando X = matriz de variables biking y smoking (498 x 2) y, y = hear.disease (498 x 1).
De nueva cuenta llamamos a la librería “readr” para poder utilizar la base de datos, a la cuál le asignamos el nombre “cora”
library(readr)
cora <- read_csv("C:/Users/ARRA/Downloads/corazon.csv")Procedemos con la matriz X y Y, utilizando “pander” y la herramienta “pandoc.table”
library(pander)
X <- cbind(cora$biking, cora$smoking)
Y <- matrix(cora$heart.disease)Calculamos la matríz transpuesta de X con la función “t( )”
XMT <- t(X)Separamos al objeto “b” en dos, donde la primera (M1) es la inversa de la multiplicación de la matriz transpuesta por la original, y (M2) es la transpuesta por Y.
library(printr)
M1 <- solve(XMT%*%X)
pandoc.table(M1,style = 'rmarkdown')##
## | | |
## |:----------:|:----------:|
## | 2.61e-06 | -4.984e-06 |
## | -4.984e-06 | 1.606e-05 |
M2 <- XMT%*%Y
pandoc.table(M2,style = 'rmarkdown',
digits = 4,big.mark = ',')##
## | |
## |:-------:|
## | 145,811 |
## | 84,031 |
Al multiplicar (M1) por (M2), encontramos los valores de los párametros b:
b <- M1 %*% M2
pandoc.table(b, style= "rmarkdown", justify = 'centre')##
## | |
## |:--------:|
## | -0.03827 |
## | 0.623 |