Variable Cuantitativa Discreta
Magnitud
La magnitud, según la escala de Richter, es una medida logarítmica que indica la energía liberada por un sismo.
Importamos el archivo “Magnitud_Map.csv” desde una ruta local y lo almacena en el objeto Magnitud, usando espacios o tabulaciones como separador.
Calculamos las Frecuencias Simple (absoluta (ni) y relativa (hi))
## [1] 1 2 3 5 15 44 64 115 179 221 292 323 404 979 1251
## [16] 1668 1863 1844 1804 1588 1266 976 718 519 395 328 221 182 136 89
## [31] 77 39 46 27 32 14 21 9 4 6 6 4 5 5 2
## [46] 2 2 1 3 2 2 1
## [1] 17805
## [1] 1
#Agregar Totales:
total_ni <- sum(ni)
total_hi <- 100 #Dado que los porcentajes de frecuencia relativa ya suman 100"
# Agregar fila 'Total' a la tabla de frecuencia de tipo de magnitud
TDFMagnitudCompleto<-rbind(TDFMagnitudFin, data.frame(mag_map= "Total",
Fecuencia. = total_ni, hi = total_hi
))
TDFMagnitudCompleto# Gráficas
# DIAGRAMA DE BARRAS LOCAL ni
barplot(TDFMagnitudFin$Fecuencia.,
main = "Gr\u00E1fica N\u00BA 86: Frecuencia de la magnitud de los sismos del subcontinente indio",
xlab = "Magnitud",
ylab = "Cantidad",
names.arg = TDFMagnitudFin$mag_map,
las = 2,
col = "red",
cex.names = 1)# DIAGRAMA DE BARRAS LOCAL hi
barplot(TDFMagnitudFin$hi,
main = "Gr\u00E1fica N\u00BA 87: Porcentaje de la magnitud de los sismos del subcontinente indio",
xlab = "Mapeo de magnitud 0-51",
ylab = "Probabilidad",
names.arg = TDFMagnitudFin$mag_map,
las = 2,
col = "red")## [1] 17.63814
## [1] 2.187032e-08 3.857517e-07 3.401970e-06 2.000147e-05 8.819716e-05
## [6] 3.111267e-04 9.146157e-04 2.304588e-03 5.081079e-03 9.957863e-03
## [11] 1.756381e-02 2.816299e-02 4.139522e-02 5.616420e-02 7.075941e-02
## [16] 8.320427e-02 9.172301e-02 9.516605e-02 9.325287e-02 8.656878e-02
## [21] 7.634559e-02 6.412352e-02 5.140997e-02 3.942504e-02 2.897434e-02
## [26] 2.044213e-02 1.386774e-02 9.059296e-03 5.706753e-03 3.470913e-03
## [31] 2.040681e-03 1.161091e-03 6.399836e-04 3.420642e-04 1.774522e-04
## [36] 8.942645e-05 4.381433e-05 2.088657e-05 9.694740e-06 4.384542e-06
## [41] 1.933379e-06 8.317364e-07 3.492924e-07 1.432760e-07 5.743456e-08
## [46] 2.251197e-08 8.631938e-09 3.239389e-09 1.190350e-09 4.284806e-10
## [51] 1.511520e-10 5.227527e-11
#mag original
mag_org<-c(2.6, 2.7, 2.9, 3.0, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 3.7, 3.8, 3.9,
4.0, 4.1, 4.2, 4.3, 4.4, 4.5, 4.6, 4.7, 4.8, 4.9, 5.0, 5.1, 5.2,
5.3, 5.4, 5.5, 5.6, 5.7, 5.8, 5.9, 6.0, 6.1, 6.2, 6.3, 6.4, 6.5, 6.6,
6.7, 6.8, 6.9, 7.2, 7.3, 7.4, 7.5, 7.6, 7.7, 7.8,
8.6, 9.1)
length(mag_org)## [1] 52
# Guardar el valor de la posición 10 en una nueva variable
valor_pos <- floor(mag_org[16])
# Mostrar el resultado
print(valor_pos)## [1] 4
# Ajustar longitudes para que coincidan
n <- min(length(hi), length(P), length(mag_org))
hi_plot <- hi[1:n]
P_plot <- P[1:n]
mag_plot <- mag_org[1:n]
# Diagrama de Barras Comparadas
barplot(rbind(hi_plot, P_plot),
main = "Gr\u00E1fica N\u00BA 88: Modelo de probabilidad Poisson de la magnitud de los sismos del subcontinente indio",
xlab = "Magnitud",
ylab = "Cantidad-Probabilidad",
col = c("red", "blue"),
names.arg = mag_plot,
beside = TRUE)
legend("topright", legend = c("Real", "Modelo"),
fill = c("red", "blue"))## [1] 1
Mide el grado de correlación entre la frecuencia observada y la frecuencia esperada
## [1] 0.9866036
plot(Fo,Fe, main="Gráfica Nº89: Correlación de frecuencias en el modelo Poison
de la Magnitud de los Sismos del Subcontinente Indio",
xlab="Observado (hi)", ylab="Esperado (P)")
abline(lm(Fe ~ Fo), col="red",lwd=2)Extraemos valores comunes mediante el diagarama de caja y bigotes
Earthquakes <- read.csv("C:/Users/HP/Desktop/Proyecto Sismos de la India/Earthquakes.csv", header = TRUE, sep=";" , dec=".")
Magnitud<-Earthquakes$mag
n <- length(Magnitud)
MagCaja<-Earthquakes$mag
cajaBigotes <- boxplot(MagCaja, horizontal = TRUE, col = "brown",
main = "Gr\u00E1fica N\u00BA90: Distribuci\u00F3n de la Magnitud de los Sismos del Subcontinente Indio",
xlab = "Magnitud")#calculo del boxplot
bp<-boxplot(MagCaja, plot=FALSE )
#extraer los valores atipicos
outliers<-bp$out
Lamba3<-mean(outliers)
#extraer los valores comunes
ValoresMag<-MagCaja
MagComun<-ValoresMag[!ValoresMag %in% outliers]## [1] 17021
## [1] 1
#Graficas
#DIAGRAMA DE BARRAS LOCAL ni
barplot(TDFFin$ni1, main="Gráfica Nº91: Frecuencia de la Magnitud
de los Sismos del Subcontinente Indio",
xlab="Magnitud", ylab="Cantidad", names.arg =TDFFin$MAGNITUD_COMUN,
las=2, col="red", cex.names=1)#DIAGRAMA DE BARRAS LOCAL hi
barplot(TDFFin$hi1, main = "Gráfica Nº92: Porcentaje de la Magnitud
de los Sismos del Subcontinente Indio", xlab="Mapeo de magnitud ", ylab="Probabilidad",
names.arg = TDFFin$MAGNITUD_COMUN, las=2, col="red")## [1] 17021
## [1] 1
# DIAGRAMA DE BARRAS LOCAL ni
barplot(TDFFinMagMap$ni2,
main = "Gr\u00E1fica N\u00BA93: Frecuencia de la Magnitud de los Sismos del Subcontinente Indio",
xlab = "Magnitud",
ylab = "Cantidad",
names.arg = TDFFinMagMap$Mapeo_Mag_C,
las = 2,
col = "red",
cex.names = 1)# DIAGRAMA DE BARRAS LOCAL hi
barplot(TDFFinMagMap$hi2,
main = "Gr\u00E1fica N\u00BA94: Porcentaje de la Magnitud de los Sismos del Subcontinente Indio",
xlab = "Mapeo de magnitud",
ylab = "Probabilidad",
names.arg = TDFFinMagMap$Mapeo_Mag_C,
las = 2,
col = "red")## [1] 9.5
## [1] 7.485183e-05 7.110924e-04 3.377689e-03 1.069601e-02 2.540303e-02
## [6] 4.826577e-02 7.642080e-02 1.037139e-01 1.231603e-01 1.300025e-01
## [11] 1.235024e-01 1.066612e-01 8.444010e-02 6.170622e-02 4.187208e-02
## [16] 2.651898e-02 1.574565e-02 8.799038e-03 4.643937e-03 2.321968e-03
## [1] 0.9980376
#mag original
mag_Comun<-c(3.5, 3.6, 3.7, 3.8, 3.9,
4.0, 4.1, 4.2, 4.3, 4.4, 4.5, 4.6, 4.7, 4.8, 4.9, 5.0, 5.1, 5.2,
5.3, 5.4)
length(mag_Comun)## [1] 20
# Guardar el valor de la posición 10 en una nueva variable
valor_pos10 <- floor(mag_Comun[8])
# Mostrar el resultado
print(valor_pos10)## [1] 4
#Diagrama de Barras Comparadas
barplot(rbind(hi2,P2),
main = "Gr\u00E1fica N\u00BA95: Modelo de probabilidad Poisson de la Magnitud de los Sismos del Subcontinente Indio",
xlab = "Magnitud",
ylab = "Cantidad-Probabilidad",
col = c("red", "blue"),
names.arg = mag_Comun,
beside = TRUE)
legend("topright",legend = c("Real", "Modelo"),
fill = c("red", "blue"))## [1] 1
Fe2 <- P2
Correlacion <- cor(Fo2, Fe2) * 100 # Correlacion
Correlacion # corregido de 'Correlación' a 'Correlacion'## [1] 99.54891
plot(Fo2, Fe2, main = "Gr\u00E1fica N\u00BA96: Correlaci\u00F3n de frecuencias en el modelo Poisson de la Magnitud de los Sismos del Subcontinente Indio",
xlab = "Observado (hi)", ylab = "Esperado (P)")
abline(lm(Fe2 ~ Fo2), col = "red", lwd = 2)## [1] 1.805852
## [1] 30.14353
Variable <- c("Magnitud")
tabla_resumen <- data.frame(Variable, round(Correlacion), round(x2_2, 2), round(vc2, 2))
colnames(tabla_resumen) <- c("Variable", "Test Pearson (%)", "Chi Cuadrado", "Umbral de aceptación")
library(knitr)
kable(tabla_resumen, format = "markdown", caption = "Tabla N\u00BA25. Resumen de test de bondad al modelo de probabilidad")## Warning in attr(x, "align"): 'xfun::attr()' está en desuso.
## Utilizar 'xfun::attr2()' en su lugar.
## Ver help("Deprecated")
## Warning in attr(x, "format"): 'xfun::attr()' está en desuso.
## Utilizar 'xfun::attr2()' en su lugar.
## Ver help("Deprecated")
| Variable | Test Pearson (%) | Chi Cuadrado | Umbral de aceptación |
|---|---|---|---|
| Magnitud | 100 | 1.81 | 30.14 |
Aunque las variables individuales no sigan una distribución normal, la distribución de las medias aritméticas de n conjuntos muestrales, es normal, y por lo tanto, podemos obtener la media poblacional mediante intervalos de confianza, con tres postulados principales:
(x-e<u<x+e)=68%
(x-2e<u<x+2e)=95%
(x-3e<u<x+3e)=99%
Donde, x es la media aritmética muestral y es el margen de error (desviación estándar poblacional).
## [1] 4.464157
## [1] 0.4732786
## [1] 0.003546875
## [1] 4.4
## [1] 4.5
## [1] 4.464157
## [1] 0.4732786
## [1] 0.003546875
## [1] 4.4
## [1] 4.5
## [1] 4.464157
## [1] 0.4732786
## [1] 0.003546875
## [1] 4.4
## [1] 4.5
# Unificamos las tablas en un solo data frame
tabla_media_unificada <- data.frame(
Limite_inferior = c(floor(li1 * 10) / 10, floor(li2 * 10) / 10, floor(li3 * 10) / 10),
Media_poblacional = c(Variable, Variable, Variable), # Asegúrate de que Variable tenga la misma longitud
Limite_superior = c(round(ls1, 1), round(ls2, 1), round(ls3, 1)),
Desviacion_estandar_poblacional = c(e1, e2, e3)
)
# Cambiamos los nombres de las columnas
colnames(tabla_media_unificada) <- c("Límite inferior", "Media poblacional", "Límite superior", "Desviación estándar poblacional")
# Cargamos la librería knitr
library(knitr)
# Generamos la tabla unificada
kable(tabla_media_unificada, format = "markdown", caption = "Tabla Nº26. Media poblacional unificada")## Warning in attr(x, "align"): 'xfun::attr()' está en desuso.
## Utilizar 'xfun::attr2()' en su lugar.
## Ver help("Deprecated")
## Warning in attr(x, "format"): 'xfun::attr()' está en desuso.
## Utilizar 'xfun::attr2()' en su lugar.
## Ver help("Deprecated")
| Límite inferior | Media poblacional | Límite superior | Desviación estándar poblacional |
|---|---|---|---|
| 4.4 | Magnitud | 4.5 | 0.0035469 |
| 4.4 | Magnitud | 4.5 | 0.0035469 |
| 4.4 | Magnitud | 4.5 | 0.0035469 |
¿De los sismos ocurridos en el Subcontinente Indio, cual es la probabilidad de que un sismo sea de magnitud 5.2 grados?
## [1] 79.04445
La variable magnitud se gradúa en escala de Richter, siguiendo un modelo de Poisson. Según el análisis realizado, los medios poblacionales se estiman en 4.4, con un límite superior de 4.5 y un grado de confianza del 95%. Esto sugiere que, en promedio, los eventos sísmicos que se registran tienden a ser de una magnitud ligeramente menor a 4.5. Además, la desviación estándar poblacional de 0.003569 representa la variabilidad en las magnitudes observadas, indicando que los valores tienden a estar muy cerca de la media calculada.