Parcial 1

Albar Ugalde Hernández

07/Octubre/2021

logocide

EJERCICIO 1

Utilizamos la paquetería readr para llamar a nuestra base de datos y posteriormente se convertirla a un data.frame.

# install.packages("readr")
library(readr)
SSNMX <- read_csv("C:\\Users\\ARRA\\Downloads\\SSNMX_p1.csv")
datos <- as.data.frame(SSNMX)

1.1) Total de sísmos detectados por mes.

Primero convertimos los datos que aparecen en la columna Fecha, de clase character a clase date, para que de esta forma sea más sencillo extraer los meses.

datos$Fecha <- as.Date(datos$Fecha)

Con ayuda del comando ‘%m’ seleccionamos los meses, luego, con ayuda de la función table contamos la frecuencia con la que aparecen cada uno.

meses <- (format(datos$Fecha,'%m'))

Sismos <- as.data.frame(table(meses))
Sismos
##    meses  Freq
## 1     01 21195
## 2     02 20644
## 3     03 19155
## 4     04 17959
## 5     05 17807
## 6     06 18129
## 7     07 17633
## 8     08 17827
## 9     09 21497
## 10    10 18254
## 11    11 18094
## 12    12 18570

1.2) El total de sismos detectados por cada estado de la república.

Observando la columna de “referencia de localización”, las abreviaturas de los estados aparecen al final y separados por una coma, por lo que proseguimos a separar esta cadena de texto en dos vectores con ayuda de la función str_split_fixed de la librería stringr. Proseguimos con 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 matriz “edos”. Presentando la tabla de frecuencia en un marco de datos.

library(kableExtra)
library(stringr,pander)

edos <- str_split_fixed(datos$`Referencia de localizacion`,",", 2)
Sismos_edo <- table(edos[ ,2])
Sismos_edo
## 
##   AGS    BC   BCS  CAMP  CDMX  CHIH  CHIS  COAH   COL   DGO   GRO   GTO   HGO 
##    42  8170  2846    62   285   400 42913   109  5288    61 39249    82   548 
##   JAL   MEX  MICH   MOR     N   NAY    NL   OAX   PUE    QR   QRO   SIN   SLP 
##  6832   583 13979   233     3   263   420 94592  1130    86    15   920   189 
##   SON   TAB  TAMS  TLAX   VER   YUC   ZAC 
##  1309   530   115   120  5159     3   228
kable(Sismos_edo)
Var1 Freq
AGS 42
BC 8170
BCS 2846
CAMP 62
CDMX 285
CHIH 400
CHIS 42913
COAH 109
COL 5288
DGO 61
GRO 39249
GTO 82
HGO 548
JAL 6832
MEX 583
MICH 13979
MOR 233
N 3
NAY 263
NL 420
OAX 94592
PUE 1130
QR 86
QRO 15
SIN 920
SLP 189
SON 1309
TAB 530
TAMS 115
TLAX 120
VER 5159
YUC 3
ZAC 228

1.3) Gráfico circular de frecuencia de los sísmos de acuerdo a la hora del día (0-23 ó 1-24) cuando aconteció

Cargamos la librería ggplot para poder hacer uso de su función gráficadora coord_polar. Separamos los datos de la columna “Hora” en tres secciones, horas, minutos y segundos.

Creamos el data.frame “df_Horas” el cual almacena la frecuencia con la que se repitieron las horas en un formato de 0-23, esto nos indica la cantidad de sismos que se detectaron en dichos bloques de tiempo. La gráfica nos proyecta los lapsos en los que hubo mayor movimiento sísmico.

library(ggplot2)
h <- str_split_fixed(datos$Hora,":", 3)

df_Horas <-data.frame(table(h[,1]))

ggplot(df_Horas, aes(x = Var1, y= Freq, fill = Var1)) +
  geom_bar(aes( y = Freq),
           color = "blue", size = 0.1, stat = "identity") +
  coord_polar(theta = "x") +
  labs(x = "Horas formato 24",
       y = "Frecuencia de sismos", fill = "Horas")

1.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?

En la primer línea añadimos al data.frame “datos”, una columna con las abreviaciones de los estados. La “variableM5” se creó seleccionando los sismos con magnitud mayor o igual a 5 y obtenemos las abreviaciones de los estados en los que sucedieron. El marco de datos “sismos5” contiene los valores de frecuencia con los que se presentaron cada entidad, esto con la ayuda de la función table

Posteriormente ordenamos dicho marco, de forma decreciente tomando en cuenta la cantidad de sismos detectados.

Ya que tenemos el data.frame ordenado, pedimos imprimir los 5 valores que se encuentran al inicio, siendo estos los estados con más cantidad de sismos con magnitud igual o superior a 5.

datos<-data.frame(datos,edos[ ,2])
sismosM5 <- datos$edos...2.[datos$Magnitud >= 5]
sismos5 <- as.data.frame(table(sismosM5))
sismos5_Ordenados <- sismos5[order(sismos5$Freq, decreasing = TRUE), ]
print(head(sismos5_Ordenados, 5))
##    sismosM5 Freq
## 6      CHIS 5701
## 18      OAX 3848
## 9       GRO 2178
## 28      VER  907
## 14     MICH  738

1.5) Realizar un histograma de la magnitud de los sismos detectados en el estado de Chiapas.

Iniciamos filtrando los estados que tengan como identificador " CHIS", el cual indica ser el estado de Chiapas y tomamos las respectivas magnitudes de sus sismos, seguido de una cuenta de la frecuencia de la intensidad de los mismos. Todo esto viéndose reflejado en la variable “b”.

Con ayuda de plot graficamos estos datos.

b <- table(datos$Magnitud[datos$edos...2. == " CHIS"]) 

plot(b,main="Sismos en Chiapas",col.main ="deepskyblue4", col.lab="deepskyblue4", 
     lwd = 5, xlab = "Magnitud",col.axis= "blue",
     ylab="Frecuencia", col = "cyan4")
text(60, 5500, "no calculable", col = "blue")

EJERCICIO 2

Utilizamos la librería readr para poder llamar a nuestra base de datos, la cual nombramos corazón

library(readr)
corazon <- read_csv("C:/Users/ARRA/Desktop/basededatos/corazon (1).csv")

Creamos la matriz X & y, las visualizamos con ayuda de la paquetería pander y la función pandoc.table

library(pander)
X <- cbind(corazon$biking, corazon$smoking)
y <- matrix(corazon$heart.disease)

Calculamos la matriz transpuesta de X

Xtran <- t(X)

Si separamos la función b en dos partes, tales que la primera consista en la inversa de la multiplicación de la matriz transpuesta por la original y la segunda sea la matriz transpuesta por y, las operaciones son las siguientes:

p1 <- solve(Xtran%*%X)
pandoc.table(p1,style = 'grid')
## 
## 
## +------------+------------+
## |  2.61e-06  | -4.984e-06 |
## +------------+------------+
## | -4.984e-06 | 1.606e-05  |
## +------------+------------+
p2 <- Xtran%*%y
pandoc.table(p2,style = 'grid', caption = "Multiplicación de matríz transpuesta con y",
             digits = 2,big.mark = ',')
## 
## 
## +---------+
## | 145,811 |
## +---------+
## | 84,031  |
## +---------+
## 
## Table: Multiplicación de matríz transpuesta con y

\[\mathbf{X} = \left[\begin{array} {rr} 2.61e-06 & -4.984e-06 \\ -4.984e-06 & 1.606e-05 \end{array}\right] \]

Finalmente podemos obtener el valor de b multiplicando ambas partes:

b <- p1 %*% p2
pandoc.table(b)
## 
## ----------
##  -0.03827 
## 
##   0.623   
## ----------