# Tema: Estadística Multivariable
# Autor: Camila Zambrano
# Fecha: 22/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(e1071)
library(htmltools)

1. Carga de datos

setwd("~/CAMILA")
datos <- read.csv("Datos Cambiados..csv",
                  header = TRUE,
                  sep = ",",
                  dec = ".",
                  na.strings = "-")

2. Definición de la variable

datos <- na.omit(datos)

datos <- datos[order(datos$AQI, datos$PM2.5), ] 

datos_prom <- aggregate(PM2.5 ~ AQI, data = datos, mean) 

# Variable independiente (X): Material Paticulado 2.5
X <- datos_prom$PM2.5

# Variable dependiente (Y): Índice de Calidad del Aire
Y <- datos_prom$AQI

3. Tabla pares de valores

n_modelo <- nrow(datos_prom)

cat("Tamaño muestral del modelo =", n_modelo)
## Tamaño muestral del modelo = 448
TVP_PM2.5_AQI <- data.frame(X, Y)

# Tabla pares de valores
tabla <- TVP_PM2.5_AQI %>%
  gt() %>%
  cols_align(
    align = "center",
    columns = everything()
  ) %>%
  fmt_number(
    columns = everything(),
    decimals = 2
  ) %>%
  tab_header(
    title = md("*Tabla N°1*"),
    subtitle = md("*Pares de valores de PM2.5 y AQI, Calidad del aire en India 2015-2020*")
  ) %>%
  tab_source_note(
    source_note = md(paste0(
      "**Nota:** Tamaño muestral n = ", nrow(TVP_PM2.5_AQI),
      " observaciones utilizadas en el análisis."
    ))
  )

div(
  style = "height:400px; overflow-y:auto;",
  tabla
)
Tabla N°1
Pares de valores de PM2.5 y AQI, Calidad del aire en India 2015-2020
X Y
6.30 23.00
9.46 26.00
9.97 29.00
14.48 30.00
9.55 31.00
9.26 32.00
11.97 33.00
11.09 34.00
12.64 35.00
12.97 36.00
11.00 37.00
12.30 38.00
12.25 39.00
14.34 40.00
15.01 41.00
13.65 42.00
14.97 43.00
15.36 44.00
14.38 45.00
15.60 46.00
13.92 47.00
15.70 48.00
16.57 49.00
17.76 50.00
16.41 51.00
17.23 52.00
18.41 53.00
20.50 54.00
17.43 55.00
19.32 56.00
17.60 57.00
20.98 58.00
19.58 59.00
19.34 60.00
21.04 61.00
21.36 62.00
18.75 63.00
22.79 64.00
23.59 65.00
22.55 66.00
24.27 67.00
26.38 68.00
26.01 69.00
28.40 70.00
25.72 71.00
27.57 72.00
28.03 73.00
27.01 74.00
30.28 75.00
28.96 76.00
27.05 77.00
29.27 78.00
26.94 79.00
31.22 80.00
29.49 81.00
32.09 82.00
32.00 83.00
30.96 84.00
30.32 85.00
32.49 86.00
34.56 87.00
32.35 88.00
34.07 89.00
35.04 90.00
36.45 91.00
35.69 92.00
34.87 93.00
37.22 94.00
39.05 95.00
40.78 96.00
40.51 97.00
39.87 98.00
40.09 99.00
40.38 100.00
40.52 101.00
40.96 102.00
43.77 103.00
44.81 104.00
42.54 105.00
44.96 106.00
47.63 107.00
47.35 108.00
43.19 109.00
47.10 110.00
44.35 111.00
48.74 112.00
48.85 113.00
50.28 114.00
50.34 115.00
50.27 116.00
49.89 117.00
48.10 118.00
51.55 119.00
53.24 120.00
52.90 121.00
54.51 122.00
53.48 123.00
55.31 124.00
56.30 125.00
54.89 126.00
54.32 127.00
54.47 128.00
54.89 129.00
52.51 130.00
55.60 131.00
62.52 132.00
60.26 133.00
65.95 134.00
56.13 135.00
60.66 136.00
62.69 137.00
55.83 138.00
61.89 139.00
58.18 140.00
60.36 141.00
58.11 142.00
63.89 143.00
64.11 144.00
66.35 145.00
65.22 146.00
59.73 147.00
64.35 148.00
62.86 149.00
67.02 150.00
66.26 151.00
59.04 152.00
65.44 153.00
64.06 154.00
63.50 155.00
67.36 156.00
70.14 157.00
66.94 158.00
67.52 159.00
67.32 160.00
68.04 161.00
64.65 162.00
69.87 163.00
70.04 164.00
68.10 165.00
66.98 166.00
61.03 167.00
72.45 168.00
73.21 169.00
64.66 170.00
63.71 171.00
75.49 172.00
70.00 173.00
66.49 174.00
67.95 175.00
70.81 176.00
87.40 177.00
87.60 178.00
77.36 179.00
74.55 180.00
88.92 181.00
77.27 182.00
71.55 183.00
86.52 184.00
91.66 185.00
84.86 186.00
79.56 187.00
53.58 188.00
87.53 189.00
73.82 190.00
71.45 191.00
81.65 192.00
85.22 193.00
77.52 194.00
85.81 195.00
76.63 196.00
80.45 197.00
84.96 198.00
92.31 199.00
84.65 200.00
69.83 201.00
82.01 202.00
90.29 203.00
84.66 204.00
85.60 205.00
82.25 206.00
83.98 207.00
88.14 208.00
80.99 209.00
84.07 210.00
94.77 211.00
69.56 212.00
136.85 213.00
90.86 214.00
87.83 215.00
108.04 216.00
81.83 217.00
81.84 218.00
93.00 219.00
92.40 220.00
91.30 221.00
93.40 222.00
95.33 223.00
101.84 224.00
95.24 225.00
90.94 226.00
96.40 227.00
93.45 228.00
93.18 229.00
95.00 230.00
101.24 231.00
90.38 232.00
84.29 233.00
86.52 234.00
96.96 235.00
100.96 236.00
89.56 237.00
89.01 238.00
85.69 239.00
90.45 240.00
104.71 241.00
105.95 242.00
91.67 243.00
112.96 244.00
98.60 245.00
108.40 246.00
91.70 247.00
106.70 248.00
88.03 249.00
110.71 251.00
81.63 252.00
113.33 253.00
115.57 254.00
108.68 255.00
82.70 256.00
100.67 257.00
92.68 258.00
74.83 259.00
104.84 260.00
135.89 261.00
111.32 262.00
111.54 263.00
110.73 264.00
112.05 265.00
103.95 266.00
115.13 267.00
99.59 268.00
102.04 269.00
108.02 270.00
103.37 271.00
120.98 272.00
106.87 273.00
118.64 274.00
105.02 275.00
119.99 276.00
119.11 277.00
121.38 278.00
110.89 279.00
101.28 280.00
116.54 281.00
112.27 282.00
103.33 283.00
112.64 284.00
112.50 285.00
127.54 286.00
107.12 287.00
107.80 288.00
122.35 289.00
99.56 290.00
133.94 291.00
126.08 292.00
108.66 293.00
76.35 294.00
124.61 295.00
132.99 296.00
127.31 297.00
128.31 298.00
128.90 299.00
119.47 300.00
135.55 301.00
116.18 302.00
130.03 303.00
140.84 304.00
129.19 305.00
155.91 306.00
120.20 307.00
95.34 308.00
148.25 309.00
144.66 310.00
177.59 311.00
109.88 312.00
145.90 313.00
125.86 314.00
136.00 315.00
123.61 316.00
146.44 317.00
149.69 318.00
158.10 319.00
132.54 320.00
157.12 321.00
103.64 322.00
135.63 323.00
126.70 324.00
143.88 325.00
177.20 326.00
165.92 327.00
161.30 328.00
161.80 329.00
145.13 330.00
159.33 331.00
154.26 332.00
140.87 333.00
142.14 334.00
160.54 335.00
171.97 336.00
168.43 338.00
192.35 339.00
168.99 340.00
172.55 341.00
192.06 342.00
163.94 343.00
166.04 344.00
178.64 345.00
147.25 346.00
166.24 347.00
182.69 348.00
184.40 349.00
178.97 350.00
134.21 351.00
180.78 352.00
180.61 353.00
194.88 354.00
178.31 356.00
201.08 357.00
158.00 358.00
218.99 359.00
156.19 360.00
136.20 361.00
186.54 362.00
193.10 363.00
205.02 364.00
179.71 365.00
201.20 366.00
181.70 367.00
141.17 368.00
167.03 369.00
201.44 370.00
187.30 371.00
217.49 372.00
233.10 373.00
164.63 374.00
191.17 375.00
208.32 376.00
207.70 377.00
200.85 378.00
209.35 379.00
177.25 380.00
218.98 381.00
216.06 382.00
190.39 383.00
174.49 384.00
204.24 385.00
215.61 387.00
155.18 388.00
218.00 389.00
137.20 390.00
168.00 391.00
176.83 392.00
221.08 394.00
207.18 396.00
218.04 397.00
251.23 398.00
227.28 399.00
183.28 400.00
278.95 401.00
228.78 403.00
227.89 404.00
229.00 405.00
172.20 406.00
244.78 407.00
217.09 411.00
212.36 413.00
269.67 415.00
273.46 417.00
287.56 419.00
240.26 420.00
266.02 421.00
238.69 422.00
249.90 423.00
361.98 424.00
279.18 425.00
228.90 426.00
198.10 428.00
294.36 430.00
250.42 431.00
246.46 432.00
238.82 433.00
254.46 437.00
174.03 438.00
263.72 439.00
252.07 440.00
249.87 441.00
525.09 442.00
209.63 443.00
186.80 444.00
242.58 449.00
257.71 450.00
259.14 451.00
338.57 452.00
261.77 453.00
258.61 454.00
299.11 455.00
263.39 456.00
290.10 458.00
314.32 460.00
303.41 462.00
295.71 463.00
273.71 464.00
293.14 467.00
326.79 468.00
323.98 471.00
313.22 472.00
320.26 473.00
313.29 475.00
247.27 478.00
314.59 480.00
311.03 482.00
353.86 483.00
336.42 484.00
327.04 485.00
408.56 487.00
372.14 492.00
426.52 497.00
331.20 501.00
270.21 502.00
333.43 506.00
319.69 509.00
353.58 510.00
358.91 515.00
225.49 522.00
127.32 531.00
391.20 532.00
363.41 537.00
401.58 557.00
354.56 561.00
378.68 577.00
388.45 591.00
153.28 593.00
423.52 595.00
370.73 597.00
465.08 613.00
582.28 659.00
639.19 675.00
495.90 677.00
Nota: Tamaño muestral n = 448 observaciones utilizadas en el análisis.

4. Gráfica de dispersión

# Asegurar formato numérico
X <- as.numeric(as.character(X))
Y <- as.numeric(as.character(Y))

# Definir límites con manejo de valores faltantes
x_max <- max(X, na.rm = TRUE) * 1.05
y_max <- max(Y, na.rm = TRUE) * 1.05

# Crear gráfico
plot(X, Y,
     type = "n",
     main = "Gráfica N°1\nDiagrama de dispersión entre PM2.5 y AQI\nen el estudio de la calidad del aire en India 2015-2020",
     xlab = expression("Material Particulado 2.5 ("*mu*"g/m³)"),
     ylab = "AQI (Índice)",
     xlim = c(0, x_max),
     ylim = c(0, y_max),
     cex.main = 1.1,
     cex.lab = 1.1,
     cex.axis = 0.9)

# Cuadrícula
grid(nx = NULL, ny = NULL, col = "gray85", lty = 1)

# Puntos (usando na.omit para evitar errores con valores faltantes en puntos)
points(na.omit(data.frame(X, Y)),
       col = "deepskyblue3",
       pch = 16,
       cex = 1.2)

box(lwd = 1.5)

5. Conjetura y parámetros

Conjetura

Conjetura.-
La distribución de los puntos en el gráfico muestra una curva ascendente, lo que sugiere un modelo logarítmico. El AQI aumenta de forma acelerada a medida que se incrementa el Material Particulado 2.5, indicando una relación no lineal y un impacto creciente del contaminante sobre la calidad del aire.



Modelo exponencial general:

\[ Y = a+b*ln(X) \]

Modelo logarítmico aplicado al estudio:

\[ AQI = a+b*ln(PM2.5) \]

Parámetros

modelo_log <- lm(Y ~ log(X), data = TVP_PM2.5_AQI)

a_est <- coef(modelo_log)[1]
a_est
## (Intercept) 
##   -443.7451
b_est <- coef(modelo_log)[2]
b_est
##  log(X) 
## 154.463

6. Gráfica de dispersión modelo - realidad

# Límites
x_max <- max(X) * 1.05
y_max <- max(Y) * 1.05

# Gráfico vacío
plot(X, Y,
     type = "n",
     main = "Gráfica N°2\nModelo logarítmico entre PM2.5 y AQI\nen el estudio de la calidad del aire en India 2015-2020",
     xlab = expression("Material Particulado 2.5 ("*mu*"g/m³)"),
     ylab = "AQI (Índice)",
     xlim = c(0, x_max),
     ylim = c(0, y_max),
     cex.main = 1.1,
     cex.lab = 1.1,
     cex.axis = 0.9)

# Cuadrícula
grid(nx = NULL, ny = NULL,
     col = "gray85",
     lty = 1)

# Puntos reales
points(X, Y,
       col = "deepskyblue3",
       pch = 16,
       cex = 1.2)

# Curva del modelo logarítmico
curve(a_est + b_est * log(x),
      from = 0,
      to = x_max,
      col = "red",
      lwd = 3,
      add = TRUE)
box(lwd = 1.5)

legend("topleft",
       legend = c("Datos reales", "Modelo logarítmico"),
       col = c("deepskyblue3", "red"),
       pch = c(16, NA),
       lwd = c(NA, 3),
       bty = "o",
       bg = "white",
       cex = 0.8,
       x.intersp = 0.6,
       y.intersp = 0.8)

7. Test de Bondad

Coeficiente de correlación de Pearson

r <- cor(TVP_PM2.5_AQI$X, TVP_PM2.5_AQI$Y) * 100
r
## [1] 93.01206

Coeficiente de determinación (r^2)

r2 <- (r^2) / 100
r2
## [1] 86.51244

8. Restricciones

# Dominio [x]: D = {x|x E R+^0}
# Dominio [y]: D = {x|x E N ^ 0 ≤ x ≤ 2934}

El modelo logarítmico presenta una restricción importante en su dominio: no puede incluir valores de PM2.5 iguales a cero, ya que el logaritmo natural (ln) no está definido para dicho valor. Debido a esto, el modelo solo es aplicable cuando la concentración de material particulado es estrictamente mayor a cero. El modelo es creciente, lo que significa que el AQI aumenta a medida que se incrementa el material particulado, manteniendo la relación lógica del estudio.

9. Estimación

carga_objetivo <- median(X, na.rm = TRUE)

if(carga_objetivo <= 0){
  stop("Error: La carga (PM2.5) debe ser mayor a 0 para utilizar el modelo logarítmico.")
}

# Cálculo del AQI estimado
aqi_est <- a_est + b_est * log(carga_objetivo)

# Visualización del resultado
plot(1, type = "n", axes = FALSE, xlab = "", ylab = "")
text(
  1, 1,
  labels = paste(
    "¿Cuál es el AQI esperado\n",
    "cuando el PM2.5 es", round(carga_objetivo, 2), "µg/m³?\n\n",
    "Resultado estimado (AQI):", round(aqi_est, 0)
  ),
  cex = 1.2,
  col = "deepskyblue3",
  font = 2
)

10. Conclusión

Entre la concentración de material particulado (PM2.5) y el Índice de Calidad del Aire (AQI) existe una relación de tipo logarítmica, representada por el modelo y = -443.7451 + 154.463*ln(x), siendo “y = Índice de Calidad de Agua (AQI)” y “x = Material Particulado 2.5 (PM2.5)”. El modelo presenta restricciones de que la concentración de PM2.5 debe ser extrictamente mayor a cero (PM2.5 > 0), dado que el logaritmo no está definido para valores nulos o negativos. El modelo indica que el AQI aumenta de forma constante con el incremento de PM2.5