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   |