install.packages("gapminder")
## Installing package into '/cloud/lib/x86_64-pc-linux-gnu-library/4.2'
## (as 'lib' is unspecified)
library(gapminder)
data(gapminder)
#paso 2
# Subconjuntar los datos y eliminar las observaciones faltantes
gapminder <- gapminder[complete.cases(gapminder), ]
#paso 3
# Convertir la variable "continent" en un factor
gapminder$continent <- factor(gapminder$continent)
#paso 4
# Convertir la variable "gdpPercap" en logaritmo natural
gapminder$gdpPercap <- log(gapminder$gdpPercap)
#paso 5
# Renombrar todas las variables en español
names(gapminder) <- c("País", "Continente", "Año", "Expectativa de vida", "Población", "PIB per cápita")
#paso 6
# Filtrar países con una población mayor a mil millones de habitantes
gapminder_filtrado <- subset(gapminder, Población > 1000000000)
# Mostrar el resultado del filtro
gapminder_filtrado
## # A tibble: 8 × 6
## País Continente Año `Expectativa de vida` Población `PIB per cápita`
## <fct> <fct> <int> <dbl> <int> <dbl>
## 1 China Asia 1982 65.5 1000281000 6.87
## 2 China Asia 1987 67.3 1084035000 7.23
## 3 China Asia 1992 68.7 1164970000 7.41
## 4 China Asia 1997 70.4 1230075000 7.74
## 5 China Asia 2002 72.0 1280400000 8.05
## 6 China Asia 2007 73.0 1318683096 8.51
## 7 India Asia 2002 62.9 1034172547 7.47
## 8 India Asia 2007 64.7 1110396331 7.80
# Paso 7
install.packages("ggplot2")
## Installing package into '/cloud/lib/x86_64-pc-linux-gnu-library/4.2'
## (as 'lib' is unspecified)
library(ggplot2)
ggplot(gapminder, aes(x=Año, y=`Expectativa de vida`, color=Continente)) +
geom_line() +
labs(x="Año", y="Expectativa de vida", color="Continente") +
theme_minimal()

# La expectativa de vida ha aumentado en todos los continentes pero con tasas de crecimiento diferentes. Por ejemplo Asia y África han aumentado lentamente a comparación de América y Europa. Además se puede notar un aumento pronunciado de la expectativa de vida a partit de la decada de 1950, esto se podría relacionar con los avances en la medicina.
# Paso 8
library(ggplot2)
# Graficar boxplot de la esperanza de vida por continente
ggplot(gapminder, aes(x=Continente, y=`Expectativa de vida`, fill=Continente)) +
geom_boxplot() +
labs(x="Continente", y="Esperanza de vida") +
theme_minimal()

# Se puede notar que hay diferencias significativas en la expectativa de vida entre los continentes. Se puede observar que la mediana de la expectativa de vida es mas alta en Europa y América, seguidos por Asia y Oceanía, mientras que África tiene la mediana más baja. Los boxplots indican que los datos son más dispersos en África y Asia, en cambio en Europa y América hay mayor concentración de valores alrededor de la mediana.
# Paso 9
library(ggplot2)
# Graficar scatterplot de la relación entre PIB per cápita y esperanza de vida
ggplot(gapminder, aes(x=`PIB per cápita`, y=`Expectativa de vida`, color=Continente)) +
geom_point() +
labs(x="PIB per cápita", y="Esperanza de vida", color="Continente") +
theme_minimal()

# Podemos observar que en general hay una relación positiva entre el PIB per cápita y la esperanza de vida, lo que sugiere que a medida que el PIB per cápita aumenta, la esperanza de vida también tiende a aumentar. También podemos ver que la mayoría de los países africanos se encuentran en la parte inferior izquierda del gráfico, lo que indica que tienen bajos niveles de PIB per cápita y esperanza de vida. Los países europeos y americanos, por otro lado, se encuentran en la parte superior derecha del gráfico, lo que indica que tienen altos niveles de PIB per cápita y esperanza de vida.
# Paso 10
install.packages("caret")
## Installing package into '/cloud/lib/x86_64-pc-linux-gnu-library/4.2'
## (as 'lib' is unspecified)
library(caret)
## Loading required package: lattice
# Fijar semilla para reproducibilidad
set.seed(123)
indices_entrenamiento <- sample(1:nrow(gapminder), round(0.7*nrow(gapminder)))
indices_prueba <- setdiff(1:nrow(gapminder), indices_entrenamiento)
# Dividir los datos en entrenamiento y prueba
datos_entrenamiento <- gapminder[indices_entrenamiento,]
datos_prueba <- gapminder[indices_prueba,]
print(indices_entrenamiento)
## [1] 415 463 179 526 195 938 1142 1323 1253 1268 1038 1398 665 602
## [15] 1627 709 1011 1115 953 348 1017 1673 1379 840 26 519 1450 1683
## [29] 211 932 1614 593 555 373 844 1167 544 490 1645 905 937 1047
## [43] 923 956 309 1159 1248 166 217 1314 581 72 588 1599 141 722
## [57] 859 153 294 277 1487 41 431 90 316 1247 528 1140 1630 774
## [71] 747 456 598 1063 1183 752 1233 374 34 516 13 69 755 409
## [85] 1332 1302 1113 928 1006 537 983 291 1448 1310 671 121 1134 1182
## [99] 1088 1507 1501 480 67 1014 1109 165 1075 1098 1202 1386 236 610
## [113] 330 726 127 212 686 814 1334 931 878 243 847 1137 1674 619
## [127] 477 151 666 767 160 1415 155 426 1029 326 1304 789 1262 1363
## [141] 985 39 822 986 137 455 589 1107 1563 196 680 1611 500 1564
## [155] 344 1586 459 944 1044 872 1700 1188 1076 876 534 177 554 827
## [169] 84 633 1416 1326 597 706 1579 1454 710 712 1452 672 1274 1453
## [183] 1021 398 1013 1638 381 40 522 473 200 1149 265 775 186 1276
## [197] 458 1176 831 1078 919 235 1313 185 413 627 1516 1333 1505 205
## [211] 779 564 794 1573 1621 1370 1574 468 920 1081 457 617 357 279
## [225] 270 1584 646 347 1153 218 618 698 337 797 1680 539 981 1661
## [239] 724 1414 1246 1610 861 657 960 1445 1485 660 163 238 578 1592
## [253] 1249 1413 117 648 1079 1241 1532 557 1704 1158 957 873 688 757
## [267] 988 447 1128 821 1506 711 1234 349 1425 1282 1539 386 1165 24
## [281] 945 1023 1154 1651 1401 170 1528 1258 422 508 64 80 548 987
## [295] 475 1613 765 1367 1347 479 1135 791 1665 1341 807 1464 1311 292
## [309] 1250 297 860 605 637 1631 1261 1421 1530 1057 83 866 1666 1628
## [323] 1423 76 1118 1054 1447 946 1199 1690 323 115 850 608 682 1699
## [337] 1120 397 1172 989 392 1677 1362 744 1583 106 11 625 1427 403
## [351] 461 1650 31 1139 94 16 178 1428 524 924 204 1376 1671 1478
## [365] 384 1146 315 259 494 1502 1072 1124 1016 1132 1325 10 1419 1568
## [379] 402 1383 108 8 626 261 541 1569 1597 282 1291 1286 1344 1243
## [393] 696 667 990 1143 452 856 622 1420 1060 1612 1264 891 1034 1692
## [407] 1129 793 1703 1204 278 241 1430 679 37 1588 566 19 378 549
## [421] 1695 48 1212 464 393 1163 670 1213 311 189 38 1108 319 1289
## [435] 846 120 1527 441 1223 599 1653 714 677 81 1303 134 424 756
## [449] 6 1152 879 668 49 193 1689 1548 303 1366 898 190 191 446
## [463] 119 1083 817 61 1331 1373 930 950 1473 1580 1227 758 993 947
## [477] 690 251 560 643 545 1553 162 576 168 788 78 1299 445 995
## [491] 95 379 221 1312 1185 620 448 242 927 1587 926 407 229 785
## [505] 699 1195 1663 1475 1449 79 1543 237 579 929 1534 493 730 209
## [519] 1265 877 358 1065 904 1476 848 886 450 396 639 1643 201 52
## [533] 1602 1554 577 1484 1015 1546 124 592 740 45 91 653 606 1590
## [547] 1032 839 595 1634 499 1186 1585 902 71 1390 776 1541 896 997
## [561] 1480 1560 673 628 1070 1465 531 1596 836 1691 331 901 502 1409
## [575] 743 829 1504 729 1623 504 1100 1026 1179 786 855 1375 1096 449
## [589] 888 971 335 1686 1080 1474 271 207 436 1147 1001 601 387 1092
## [603] 1361 565 792 742 1136 523 586 256 1133 88 1358 1380 1296 700
## [617] 842 685 280 803 1207 778 172 1488 1644 1191 741 365 591 834
## [631] 1360 535 1297 982 112 1633 1567 631 1283 969 482 105 1211 1526
## [645] 1625 1157 892 139 481 843 250 1523 1535 1544 1438 1697 258 635
## [659] 262 1181 1617 206 199 1061 753 1521 818 1121 1457 1477 1463 55
## [673] 1557 1394 1675 1073 194 460 1221 998 658 266 713 355 1365 470
## [687] 339 1514 1193 1230 1048 380 939 893 766 1637 5 469 1405 612
## [701] 411 1203 899 655 746 615 58 391 290 287 466 530 488 1205
## [715] 1512 1542 913 647 478 1607 321 9 867 281 642 907 708 1517
## [729] 148 651 18 1235 1039 963 1685 1639 1479 732 1393 383 551 1577
## [743] 1020 471 1550 1220 161 421 444 29 1052 1293 1217 42 922 44
## [757] 224 1049 912 964 352 833 862 826 1656 1062 683 451 56 1294
## [771] 401 1112 611 654 1581 375 1123 1084 1086 734 520 1036 1116 74
## [785] 86 434 17 649 1456 485 1007 1437 1604 656 820 474 1522 35
## [799] 538 781 36 687 503 1490 28 669 812 310 1647 285 976 93
## [813] 269 717 675 372 517 936 77 961 970 684 584 126 1190 152
## [827] 720 75 1045 1160 1603 304 783 943 694 1378 1486 951 100 25
## [841] 875 180 293 1469 1022 1676 547 703 343 1381 1600 433 1131 1002
## [855] 1059 366 1626 1518 1174 815 641 1382 681 425 1556 1206 1125 215
## [869] 103 1426 400 2 674 1218 158 156 837 1432 286 1127 423 1319
## [883] 707 430 1200 1237 750 1226 650 540 716 754 385 949 853 958
## [897] 164 819 1114 1122 174 864 1067 1024 1436 999 1317 420 887 515
## [911] 940 1097 51 784 1103 230 1547 223 613 145 645 1499 806 1074
## [925] 1371 318 419 603 1050 1105 143 1198 852 542 1222 1654 130 208
## [939] 992 1570 885 728 275 723 1648 197 1087 968 487 1668 1066 1576
## [953] 979 567 1444 1254 529 327 1267 869 1510 1605 1615 955 693 1519
## [967] 1606 240 1330 942 897 1591 1019 536 830 621 702 1141 367 787
## [981] 1316 1236 1619 239 432 984 1687 1470 46 1408 725 857 1472 1095
## [995] 1681 1155 1279 1658 332 96 1271 467 1595 934 917 825 382 159
## [1009] 678 289 882 1403 202 884 1285 1435 763 144 1256 863 89 462
## [1023] 1214 264 171 1008 142 1117 908 4 1629 1455 210 1346 640 1439
## [1037] 798 1655 761 978 738 1018 1184 32 1601 1201 760 1126 1431 1578
## [1051] 558 1300 312 1 638 498 1173 1679 759 394 1397 1364 255 1252
## [1065] 1616 1461 1531 1164 1429 1520 1562 1012 1150 1508 1342 1355 1306 435
## [1079] 363 1493 1389 849 974 719 1417 802 346 1168 453 832 198 54
## [1093] 73 935 20 175 114 972 1320 1593 465 1594 1702 1058 1368 92
## [1107] 428 492 267 1287 790 63 356 406 1572 1662 252 390 228 506
## [1121] 813 1537 1555 389 1489 1232 1309 663 1298 572 636 918 1216 553
## [1135] 1099 721 816 510 1196 596 1270 585 1460 1170 1224 248 573 1069
## [1149] 1483 102 632 359 1177 489 1451 227 533 900 1471 154 1641 1384
## [1163] 376 12 1446 1353 749 736 1219 1340 1215 60 1119 1003 692 167
## [1177] 306 838 132 1404 916 996 484 933 925 1068 1374 213 1660 1209
## [1191] 1321 1031 845
print(indices_prueba)
## [1] 3 7 14 15 21 22 23 27 30 33 43 47 50 53 57
## [16] 59 62 65 66 68 70 82 85 87 97 98 99 101 104 107
## [31] 109 110 111 113 116 118 122 123 125 128 129 131 133 135 136
## [46] 138 140 146 147 149 150 157 169 173 176 181 182 183 184 187
## [61] 188 192 203 214 216 219 220 222 225 226 231 232 233 234 244
## [76] 245 246 247 249 253 254 257 260 263 268 272 273 274 276 283
## [91] 284 288 295 296 298 299 300 301 302 305 307 308 313 314 317
## [106] 320 322 324 325 328 329 333 334 336 338 340 341 342 345 350
## [121] 351 353 354 360 361 362 364 368 369 370 371 377 388 395 399
## [136] 404 405 408 410 412 414 416 417 418 427 429 437 438 439 440
## [151] 442 443 454 472 476 483 486 491 495 496 497 501 505 507 509
## [166] 511 512 513 514 518 521 525 527 532 543 546 550 552 556 559
## [181] 561 562 563 568 569 570 571 574 575 580 582 583 587 590 594
## [196] 600 604 607 609 614 616 623 624 629 630 634 644 652 659 661
## [211] 662 664 676 689 691 695 697 701 704 705 715 718 727 731 733
## [226] 735 737 739 745 748 751 762 764 768 769 770 771 772 773 777
## [241] 780 782 795 796 799 800 801 804 805 808 809 810 811 823 824
## [256] 828 835 841 851 854 858 865 868 870 871 874 880 881 883 889
## [271] 890 894 895 903 906 909 910 911 914 915 921 941 948 952 954
## [286] 959 962 965 966 967 973 975 977 980 991 994 1000 1004 1005 1009
## [301] 1010 1025 1027 1028 1030 1033 1035 1037 1040 1041 1042 1043 1046 1051 1053
## [316] 1055 1056 1064 1071 1077 1082 1085 1089 1090 1091 1093 1094 1101 1102 1104
## [331] 1106 1110 1111 1130 1138 1144 1145 1148 1151 1156 1161 1162 1166 1169 1171
## [346] 1175 1178 1180 1187 1189 1192 1194 1197 1208 1210 1225 1228 1229 1231 1238
## [361] 1239 1240 1242 1244 1245 1251 1255 1257 1259 1260 1263 1266 1269 1272 1273
## [376] 1275 1277 1278 1280 1281 1284 1288 1290 1292 1295 1301 1305 1307 1308 1315
## [391] 1318 1322 1324 1327 1328 1329 1335 1336 1337 1338 1339 1343 1345 1348 1349
## [406] 1350 1351 1352 1354 1356 1357 1359 1369 1372 1377 1385 1387 1388 1391 1392
## [421] 1395 1396 1399 1400 1402 1406 1407 1410 1411 1412 1418 1422 1424 1433 1434
## [436] 1440 1441 1442 1443 1458 1459 1462 1466 1467 1468 1481 1482 1491 1492 1494
## [451] 1495 1496 1497 1498 1500 1503 1509 1511 1513 1515 1524 1525 1529 1533 1536
## [466] 1538 1540 1545 1549 1551 1552 1558 1559 1561 1565 1566 1571 1575 1582 1589
## [481] 1598 1608 1609 1618 1620 1622 1624 1632 1635 1636 1640 1642 1646 1649 1652
## [496] 1657 1659 1664 1667 1669 1670 1672 1678 1682 1684 1688 1693 1694 1696 1698
## [511] 1701
# Paso 11
# Entrenar un modelo de regresión lineal simple
# Seleccionar variables para el modelo
datos_modelo <- datos_entrenamiento[, c("Expectativa de vida", "PIB per cápita")]
# Ajustar el modelo de regresión lineal simple
modelo <- lm(`Expectativa de vida` ~ `PIB per cápita`, data = datos_modelo)
# Predecir la esperanza de vida en los datos de prueba
predicciones <- predict(modelo, newdata = datos_prueba)
# Paso 12
# Calcular el error cuadrático medio (MSE)
MSE <- mean((datos_prueba$`Expectativa de vida` - predicciones)^2)
# Calcular el coeficiente de determinación (R²)
SSR <- sum((predicciones - mean(datos_prueba$`Expectativa de vida`))^2)
SST <- sum((datos_prueba$`Expectativa de vida` - mean(datos_prueba$`Expectativa de vida`))^2)
R2 <- SSR / SST
# Imprimir los resultados
cat("MSE del modelo:", MSE, "\n")
## MSE del modelo: 54.37944
cat("R² del modelo:", R2, "\n")
## R² del modelo: 0.6756668