#Estadística inferencial 
#Variable cualitativa nominal:Zona
#Autor: Llumitasig Daniela 
#Fecha: 10/06/2026

0.- Carga de librerías

library(gt)
library(dplyr)
## 
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(RColorBrewer) 

1.- Carga de datos

datos <- read.csv("~/Estadistica/Proyecto 2026/Datos utilizados/city_day (1).csv",
                  header = TRUE,
                  dec = ".",
                  sep = ",")

2.- Selección de la variable

Zona <- datos$Zona

3.- Frecuencias y probabilidades

# Tabla de distribución de frecuencia y probabilidades 
TDF_Zona <- data.frame(table(Zona))

# Frecuencias y probabilidades
ni <- TDF_Zona$Freq
hi <- round((ni / sum(ni)) * 100, 2)  # Frecuencia relativa porcentual
pi <- round((ni / sum(ni)) * 100, 2)          # Probabilidad porcentual 

Zona <- TDF_Zona$Zona

4.- Tabla de distribución de frecuencias y probabilidades

# Tabla final
TDF_Zona <- data.frame(Zona, ni, hi, pi)

# Fila TOTAL
Summary <- data.frame(
  Zona = "TOTAL",
  ni = sum(ni),
  hi = 100,
  pi = sum(pi)
)

TDF_Zona_suma <- rbind(TDF_Zona, Summary)

colnames(TDF_Zona_suma) <- c("Zona", "ni", "hi(%)", "Pi(%)")

TDF_Zona_suma
##     Zona    ni  hi(%)  Pi(%)
## 1 Centro   289   0.98   0.98
## 2   Este  7873  26.66  26.66
## 3  Oeste 21369  72.36  72.36
## 4  TOTAL 29531 100.00 100.00
TDF_Zona_suma %>%
  gt() %>%
  tab_header(
    title = md("Tabla Nro. 1"),
    subtitle = md("Distribución de frecuencias y probabilidades de la variable Zona para el análisis
                  estadístico de la calidad del aire en la India.")
  ) %>%
  tab_source_note(
    source_note = md("Autor: Grupo 1
                     \n Fuente:https://www.kaggle.com/datasets/rohanrao/air-quality-data-in-india ")
  ) %>%
  # --- Estilos de Borde ---
  tab_style(
    style = cell_borders(sides = "left", color = "black", weight = px(2), style = "solid"),
    locations = cells_body()
  ) %>%
  tab_style(
    style = cell_borders(sides = "right", color = "black", weight = px(2), style = "solid"),
    locations = cells_body()
  ) %>%
  tab_style(
    style = cell_borders(sides = "left", color = "black", weight = px(2), style = "solid"),
    locations = cells_column_labels()
  ) %>%
  tab_style(
    style = cell_borders(sides = "right", color = "black", weight = px(2), style = "solid"),
    locations = cells_column_labels()
  ) %>%
  # --- Opciones Generales de la Tabla ---
  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
Distribución de frecuencias y probabilidades de la variable Zona para el análisis estadístico de la calidad del aire en la India.
Zona ni hi(%) Pi(%)
Centro 289 0.98 0.98
Este 7873 26.66 26.66
Oeste 21369 72.36 72.36
TOTAL 29531 100.00 100.00
Autor: Grupo 1

Fuente:https://www.kaggle.com/datasets/rohanrao/air-quality-data-in-india

5.- Gráfico de distribución de probabilidad

library(RColorBrewer)

# Colores suaves
n <- length(TDF_Zona$Zona)
colores <- brewer.pal(min(max(n,3), 8), "Set2")

par(mar = c(5,5, 5, 2))
# Crear gráfico
barplot(
  TDF_Zona$hi,
  
  # Etiquetas
  names.arg = TDF_Zona$Zona,
  
  # Títulos
  main = "Gráfica Nro. 1\nDistribución de la variable Zona\npara el análisis estadístico de la calidad del aire en la India (2015-2020)",
  
  
  # Diseño
  col = colores,
  border = "white",
  
  # Escala
  ylim = c(0, 100),
  
  # Texto
  las = 2,
  cex.names = 0.9,
  cex.main = 1,
  cex.lab = 1,
  
  # Barras
  width = 0.7,
  space = 0.3
)

title(xlab = "Zona", line = 4)
mtext(
  "Probabilidad (%)",
  side = 2,
  line = 4
)

6. Cálculo de probabilidad

#¿Cuál es la probabilidad de que un registro seleccionado al azar pertenezca a la Zona Oeste?

x <- round((TDF_Zona$ni[TDF_Zona$`Zona`=="Oeste"] / 29531) * 100, 1)
x
## [1] 72.4
plot(1, type = "n", axes = FALSE, xlab = "", ylab = "",
     xlim = c(0,2), ylim = c(0,2))

text(
  x = 1,
  y = 1,
  labels = paste(
    "Cálculo de probabilidad\n",
    "(Estimación general)\n\n",
    "¿Cuál es la probabilidad de que un registro\n",
    "seleccionado al azar pertenezca a la Zona Oeste?\n\n",
    "R: Zona Oeste\n",
    paste0("Probabilidad = ", x, " (%)"),
    sep = ""
  ),
  cex = 1.5,
  font = 2
)

7.- Conclusión

En conclusión:

La variable aleatoria Zona presenta un comportamiento poblacional asociado a su frecuencia relativa. La probabilidad de encontrar un registro en la Zona Oeste es del 72.4 %, de acuerdo con la frecuencia relativa observada en la muestra.