1.Librerías
# -------------------------
# Cargar 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(htmltools)
## Warning: package 'htmltools' was built under R version 4.6.1
2.Leer Datos de datos
# -------------------------
# Cargar datos
# -------------------------
datos <- read.csv("waterPollution.csv",
sep = ",",
stringsAsFactors = FALSE)
3.Selección (causa y efecto)
# ================================
# SELECCIÓN Y SEPARACIÓN
# ================================
#Justificación
#El fósforo total y los nitratos fueron seleccionados por ser indicadores representativos de la contaminación por nutrientes en cuerpos de agua. El análisis conjunto de ambas variables permite evaluar si existe una relación estadística entre la concentración de fósforo total (causa) y la concentración de nitratos (efecto).
datos$resultMeanValue <- as.numeric(gsub("-", NA, datos$resultMeanValue))
# Filtrado de códigos de propiedades observadas y selección de columnas clave
fosforo <- datos %>%
filter(observedPropertyDeterminandCode == "CAS_7723-14-0") %>%
select(waterBodyIdentifier, phenomenonTimeReferenceYear, X_val = resultMeanValue)
nitratos <- datos %>%
filter(observedPropertyDeterminandCode == "CAS_14797-55-8") %>%
select(waterBodyIdentifier, phenomenonTimeReferenceYear, Y_val = resultMeanValue)
# Unión interna para emparejar por cuerpo de agua y año
datos_pareados <- inner_join(fosforo, nitratos, by = c("waterBodyIdentifier", "phenomenonTimeReferenceYear"))
## Warning in inner_join(fosforo, nitratos, by = c("waterBodyIdentifier", "phenomenonTimeReferenceYear")): Detected an unexpected many-to-many relationship between `x` and `y`.
## ℹ Row 28 of `x` matches multiple rows in `y`.
## ℹ Row 64 of `y` matches multiple rows in `x`.
## ℹ If a many-to-many relationship is expected, set `relationship =
## "many-to-many"` to silence this warning.
4.Tabla de pares de valores
browsable(
div(
style = "height:400px; overflow-y:auto; border:1px solid #ddd;",
HTML(as_raw_html(tabla_gt))
)
)
| Tabla 1. Pares de valores observados de fósforo total y nitratos |
| Observación |
(X) Fósforo Total (mg/L) |
(Y) Nitratos (mg/L) |
| 1 |
0.0133 |
2.4778 |
| 2 |
0.0567 |
5.9562 |
| 3 |
0.0483 |
5.2731 |
| 4 |
0.0825 |
22.8052 |
| 5 |
0.1433 |
15.0225 |
| 6 |
0.0692 |
4.5484 |
| 7 |
0.0208 |
3.5404 |
| 8 |
0.0208 |
3.3988 |
| 9 |
0.0450 |
18.8600 |
| 10 |
0.0408 |
2.6882 |
| 11 |
0.0663 |
37.2701 |
| 12 |
0.1108 |
5.2481 |
| 13 |
0.1108 |
5.5813 |
| 14 |
0.0338 |
3.4321 |
| 15 |
0.0200 |
0.9330 |
| 16 |
0.0833 |
7.2807 |
| 17 |
0.0833 |
6.0645 |
| 18 |
0.1383 |
4.4984 |
| 19 |
0.0600 |
40.9655 |
| 20 |
0.0133 |
0.9830 |
| 21 |
0.2467 |
12.7622 |
| 22 |
0.0688 |
26.4823 |
| 23 |
0.1865 |
28.3649 |
| 24 |
0.1119 |
19.0099 |
| 25 |
0.1261 |
17.7437 |
| 26 |
0.0274 |
18.5268 |
| 27 |
0.0839 |
24.4330 |
| 28 |
0.1147 |
19.0099 |
| 29 |
0.0822 |
23.3084 |
| 30 |
0.1025 |
29.1230 |
| 31 |
0.1050 |
18.2983 |
| 32 |
0.2278 |
25.7541 |
| 33 |
0.1217 |
18.3935 |
| 34 |
0.1225 |
18.1322 |
| 35 |
0.0142 |
2.0659 |
| 36 |
0.0333 |
10.6629 |
| 37 |
0.0333 |
3.1156 |
| 38 |
0.1100 |
1.7398 |
| 39 |
0.0383 |
31.7010 |
| 40 |
0.1333 |
5.1504 |
| 41 |
0.0517 |
2.2425 |
| 42 |
0.1251 |
21.4469 |
| 43 |
0.1167 |
19.7097 |
| 44 |
0.1595 |
17.8020 |
| 45 |
0.0676 |
2.5004 |
| 46 |
0.1267 |
9.3300 |
| 47 |
0.0850 |
5.9479 |
| 48 |
0.0983 |
7.2807 |
| 49 |
0.0983 |
6.0645 |
| 50 |
0.1351 |
28.2983 |
| 51 |
0.1100 |
9.6504 |
| 52 |
0.0200 |
1.4661 |
| 53 |
0.0300 |
4.9316 |
| 54 |
0.0266 |
8.8802 |
| 55 |
0.0266 |
7.4807 |
| 56 |
0.0133 |
0.5998 |
| 57 |
0.1467 |
6.9808 |
| 58 |
0.0483 |
1.5494 |
| 59 |
0.0200 |
1.7327 |
| 60 |
0.0167 |
1.7161 |
| 61 |
0.0881 |
11.5875 |
| 62 |
0.0846 |
11.5875 |
| 63 |
0.2533 |
39.3360 |
| 64 |
0.0567 |
5.9562 |
| 65 |
0.0150 |
1.5994 |
| 66 |
0.0455 |
6.3068 |
| 67 |
0.2483 |
23.5583 |
| 68 |
0.1358 |
17.4129 |
| 69 |
0.0183 |
3.0656 |
| 70 |
0.0250 |
3.5487 |
| 71 |
0.0267 |
4.7483 |
| 72 |
0.1908 |
3.9223 |
| 73 |
0.0680 |
6.8476 |
| 74 |
0.0600 |
18.5768 |
| 75 |
0.0450 |
5.7980 |
| 76 |
0.0967 |
12.0457 |
| 77 |
0.0675 |
5.4064 |
| 78 |
0.2442 |
33.6214 |
| 79 |
0.1589 |
8.0067 |
| 80 |
0.1662 |
19.1723 |
| 81 |
0.2085 |
11.9189 |
| 82 |
0.1655 |
33.9470 |
| 83 |
0.0750 |
3.1489 |
| 84 |
0.0317 |
4.8816 |
| 85 |
0.0255 |
2.8323 |
| 86 |
0.1192 |
34.8876 |
| 87 |
0.1575 |
3.4238 |
| 88 |
0.0375 |
28.1567 |
| 89 |
0.0927 |
7.1641 |
| 90 |
0.0927 |
7.2702 |
| 91 |
0.1630 |
31.4305 |
| 92 |
0.0400 |
6.4461 |
| 93 |
0.0871 |
14.1038 |
| 94 |
0.0300 |
21.0259 |
| 95 |
0.1300 |
20.3761 |
| 96 |
0.1300 |
8.0688 |
| 97 |
0.0453 |
8.8802 |
| 98 |
0.0453 |
7.4807 |
| 99 |
0.1000 |
25.2410 |
| 100 |
0.0079 |
0.2284 |
| 101 |
0.2378 |
5.3522 |
| 102 |
0.0138 |
0.8500 |
| 103 |
0.0087 |
1.1324 |
| 104 |
0.0717 |
6.6143 |
| 105 |
0.0461 |
4.0002 |
| 106 |
0.0917 |
6.7892 |
| 107 |
0.0150 |
1.1496 |
| 108 |
0.0133 |
2.4491 |
| 109 |
0.0083 |
7.0004 |
| 110 |
0.1870 |
18.3756 |
| 111 |
0.1868 |
27.9268 |
| 112 |
0.0553 |
14.8601 |
| 113 |
0.0283 |
5.2815 |
| 114 |
0.0317 |
3.0839 |
| 115 |
0.0150 |
0.7544 |
| 116 |
0.0800 |
2.2425 |
| 117 |
0.0617 |
4.8483 |
| 118 |
0.1000 |
0.9996 |
| 119 |
0.1333 |
0.9996 |
| 120 |
0.1167 |
2.6657 |
| 121 |
0.0600 |
1.3995 |
| 122 |
0.0450 |
2.8323 |
| 123 |
0.0517 |
14.5615 |
| 124 |
0.1088 |
7.7556 |
| 125 |
0.0811 |
17.5771 |
| 126 |
0.0282 |
16.7214 |
| 127 |
0.0500 |
24.1581 |
| 128 |
0.0917 |
27.1487 |
| 129 |
0.0200 |
1.6161 |
| 130 |
0.0853 |
11.9234 |
| 131 |
0.1685 |
14.9496 |
| 132 |
0.0200 |
16.2276 |
| 133 |
0.0155 |
16.4760 |
| 134 |
0.1848 |
19.4181 |
| 135 |
0.0583 |
6.8143 |
| 136 |
0.0200 |
5.0316 |
| 137 |
0.0480 |
32.9083 |
| 138 |
0.0133 |
0.3582 |
| 139 |
0.1567 |
42.6849 |
| 140 |
0.2415 |
8.6386 |
| 141 |
0.2313 |
16.8732 |
| 142 |
0.0583 |
2.4991 |
| 143 |
0.1000 |
1.6661 |
| 144 |
0.0200 |
3.2488 |
| 145 |
0.0850 |
7.1808 |
| 146 |
0.0850 |
8.3720 |
| 147 |
0.0600 |
8.2471 |
| 148 |
0.0933 |
19.3098 |
| 149 |
0.0533 |
22.9585 |
| 150 |
0.0817 |
11.8291 |
| 151 |
0.0133 |
2.9989 |
| 152 |
0.0533 |
8.2138 |
| 153 |
0.2028 |
37.6783 |
| 154 |
0.1467 |
35.8290 |
| 155 |
0.0592 |
7.2308 |
| 156 |
0.0342 |
3.4738 |
| 157 |
0.0796 |
19.2813 |
| 158 |
0.0341 |
3.9079 |
| 159 |
0.0578 |
1.2662 |
| 160 |
0.1713 |
14.9208 |
| 161 |
0.1798 |
19.4345 |
| 162 |
0.2460 |
21.0358 |
| 163 |
0.1129 |
20.6926 |
| 164 |
0.0592 |
23.8749 |
| 165 |
0.0583 |
3.3738 |
| 166 |
0.1133 |
26.5572 |
| 167 |
0.0683 |
9.3467 |
| 168 |
0.0617 |
6.8143 |
| 169 |
0.0538 |
7.5348 |
| 170 |
0.1003 |
21.4015 |
| 171 |
0.0680 |
14.2449 |
| 172 |
0.0167 |
5.1648 |
| 173 |
0.0092 |
0.5914 |
| 174 |
0.0093 |
0.3373 |
| 175 |
0.0509 |
1.2493 |
| 176 |
0.0079 |
0.4551 |
| 177 |
0.0069 |
0.5547 |
| 178 |
0.0246 |
1.2086 |
| 179 |
0.0082 |
0.3342 |
| 180 |
0.0120 |
0.3396 |
| 181 |
0.0120 |
0.5733 |
| 182 |
0.0355 |
0.3041 |
| 183 |
0.0844 |
25.1994 |
| 184 |
0.1291 |
7.8469 |
| 185 |
0.1167 |
10.4546 |
| 186 |
0.0580 |
3.5062 |
| 187 |
0.1419 |
12.1632 |
| 188 |
0.1650 |
33.4423 |
| 189 |
0.1334 |
11.6061 |
| 190 |
0.0965 |
19.6633 |
| 191 |
0.1996 |
25.8249 |
| 192 |
0.1547 |
12.5745 |
| 193 |
0.0887 |
9.9132 |
| 194 |
0.0989 |
19.8846 |
| 195 |
0.0934 |
7.7389 |
| 196 |
0.1361 |
16.3858 |
| 197 |
0.0334 |
4.6169 |
| 198 |
0.0542 |
10.9865 |
| 199 |
0.0454 |
4.2490 |
| 200 |
0.1591 |
5.8091 |
| 201 |
0.2104 |
6.0752 |
| 202 |
0.0785 |
1.6061 |
| 203 |
0.1075 |
20.0012 |
| 204 |
0.0838 |
17.2522 |
| 205 |
0.0587 |
12.5706 |
| 206 |
0.0577 |
27.1650 |
| 207 |
0.0641 |
7.4484 |
| 208 |
0.0113 |
1.1315 |
| 209 |
0.0166 |
7.7118 |
| 210 |
0.0279 |
20.1021 |
| 211 |
0.0079 |
0.4338 |
| 212 |
0.0416 |
2.6845 |
| 213 |
0.0173 |
0.2200 |
| 214 |
0.0060 |
0.2098 |
| 215 |
0.0071 |
0.2546 |
| 216 |
0.0124 |
0.9797 |
| 217 |
0.0184 |
1.4844 |
| 218 |
0.0060 |
0.4268 |
| 219 |
0.0214 |
0.3971 |
| 220 |
0.0093 |
0.2723 |
| 221 |
0.0185 |
0.5914 |
| 222 |
0.0083 |
0.4763 |
| 223 |
0.0084 |
0.4445 |
| 224 |
0.0165 |
4.0720 |
| 225 |
0.0073 |
0.3754 |
| 226 |
0.0173 |
1.2976 |
| 227 |
0.0071 |
0.2975 |
| 228 |
0.0419 |
20.6223 |
| 229 |
0.0068 |
0.2900 |
| 230 |
0.0510 |
26.0817 |
| 231 |
0.0133 |
2.1159 |
| 232 |
0.2340 |
18.7767 |
| 233 |
0.0807 |
17.4021 |
| 234 |
0.0275 |
5.3314 |
| 235 |
0.0950 |
36.1039 |
| 236 |
0.0998 |
5.4545 |
| 237 |
0.1122 |
8.7801 |
| 238 |
0.0184 |
0.2855 |
| 239 |
0.0059 |
0.2559 |
| 240 |
0.0078 |
0.5326 |
| 241 |
0.0267 |
2.1009 |
| 242 |
0.0695 |
13.5285 |
| 243 |
0.0725 |
24.4913 |
| 244 |
0.0365 |
38.7446 |
| 245 |
0.0727 |
21.0675 |
| 246 |
0.0583 |
37.1202 |
| 247 |
0.0933 |
29.6061 |
| 248 |
0.0550 |
11.8291 |
| 249 |
0.1183 |
32.1886 |
| 250 |
0.0068 |
3.5173 |
| 251 |
0.0275 |
12.5039 |
| 252 |
0.2145 |
32.1582 |
| 253 |
0.0500 |
11.7634 |
| 254 |
0.0565 |
0.2776 |
| 255 |
0.1078 |
0.9221 |
| 256 |
0.0470 |
20.0986 |
| 257 |
0.0527 |
13.1953 |
| 258 |
0.0528 |
28.3293 |
| 259 |
0.1079 |
26.6655 |
| 260 |
0.0850 |
15.0113 |
| 261 |
0.0293 |
1.8089 |
| 262 |
0.0185 |
0.4073 |
| 263 |
0.0273 |
4.5484 |
| 264 |
0.0273 |
5.7813 |
| 265 |
0.0333 |
6.5723 |
| 266 |
0.0521 |
5.8286 |
| 267 |
0.0206 |
0.7840 |
| 268 |
0.0207 |
0.6875 |
| 269 |
0.0310 |
5.6134 |
| 270 |
0.0388 |
0.4445 |
| 271 |
0.0543 |
20.0145 |
| 272 |
0.0123 |
0.9553 |
| 273 |
0.0128 |
2.4428 |
| 274 |
0.0543 |
35.1136 |
| 275 |
0.0516 |
7.8836 |
| 276 |
0.0724 |
17.7045 |
| 277 |
0.0788 |
23.3267 |
| 278 |
0.0141 |
0.6370 |
| 279 |
0.1740 |
19.3380 |
| 280 |
0.0575 |
13.1849 |
| 281 |
0.0433 |
1.4495 |
| 282 |
0.0425 |
2.0661 |
| 283 |
0.0383 |
0.9497 |
| 284 |
0.0550 |
6.0978 |
| 285 |
0.0060 |
0.3484 |
| 286 |
0.0083 |
0.3975 |
| 287 |
0.0060 |
0.6397 |
| 288 |
0.0143 |
1.1479 |
| 289 |
0.0060 |
0.3227 |
| 290 |
0.0097 |
0.3156 |
| 291 |
0.0069 |
0.4232 |
| 292 |
0.0121 |
0.3834 |
| 293 |
0.0057 |
0.6933 |
| 294 |
0.0183 |
29.2896 |
| 295 |
0.0300 |
15.7861 |
| 296 |
0.0600 |
23.8772 |
| 297 |
0.1051 |
12.1927 |
| 298 |
0.0517 |
4.9982 |
| 299 |
0.0612 |
18.1184 |
| 300 |
0.0442 |
17.8346 |
| 301 |
0.1375 |
9.9048 |
| 302 |
0.0060 |
2.2857 |
| 303 |
0.0280 |
2.9190 |
| 304 |
0.1128 |
21.3341 |
| 305 |
0.1161 |
24.8578 |
| 306 |
0.0132 |
0.2484 |
| 307 |
0.0250 |
3.9736 |
| 308 |
0.0650 |
8.9718 |
| 309 |
0.0969 |
7.3589 |
| 310 |
0.0862 |
6.8360 |
| 311 |
0.1217 |
12.3290 |
| 312 |
0.1000 |
12.7021 |
| 313 |
0.0392 |
9.8923 |
| 314 |
0.0307 |
12.7288 |
| 315 |
0.0508 |
4.8906 |
| 316 |
0.0274 |
6.9823 |
| 317 |
0.0453 |
4.7400 |
| 318 |
0.0556 |
31.2546 |
| 319 |
0.0599 |
21.2828 |
| 320 |
0.0217 |
3.3272 |
| 321 |
0.1384 |
25.6909 |
| 322 |
0.1384 |
41.6519 |
| 323 |
0.0267 |
2.8257 |
| 324 |
0.1113 |
17.1522 |
| 325 |
0.0525 |
5.9979 |
| 326 |
0.0467 |
12.0290 |
| 327 |
0.0617 |
14.2000 |
| 328 |
0.0158 |
16.4608 |
| 329 |
0.2533 |
22.0722 |
| 330 |
0.0208 |
4.9482 |
| 331 |
0.0242 |
1.9993 |
| 332 |
0.1125 |
16.3400 |
| 333 |
0.1460 |
11.9374 |
| 334 |
0.1592 |
10.1932 |
| 335 |
0.0200 |
6.0178 |
| 336 |
0.1252 |
14.6602 |
| 337 |
0.0078 |
0.3519 |
| 338 |
0.0123 |
1.1873 |
| 339 |
0.0886 |
32.9740 |
| 340 |
0.0279 |
34.0713 |
| 341 |
0.0882 |
6.3511 |
| 342 |
0.1786 |
20.8954 |
| 343 |
0.0983 |
7.9757 |
| 344 |
0.0833 |
0.3542 |
| 345 |
0.0917 |
15.9610 |
| 346 |
0.0217 |
2.2659 |
| 347 |
0.0500 |
17.8020 |
| 348 |
0.0992 |
32.0220 |
| 349 |
0.1866 |
12.5914 |
| 350 |
0.1023 |
19.0432 |
| 351 |
0.1217 |
33.7047 |
| 352 |
0.0238 |
43.6012 |
| 353 |
0.0317 |
1.4495 |
| 354 |
0.0445 |
35.2958 |
| 355 |
0.0446 |
24.3080 |
| 356 |
0.1264 |
19.1689 |
| 357 |
0.1487 |
11.9050 |
| 358 |
0.0129 |
0.4657 |
| 359 |
0.0321 |
5.6563 |
| 360 |
0.2418 |
3.9474 |
| 361 |
0.1300 |
6.0318 |
| 362 |
0.0420 |
2.9506 |
| 363 |
0.0598 |
20.7663 |
| 364 |
0.1110 |
38.6715 |
| 365 |
0.0758 |
29.7631 |
| 366 |
0.2011 |
13.5035 |
| 367 |
0.0700 |
7.6973 |
| 368 |
0.0200 |
2.2159 |
| 369 |
0.0785 |
2.4428 |
| 370 |
0.0300 |
3.2655 |
| 371 |
0.0117 |
5.6502 |
| 372 |
0.1142 |
33.0383 |
| 373 |
0.0737 |
3.6744 |
| 374 |
0.0159 |
0.3944 |
| 375 |
0.0796 |
28.1109 |
| 376 |
0.0658 |
18.9016 |
| 377 |
0.0812 |
7.3724 |
| 378 |
0.0727 |
7.6473 |
| 379 |
0.1193 |
12.7303 |
| 380 |
0.1193 |
6.8132 |
| 381 |
0.2090 |
21.1134 |
| 382 |
0.0650 |
6.4644 |
| 383 |
0.0838 |
32.7217 |
| 384 |
0.0751 |
38.8112 |
| 385 |
0.2377 |
18.4864 |
| 386 |
0.2475 |
26.2632 |
| 387 |
0.1498 |
29.7185 |
| 388 |
0.0790 |
9.4775 |
| 389 |
0.1168 |
28.8456 |
| 390 |
0.0133 |
3.4521 |
| 391 |
0.2229 |
18.9683 |
| 392 |
0.1959 |
19.7513 |
| 393 |
0.0100 |
0.4998 |
| 394 |
0.0200 |
1.4495 |
| 395 |
0.0287 |
4.5484 |
| 396 |
0.0287 |
5.7813 |
| 397 |
0.0767 |
22.2754 |
| 398 |
0.0325 |
2.8323 |
| 399 |
0.0808 |
12.8704 |
| 400 |
0.0550 |
15.6986 |
| 401 |
0.0617 |
8.6136 |
| 402 |
0.0617 |
10.2130 |
| 403 |
0.1050 |
36.0539 |
| 404 |
0.0400 |
8.6136 |
| 405 |
0.0400 |
10.2130 |
| 406 |
0.0443 |
14.0965 |
| 407 |
0.0853 |
26.0715 |
| 408 |
0.0373 |
1.4153 |
| 409 |
0.0179 |
3.7070 |
| 410 |
0.0600 |
29.4145 |
| 411 |
0.0117 |
0.6034 |
| 412 |
0.0534 |
3.9746 |
| 413 |
0.0585 |
4.6541 |
| 414 |
0.0526 |
9.7523 |
| 415 |
0.0122 |
2.8323 |
| 416 |
0.0315 |
1.4162 |
| 417 |
0.0125 |
1.9493 |
| 418 |
0.0233 |
3.0489 |
| 419 |
0.0162 |
1.9993 |
| 420 |
0.1029 |
23.1668 |
| 421 |
0.0467 |
3.0656 |
| 422 |
0.0467 |
2.9323 |
| 423 |
0.0633 |
10.1880 |
| 424 |
0.2417 |
20.8426 |
| 425 |
0.0298 |
1.1501 |
| 426 |
0.0485 |
24.8934 |
| 427 |
0.2133 |
1.3887 |
| 428 |
0.0233 |
1.1663 |
| 429 |
0.1117 |
8.8219 |
| 430 |
0.0671 |
6.6560 |
| 431 |
0.0300 |
17.4105 |
| Fuente: Grupo 3. |
5. Gráfica de dispersión
5.1 Gráfica de Dispersión General
x_crudo <- datos_filtrados$X_val
Y_crudo <- datos_filtrados$Y_val
plot(x_crudo, Y_crudo,
main = "Gráfica No 1: Diagrama de dispersión entre el Fósforo Total
y Nitratos en el estudio de la contaminación
hidrica en Europa",
xlab = "Fósforo Total (mg/L)",
ylab = "Nitratos (mg/L)",
col = rgb(135, 206, 235, maxColorValue = 255, alpha = 90),
pch = 16,
cex = 0.9,
xaxs = "r", yaxs = "r")

5.2 Tratamiento de Datos
# ------------------------------------------------------------------------------
# 5.2 TRATAMIENTO DE DATOS
# ------------------------------------------------------------------------------
#Limpieza inicial y coerción de tipos
datos_pareados$X_val <- as.numeric(gsub("-", NA, datos_pareados$X_val))
datos_pareados$Y_val <- as.numeric(gsub("-", NA, datos_pareados$Y_val))
# Eliminar casos incompletos en las variables de interés
datos_pareados <- datos_pareados[complete.cases(datos_pareados$X_val, datos_pareados$Y_val), ]
#Identificación y eliminación de valores atípicos mediante IQR
datos_filtrados <- datos_pareados
if (nrow(datos_pareados) > 5) {
Q1_X <- quantile(datos_pareados$X_val, 0.25, na.rm = TRUE)
Q3_X <- quantile(datos_pareados$X_val, 0.75, na.rm = TRUE)
IQR_X <- Q3_X - Q1_X
Q1_Y <- quantile(datos_pareados$Y_val, 0.25, na.rm = TRUE)
Q3_Y <- quantile(datos_pareados$Y_val, 0.75, na.rm = TRUE)
IQR_Y <- Q3_Y - Q1_Y
lin_inf_X <- Q1_X - 1.5 * IQR_X
lin_sup_X <- Q3_X + 1.5 * IQR_X
lin_inf_Y <- Q1_Y - 1.5 * IQR_Y
lin_sup_Y <- Q3_Y + 1.5 * IQR_Y
candidatos <- datos_pareados[
datos_pareados$X_val >= lin_inf_X & datos_pareados$X_val <= lin_sup_X &
datos_pareados$Y_val >= lin_inf_Y & datos_pareados$Y_val <= lin_sup_Y,
]
if (nrow(candidatos) > 0) {
datos_filtrados <- candidatos
}
}
#Verificación de valores iguales a cero
sum(datos_filtrados$X_val == 0)
## [1] 0
sum(datos_filtrados$Y_val == 0)
## [1] 0
# Agrupación y Promedios
# Agrupar valores de Fósforo y obtener el promedio de Nitratos
datos_filtrados$X_val_red <- round(datos_filtrados$X_val, 2)
datos_prom <- aggregate(
Y_val ~ X_val_red,
data = datos_filtrados,
FUN = mean,
na.rm = TRUE
)
# Variables de trabajo en escala directa
x <- datos_prom$X_val_red
y <- datos_prom$Y_val
5.3 Gráfica de Dispersión Simplificada
# =============================================================================
# GRÁFICA DE DISPERSIÓN AJUSTADA
# =============================================================================
plot(x, y,
main = "Gráfica No2: Diagrama simplificado entre Fósforo Total
y Nitratos en el estudio de la contaminación
hidrica en Europa",
xlab = "Fósforo Total (mg/L)",
ylab = "Nitratos (mg/L)",
col = "skyblue",
pch = 16,
cex = 1.3)

6. Conjetura
#La nube de puntos presenta una tendencia creciente y lineal sin embargo, el comportamiento de los datos no es homogéneo a lo largo del dominio.Esta falta de alineación perfecta hacia una trayectoria recta uniforme sugiere que un modelo lineal para toda la muestra presenta limitaciones importantes restringiendo la capacidad explicativa total del fenómeno. Aunque los miles de datos crudos muestran una dispersión caótica por el ruido ambiental, al estabilizar la varianza y extraer la tendencia centra, la masa de datos se reduce a una trayectoria de puntos representativos
7. Cálculo de parámetros
# ------------------------------------------------------------------------------
# 7. CÁLCULO DE PARÁMETROS DEL MODELO LINEAL DIRECTO
# ------------------------------------------------------------------------------
regresionlineal <- lm(y ~ x)
intercepto <- coef(regresionlineal)[1]
pendiente <- coef(regresionlineal)[2]
print(paste("Intercepto (beta 0):", round(intercepto, 4)))
## [1] "Intercepto (beta 0): 7.9518"
print(paste("Pendiente (beta 1):", round(pendiente, 4)))
## [1] "Pendiente (beta 1): 58.9755"
8. Comparación de la realidad con el modelo
# ------------------------------------------------------------------------------
# 8. GRÁFICA No3: REGRESIÓN LINEAL
# ------------------------------------------------------------------------------
plot(x, y,
main = "Gráfica No3: Regresión lineal entre Fósforo Total y Nitratos\nen el estudio de los cuerpos de agua en Europa",
xlab = "Fósforo Total (mg/L)",
ylab = "Nitratos (mg/L)",
col = "skyblue",
pch = 16,
cex = 1.3)
# Dibujar la línea de regresión sobre el gráfico directo
abline(regresionlineal, col = "red", lwd = 2)

9.Test de bondad
# ------------------------------------------------------------------------------
# 9. TEST DE BONDAD
# ------------------------------------------------------------------------------
r_valor <- cor(x, y, use = "complete.obs")
r_porcentaje <- r_valor * 100
r2_porcentaje <- summary(regresionlineal)$r.squared * 100
print(paste(" Coeficiente de correlación (%):", round(r_porcentaje, 2), "%"))
## [1] " Coeficiente de correlación (%): 78.73 %"
print(paste(" Coeficiente de determinación (R² %):", round(r2_porcentaje, 2), "%"))
## [1] " Coeficiente de determinación (R² %): 61.98 %"
10.Restricciones
## Dominio [X]:
# D = {x ∈ R+ U 0}
# Dominio [Y]:
# D = {y ∈ R+ U 0}
# ¿Existe algún valor en el dominio de X que, sustituido en el modelo matemático,
# genere un valor en Y fuera de su dominio?
# No. Al evaluar el modelo matemático dentro del dominio observado del Fósforo Total (0.0057≤X≤0.253333 mg/L), las concentraciones estimadas de Nitratos permanecen dentro de su dominio observado (0.20984≤Y≤43.60117 mg/L). Por ello, el modelo no genera valores fuera del rango de los datos cuando se utiliza dentro de su dominio de aplicación.
11.Estimaciones
# ==============================================================================
# 11. ESTIMACIONES
# ==============================================================================
# Valor de X para realizar la estimación directo (0.05 mg/L)
fosforo_real <- 0.05
# Estimación directa en el modelo lineal (Y = beta0 + beta1 * X)
nitratos_estimados <- intercepto + pendiente * fosforo_real
print(paste("Nitratos estimados para X = 0.05 mg/L:", round(nitratos_estimados, 2), "mg/L"))
## [1] "Nitratos estimados para X = 0.05 mg/L: 10.9 mg/L"
# ==============================================================================
# GRÁFICA No. 4: MODELO LINEAL CON ESTIMACIÓN (ESCALA DIRECTA)
# ==============================================================================
# Configuración de límites del lienzo
x_min <- min(x, na.rm = TRUE) * 0.9
x_max <- max(x, na.rm = TRUE) * 1.1
y_min <- min(y, na.rm = TRUE) * 0.9
y_max <- max(y, na.rm = TRUE) * 1.1
# Lienzo base directo
plot(
x,
y,
type = "n",
main = "Gráfica No. 4: Modelo de Regresión Lineal con Estimación",
xlab = "Fósforo Total (mg/L)",
ylab = "Nitratos (mg/L)",
xlim = c(x_min, x_max),
ylim = c(y_min, y_max),
xaxs = "r",
yaxs = "r"
)
# Recta del modelo (Roja)
abline(regresionlineal, col = "red", lwd = 2)
# Líneas auxiliares hacia los ejes
segments(x0 = fosforo_real, y0 = y_min - 5, x1 = fosforo_real, y1 = nitratos_estimados, col = "gray60", lty = 2)
segments(x0 = x_min - 5, y0 = nitratos_estimados, x1 = fosforo_real, y1 = nitratos_estimados, col = "gray60", lty = 2)
# Punto estimado (Rombo Azul)
points(fosforo_real, nitratos_estimados, col = "blue", pch = 18, cex = 1.6)
# Etiquetas de proyección
text(fosforo_real, y_min + (y_max-y_min)*0.05, labels = paste0(fosforo_real, " mg/L"), col = "blue", font = 2, pos = 4, cex = 0.7)
text(x_min + (x_max-x_min)*0.01, nitratos_estimados, labels = paste0(round(nitratos_estimados, 2), " mg/L"), col = "blue", pos = 3, font = 2, cex = 0.7)
# Leyenda compacta
txt1 <- paste0("Estimación: X = ", fosforo_real, " mg/L → Y = ", round(nitratos_estimados, 2), " mg/L")
txt2 <- paste0("Modelo: Y = ", round(intercepto, 2), " + ", round(pendiente, 2), "X")
textos_leyenda <- c(txt1, txt2)
ancho_perfecto <- max(strwidth(textos_leyenda, cex = 0.65))
legend(
"topright",
legend = textos_leyenda,
col = c("blue", "red"),
pch = c(18, NA),
lty = c(0, 1),
lwd = c(NA, 2),
bty = "o",
box.col = "black",
bg = "white",
cex = 0.65,
x.intersp = 0.4,
y.intersp = 0.8,
text.width = ancho_perfecto * 1.15
)

12. Conclusión
# Se confirmó la existencia de una relación lineal positiva entre ambas variables,representada por la ecuación matemática directa Y = 7.95 + 58,98X. El modelo presento un coeficiente de Correlación de Pearson del 82.59% pero un Coeficiente de Determinación (R²) limitado de apenas 68.22%. Esto demuestra cuantitativamente la ineficiencia de aplicar la ecuación de forma global.