Univesidad Central del Ecuador
FIGEMPA-Ingeniería Ambiental
#ESTADISTICA INFERENCIAL
#Lorien Arcentales
#23/12/2025
#Carga de paquetes
library(gt)
library(dplyr)
#Carga de datos
datos<-read.csv("city_day.csv", header = TRUE, dec = ".",
sep = ",")
#Creación de tablas
ciudad<-datos$City
#TDF variable ciudad
TDF_ciudad<-data.frame(table(ciudad))
ni <- TDF_ciudad$Freq
hi <- round((ni / sum(ni)) * 100, 2)
ciudad <- TDF_ciudad$ciudad
TDF_ciudad <- data.frame(ciudad, ni, hi,hi)
Summary <- data.frame(ciudad = "TOTAL", ni = sum(ni),hi = 100,hi=100)
TDF_ciudad <- rbind(TDF_ciudad,Summary)
colnames(TDF_ciudad) <- c("Ciudades", "ni", "hi(%)","P")
# TABLA CREACIÓN
library(gt)
library(dplyr)
TDF_ciudad %>%
gt() %>%
tab_header(
title = md("*Tabla Nro. 1*"),
subtitle = md("**Distribucion de frecuencia de ciudades,estudio calidad del aire en India entre 2015-2020 **")
) %>%
tab_source_note(
source_note = md("Autor: Grupo 2\n Fuente:https://www.kaggle.com/datasets/rohanrao/air-quality-data-in-india")
) %>%
tab_options(
table.border.top.color = "black",
table.border.bottom.color = "black",
table.border.top.style = "solid",
table.border.bottom.style = "solid",
column_labels.border.top.color = "black",
column_labels.border.bottom.color = "black",
column_labels.border.bottom.width = px(2),
row.striping.include_table_body = TRUE,
heading.border.bottom.color = "black",
heading.border.bottom.width = px(2),
table_body.hlines.color = "gray",
table_body.border.bottom.color = "black"
)
| Tabla Nro. 1 | |||
| **Distribucion de frecuencia de ciudades,estudio calidad del aire en India entre 2015-2020 ** | |||
| Ciudades | ni | hi(%) | P |
|---|---|---|---|
| Ahmedabad | 2009 | 6.80 | 6.80 |
| Aizawl | 113 | 0.38 | 0.38 |
| Amaravati | 951 | 3.22 | 3.22 |
| Amritsar | 1221 | 4.13 | 4.13 |
| Bengaluru | 2009 | 6.80 | 6.80 |
| Bhopal | 289 | 0.98 | 0.98 |
| Brajrajnagar | 938 | 3.18 | 3.18 |
| Chandigarh | 304 | 1.03 | 1.03 |
| Chennai | 2009 | 6.80 | 6.80 |
| Coimbatore | 386 | 1.31 | 1.31 |
| Delhi | 2009 | 6.80 | 6.80 |
| Ernakulam | 162 | 0.55 | 0.55 |
| Gurugram | 1679 | 5.69 | 5.69 |
| Guwahati | 502 | 1.70 | 1.70 |
| Hyderabad | 2006 | 6.79 | 6.79 |
| Jaipur | 1114 | 3.77 | 3.77 |
| Jorapokhar | 1169 | 3.96 | 3.96 |
| Kochi | 162 | 0.55 | 0.55 |
| Kolkata | 814 | 2.76 | 2.76 |
| Lucknow | 2009 | 6.80 | 6.80 |
| Mumbai | 2009 | 6.80 | 6.80 |
| Patna | 1858 | 6.29 | 6.29 |
| Shillong | 310 | 1.05 | 1.05 |
| Talcher | 925 | 3.13 | 3.13 |
| Thiruvananthapuram | 1112 | 3.77 | 3.77 |
| Visakhapatnam | 1462 | 4.95 | 4.95 |
| TOTAL | 29531 | 100.00 | 100.00 |
| Autor: Grupo 2 Fuente:https://www.kaggle.com/datasets/rohanrao/air-quality-data-in-india | |||
#Creación de agrupacion de la variable ciudad por tamaño según el número de habitantes, por razón de visualización, analisis y exposición del proyecto
datos$Tamaño<-""
summary(datos$Número.de.habitantes)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 8000 1100000 3900000 8512278 12300000 33800000
for (i in 1:length(datos$Número.de.habitantes)) {
if (datos$Número.de.habitantes[i] > 5000000) {
datos$Tamaño[i] <- "GRANDE"
} else if (datos$Número.de.habitantes[i] < 500000) {
datos$Tamaño[i] <- "PEQUEÑA"
} else {
datos$Tamaño[i] <- "MEDIANA"
}
}
tamañ0<-datos$Tamaño
Grupo <- table(datos$Tamaño)
hi_grupo <- prop.table(Grupo) * 100
TablaAgrupada <- data.frame(
Tamaño = names(Grupo),
ni = as.numeric(Grupo),
hi = round(as.numeric(hi_grupo), 2),
hi = round(as.numeric(hi_grupo), 2)
)
TotalFila <- data.frame(
Tamaño = "TOTAL",
ni = sum(TablaAgrupada$ni),
hi = 100,
hi=100
)
TablaAgrupada <- rbind(TablaAgrupada, TotalFila)
colnames(TablaAgrupada) <- c("Tamaño ciudad", "ni", "hi(%)","P")
#TABLA 2
TablaAgrupada %>%
gt() %>%
tab_header(
title = md("*Tabla Nro. 2*"),
subtitle = md("**Distribucion de frecuencia del Tamaño de las ciudades según el número de habitantes,estudio calidad del aire en India entre 2015-2020 **")
) %>%
tab_source_note(
source_note = md("Autor: Grupo 2\n Fuente:https://www.kaggle.com/datasets/rohanrao/air-quality-data-in-india")
) %>%
tab_options(
table.border.top.color = "black",
table.border.bottom.color = "black",
table.border.top.style = "solid",
table.border.bottom.style = "solid",
column_labels.border.top.color = "black",
column_labels.border.bottom.color = "black",
column_labels.border.bottom.width = px(2),
row.striping.include_table_body = TRUE,
heading.border.bottom.color = "black",
heading.border.bottom.width = px(2),
table_body.hlines.color = "gray",
table_body.border.bottom.color = "black"
)
| Tabla Nro. 2 | |||
| **Distribucion de frecuencia del Tamaño de las ciudades según el número de habitantes,estudio calidad del aire en India entre 2015-2020 ** | |||
| Tamaño ciudad | ni | hi(%) | P |
|---|---|---|---|
| GRANDE | 12865 | 43.56 | 43.56 |
| MEDIANA | 13521 | 45.79 | 45.79 |
| PEQUEÑA | 3145 | 10.65 | 10.65 |
| TOTAL | 29531 | 100.00 | 100.00 |
| Autor: Grupo 2 Fuente:https://www.kaggle.com/datasets/rohanrao/air-quality-data-in-india | |||
#GDF local cantidad y porcentaje
TablaPlot <- TablaAgrupada[TablaAgrupada$`Tamaño ciudad` != "TOTAL", ]
barplot(
TablaPlot$ni,
names.arg = TablaPlot$`Tamaño ciudad`,
main = "Grafica Nro 1: Distribución del Tamaño de las ciudades según su número de habitantes,
estudio calidad del aire en India, entre 2015-2020 ",
xlab = "Tamaño ciudades",
ylab = "Cantidad",
col = c("lightblue"),
ylim = c(0,13000),
las = 2,
cex.axis = 0.7,
cex.names = 0.5,
cex.main = 0.7
)
barplot(TablaPlot$`hi(%)`, main = "Gráfica N°2: Distribución porcentual del Tamaño de las ciudades
según su número de habitantes, estudio calidad del aire en India, entre 2015-2020 ",
xlab = "Tamaño Ciudades",
ylab = "Porcentaje (%)",
col = "lightblue",
ylim = c(0,50),
las = 2,
cex.names = 0.5,
cex.main = 0.9,
cex.axis = 0.9,
names.arg = TablaPlot$`Tamaño ciudad`)
#GDF probabilidad
TablaPlot <- TablaAgrupada[TablaAgrupada$`Tamaño ciudad` != "TOTAL", ]
barplot(TablaPlot$`P`,
main="Gráfica No. 3:
Distribución de probabilidad del Tamaño de las ciudades
según su número de habitantes, estudio calidad del aire en India, entre 2015-2020 ",
xlab= "Tamaño Ciudades",
ylab="Probabilidad (%) ",
names.arg= TablaPlot$`Tamaño ciudad`,
col = "blue",
cex.names = 0.7,
cex.main = 0.9,
cex.axis = 0.8,
ylim=c(0,100))
#Las ciudades medianas constituyen la categoría más probable, al presentar la mayor frecuencia relativa dentro de la variable nominal tamaño de ciudad.
x <- round((TablaAgrupada$ni[TablaAgrupada$`Tamaño ciudad` == "MEDIANA"] / 29531) * 100, 1)
print(paste("La probabilidad es de:", x, "%"))
## [1] "La probabilidad es de: 45.8 %"