Â
Utilizando la información correspondiente a los sismos registrados por el Sistema Sismológico Nacional (SSN) en el periodo 01-01-1980 al 24-09-2021, disponible en http://www2.ssn.unam.mx:8080/catalogo/, calcular:
Para realizar este ejercicio, primero descargué la base de datos de http://www2.ssn.unam.mx:8080/catalogo/ como se menciona en las instrucciones. El periodo elegido fue del 01-01-1980 al 24-09-2021; con tiempo del centro de México; asimismo, consideré todas las magnitudes y profundidades. Este ejercicio 1 pregunta acerca de las entidades federativas de México, es por ello que se seleccionaron todos los estados de México.
Al momento de realizar la descarga nos mencionan que hay 226764 sismos reportados en el periodo seleccionado. Una vez descargados los datos y utilicé la función read.csv
base %>%
group_by(Mes) %>%
summarise("Total de sismos" =n())
## # A tibble: 12 × 2
## Mes `Total de sismos`
## <ord> <int>
## 1 Jan 21195
## 2 Feb 20644
## 3 Mar 19155
## 4 Apr 17959
## 5 May 17807
## 6 Jun 18129
## 7 Jul 17633
## 8 Aug 17827
## 9 Sep 21497
## 10 Oct 18254
## 11 Nov 18094
## 12 Dec 18570
base %>%
group_by(Edo) %>%
summarise("Numero de sismos" =n())
## # A tibble: 32 × 2
## Edo `Numero de sismos`
## <chr> <int>
## 1 AGS 42
## 2 BC 8170
## 3 BCS 2846
## 4 CAMP 62
## 5 CDMX 285
## 6 CHIH 400
## 7 CHIS 42913
## 8 COAH 109
## 9 COL 5288
## 10 DGO 61
## # … with 22 more rows
grafica_df <- base %>%
group_by(Num_Hora) %>%
summarise(Frecuencia = n())
grafica_df$Num_Hora <- as.factor(grafica_df$Num_Hora)
grafica_df %>%
ggplot(aes(Num_Hora, Frecuencia)) +
geom_bar(stat = "identity", fill="#A4C3B2", col="black") +
labs(x="", y="") +
scale_y_continuous(limits = c(0,11000),
breaks = seq(0,11000,1000)) +
coord_polar() +
theme_minimal() +
geom_label(aes(label=Frecuencia)) +
labs(title = "Número de sismos de acuerdo a la hora de acontecimiento")+
theme(axis.text.y = element_blank(),
plot.title = element_text(hjust = .5))
base %>%
mutate(Magnitud = replace(Magnitud, Magnitud=="no calculable", NA),
Magnitud = as.numeric(Magnitud)) %>%
filter(Magnitud >= 5) %>%
group_by(Edo) %>%
summarise("Numero de sismos" = n()) %>%
arrange(desc(`Numero de sismos`)) %>%
top_n(5)
## Selecting by Numero de sismos
## # A tibble: 5 × 2
## Edo `Numero de sismos`
## <chr> <int>
## 1 CHIS 499
## 2 OAX 272
## 3 GRO 185
## 4 BCS 115
## 5 JAL 105
Fueron Chiapas, Oaxaca, Guerrero, Baja California Sur y Jalisco
base %>%
filter(Edo == "CHIS") %>%
mutate(Magnitud = replace(Magnitud, Magnitud=="no calculable", NA),
Magnitud = as.numeric(Magnitud)) %>%
ggplot(aes(Magnitud)) +
geom_histogram(bins = 30, fill= "#4B8F8C") +
theme_minimal() +
labs(x="Magnitud", y="Frecuencia",
title = "Histograma de la magnitud de los sismos detectados en Chiapas")+
theme(plot.title = element_text(size = 15))
## Warning: Removed 5202 rows containing non-finite values (stat_bin).
El método más común para la determinación de la aproximación estadÃsticamente óptima con un conjunto de parámetros dado un grupo de datos, es el método conocido como MÃnimos Cuadrados (por sus siglas en inglés, LS), y fue propuesto hace aproximadamente dos siglos por Carl Friedrich Gauss. AsÃ, en el caso más simple de la regresión lineal (\(y =b_0 + b_1X\)), se busca minimizar la suma de cuadrados en el vector de residuales e. Esta función objetivo de mÃnimos cuadrados puede ser escrita en su forma compacta de la siguiente manera:
\[f(b)=e^Te\] \[f(b)=(y-Xb)^T(y-Xb)\] \[f(b)=y^Ty-2y^TXb+bX^TXb\]
Calculando las derivadas parciales respecto a los parámetros b, e igualando dicha derivada a 0, se obtiene el vector de estimaciones puntuales de los parámetros β (o b):
\[b=(X^TX)^{-1}X^Ty\] 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)
Cargué los datos de la siguiente manera:
corazon<-read.csv("/Users/karlajazminlopezpasion/Downloads/corazon.csv")
Para resolver este ejercicio simplemente seguà las fórmulas dadas. Primero creé una matriz X con los datos dados y un vector y. Después hice la transpuesta de la matriz X y la multipliqué por la matriz X original. Después saqué su inversa la cual multipliqué a su vez por \(X^Ty\) lo cual me hizo obtener el vector de estimaciones puntuales
X<-matrix(c(corazon$biking,corazon$smoking),ncol = 2)
y<-c(corazon$heart.disease)
Transpuesta_X<-t(X)
TransporX<-Transpuesta_X%*%X
Matriz_identidad<-diag(1,nrow = 2)
InversaX<-solve(TransporX,Matriz_identidad)
Xty<-Transpuesta_X%*%y
b<-InversaX%*%Xty
b
## [,1]
## [1,] -0.03827376
## [2,] 0.62303710
Estos datos podrÃan respaldar lo que se conoce: fumar puede ocasionar enfermedades del corazón (parámetro positivo de 0.62) mientras que andar en bicicleta (o hacer actividad fÃsica en general) puede ayudar a disminuir el riesgo de tener una enfermedad del corazón (parámetro -0.038)
:)