Variable cualitativa ordinal
Mes
Ese código importa en R el archivo “Mes.csv” como un data frame, indicando que los datos están separados por comas, el punto es el separador decimal y la primera fila contiene los nombres de las columnas.
Extraemos la columna Cantidad del data frame Mes, la guardamos en ni, calculamos su suma total, luego obtienemos el porcentaje (hi) que representa cada valor de ni respecto al total. Después creamos un nuevo data frame llamado TDFMes que incluye las columnas originales más ni y hi.
## [1] 17805
## [1] 100
Filtramos los datos del data frame Mes para seleccionar solo los meses del 1 al 6, creamos un nuevo data frame con esa selección y calculamos las frecuencias relativas de la columna Cantidad en ese subconjunto.
Mes1 <- subset(Mes, Mes >= 1 & Mes <= 6)
tdfmes1<- data.frame(Mes1)
hi1<- tdfmes1$Cantidad/sum(tdfmes1$Cantidad)
hi1
## [1] 0.1542828 0.1702786 0.1933953 0.2122807 0.1497420 0.1200206
barplot(hi1, main = "Gráfica N°80: Distribución de Probabilidad de Mes(1-6)",
xlab = "Mes",
ylab = "Probabilidad",
names.arg = tdfmes1$Mes, col="skyblue")
Calculamos las probabilidades teóricas usando la distribución de Poisson
## [1] 0.11403235 0.19345487 0.21879633 0.18559303 0.12594278 0.07122027
barplot(rbind(hi1,P1), main = "Gráfica N°81: Modelo de probabilidad Poison del Mes de los Sismos del
Subcontinente Indio",
xlab = "Mes",
ylab = "Cantidad-Probabilidad",
names.arg = Mes1$Mes, beside = TRUE, col=c("skyblue", "blue") )
legend("topright",legend = c("Real", "Modelo"),
fill=c("skyblue", "blue"))
Mide el grado de correlación entre la frecuencia observada y la frecuencia esperada.
## [1] 0.1542828 0.1702786 0.1933953 0.2122807 0.1497420 0.1200206
## [1] 0.11403235 0.19345487 0.21879633 0.18559303 0.12594278 0.07122027
plot(Fo1, Fe1, main="Gráfica N°82: Correlación de frecuencias en el modelo Poison
del Mes de los Sismos del Subcontinente Indio",
xlab="Frecuencia Observada", ylab="Frecuencia Esperada")
abline(lm(Fe1 ~ Fo1), col="red",lwd=2)
## [1] 87.58027
El test de Chi-Cuadrado utiliza dos parámetros: grados de libertad (se refiere al número de valores libres de variar dentro de intervalos de la variable, (k-1), y nivel de significancia (probabilidad de cometer un error, valores de 0.05,0.1,0.15)
Para validar el modelo, se compara el valor de chi-cuadrado calculado con el umbral de aceptación de chi-cuadrado correspondiente a los grados de libertad y el nivel de significancia deseado.
Si el valor de chi-cuadrado calculado es mayor que el umbral de aceptación, se rechaza el modelo, indicando que hay una diferencia significativa.
## [1] 0.0617059
## [1] 11.0705
## [1] TRUE
Variable<-c("Mes")
tabla_resumen<-data.frame(Variable,round(Correlación1),round(x2,2),round(vc,2))
colnames(tabla_resumen)<-c("Variable","Test Pearson (%)","Chi Cuadrado","Umbral de aceptación")
library(knitr)
kable(tabla_resumen, format = "markdown", caption = "Tabla Nº25: 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 |
---|---|---|---|
Mes | 88 | 0.06 | 11.07 |
Filtramos los meses de julio a diciembre, creamos un nuevo data frame y calculamos las frecuencias relativas de ese rango.
Mes2 <- subset(Mes, Mes >= 7 & Mes <= 12)
tdfmes2 <- data.frame(Mes2)
hi2<- tdfmes2$Cantidad/sum(tdfmes2$Cantidad)
hi2
## [1] 0.1256932 0.1455330 0.1918669 0.2316697 0.1805299 0.1247073
Distribución de Probabilidad de Mes(7 a 12)
barplot(hi2, main = "Gráfico N°83: Distribución de Probabilidad de Mes(7 a 12)",
xlab = "Mes",
ylab = "Probabilidad",
names.arg = tdfmes2$Mes, col="skyblue")
## [1] 8115
## [1] 1020 1181 1557 1880 1465 1012
## [1] 2
Asignamos valores de X: 0 a (k-1), esto es para que los valores tomen la forma binomial (x = 0,1,2,…)
## [1] 0 1 2 3 4 5
Estimar p a partir de la esperanza E(X) = np
## [1] 2.569932
Aplicar la fórmula: P(X = x) = C(n,x) * p^x * q^(n-x)
barplot(rbind(hi2, P2_binomial), beside = TRUE,
col = c("skyblue", "blue"),
names.arg = tdfmes2$Mes,
main = "Gráfica N°84: Modelo de probabilidad Binomial del Mes de los Sismos del
Subcontinente Indio",
ylab = "Cantidad-Probabilidad", xlab = "Mes")
legend("topright", legend = c("Real", "Modelo"),
fill = c("skyblue", "blue"), cex = 0.5)
plot(hi2, P2_binomial, main = "Gráfica N°85: Correlación de frecuencias en el modelo Binomial
del Mes de los Sismos del Subcontinente Indio",xlab="Frecuencia Observada",
ylab = "Frecuencia Esperada", pch = 19, col = "darkblue")
abline(lm(P2_binomial ~ hi2), col = "red", lwd = 2)
## [1] 94.49864
## [1] 0.6447411
## [1] 11.0705
## [1] TRUE
Variable<-c("Mes")
tabla_resumen<-data.frame(Variable,round(Correlación2),round(x2_2,2),round(vc_2,2))
colnames(tabla_resumen)<-c("Variable","Test Pearson (%)","Chi Cuadrado","Umbral de aceptación")
library(knitr)
kable(tabla_resumen, format = "markdown", caption = "Tabla Nº25.1: 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 |
---|---|---|---|
Mes | 94 | 0.64 | 11.07 |
La variable mes se explica a traves de dos modelos, aprobando los test de pearson y chi-cuadrado, de esta manera, podemos calcular probabilidades, como por ejemplo,la probabilidad de que un sismo ocurra en octubre es del 32%.