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 %"