bd_iris <- iris
bd_faithful <-faithful
Ejercicio 1
factorial_personalizado <- function(n = 0) {
if (!is.numeric(n) || n < 0 || n != floor(n)) {
return("La entrada debe ser un número entero no negativo")
}
resultado <- 1
for (i in 1:n) {resultado <- resultado * i}
return(resultado)
}
cat("Sin valor : ", factorial_personalizado(), "\n")
## Sin valor : 0
cat("Con n = -2 : ", factorial_personalizado(-2), "\n")
## Con n = -2 : La entrada debe ser un número entero no negativo
cat("Con n = 5 : ", factorial_personalizado(5), "\n")
## Con n = 5 : 120
cat("Con n = 3.5 : ", factorial_personalizado(3.5), "\n")
## Con n = 3.5 : La entrada debe ser un número entero no negativo
Ejercicio 2
library(ggplot2)
plot(bd_faithful$waiting, bd_faithful$eruptions, col="lightskyblue",
xlab="Waiting", ylab="Eruptions", pch=16,
main="Recta de Regresión: Erupciones vs Tiempo de Espera")
modelo <- lm(eruptions ~ waiting, data = bd_faithful)
abline(modelo, col="red",lwd=2)
regres.predict <- predict(modelo)
segments(bd_faithful$waiting, bd_faithful$eruptions,
bd_faithful$waiting, regres.predict,
col = "gray", lty = 2)

¿Qué signo tienen la mayoría de los residuos? En la
gráfica se observa que los residuos están distribuidos tanto por encima
como por debajo de la recta de regresión, sin un patrón claro de signo
dominante. Esto indica que la relación entre las variables no es
perfectamente lineal.
¿Qué implicación tiene eso en términos de una regresión
lineal? Esto implica que la regresión lineal no modela
completamente la relación entre las variables.
Ejercicio 3
library(corrplot)
## Warning: package 'corrplot' was built under R version 4.3.3
## corrplot 0.95 loaded
matriz.correlaciones <- cor(bd_iris[, 1:4])
corrplot.mixed(matriz.correlaciones, upper="circle", lower="number", number.cex=2, order="alphabet", lower.col="black")

¿Qué par de variables tiene la correlacion más
fuerte? Petal Length y Petal Width.
¿Es positiva o negativa? Es positiva.
¿Cuál es la variable que parece tener una correlación débil
con las demás? Sepal Width es la variable que presenta la
correlación más débil con las demás, especialmente con Sepal Length
(−0.12).
Ejercicio 4
ggplot(bd_iris, aes(x = Petal.Length, y = Petal.Width, color = Species)) + geom_point(alpha = 0.5) + geom_smooth(method = "lm", se = FALSE, lwd = 1.5) + labs(title = "Rectas de Regresión por Especie", x = "Petal.Length", y = "Petal.Width") +
theme_minimal()
## `geom_smooth()` using formula = 'y ~ x'

¿Se observa superposición entre grupos?
El gráfico muestra una relación lineal positiva entre las variables
cuantitativas Petal.Length y Petal.Width para las tres especies de
flores: Setosa, Versicolor y Virginica. Esto significa que, en general,
a medida que aumenta la longitud del pétalo, también aumenta su
ancho.
Las especies Versicolor y Virginica presentan superposición. Esta
superposición indica que hay flores de ambas especies con
características similares en estas dos variables, lo que dificulta su
clasificación. Por lo cual, esta superposición podría generar errores al
predecir la especie si solo se utilizan estas dos variables.
Ejercicio 5
collatz <- function(n) {
pasos <- 0 # Contador de pasos
while (n != 1) {
# Mostrar el número y si es par o impar
if (n %% 2 == 0) {
print(paste(n, "es par"))
n <- n / 2
} else {
print(paste(n, "es impar"))
n <- 3 * n + 1
}
pasos <- pasos + 1
}
print(paste(n, "es impar"))
print(paste("La secuencia llegó a 1 en", pasos + 1 , "pasos."))
}
collatz(6)
## [1] "6 es par"
## [1] "3 es impar"
## [1] "10 es par"
## [1] "5 es impar"
## [1] "16 es par"
## [1] "8 es par"
## [1] "4 es par"
## [1] "2 es par"
## [1] "1 es impar"
## [1] "La secuencia llegó a 1 en 9 pasos."
collatz(15)
## [1] "15 es impar"
## [1] "46 es par"
## [1] "23 es impar"
## [1] "70 es par"
## [1] "35 es impar"
## [1] "106 es par"
## [1] "53 es impar"
## [1] "160 es par"
## [1] "80 es par"
## [1] "40 es par"
## [1] "20 es par"
## [1] "10 es par"
## [1] "5 es impar"
## [1] "16 es par"
## [1] "8 es par"
## [1] "4 es par"
## [1] "2 es par"
## [1] "1 es impar"
## [1] "La secuencia llegó a 1 en 18 pasos."
LS0tCnRpdGxlOiAiRWplcmNpY2lvczJEVl8yMDI1IgphdXRob3I6ICJLYXJsYSBNaXJleWEgVmVsZGVycmFpbiIKZGF0ZTogIjIwMjUtMDQtMjEiCm91dHB1dDogCiAgaHRtbF9kb2N1bWVudDoKICAgIHRvYzogVFJVRQogICAgdG9jX2Zsb2F0OiBUUlVFCiAgICBjb2RlX2Rvd25sb2FkOiBUUlVFCiAgICB0aGVtZTogY2VydWxlYW4KLS0tCgpgYGB7cn0KYmRfaXJpcyA8LSBpcmlzCmBgYAoKYGBge3J9CmJkX2ZhaXRoZnVsIDwtZmFpdGhmdWwKYGBgCgojIDxzcGFuIHN0eWxlID0gImNvbG9yOiAjM0E1RkNEOyI+RWplcmNpY2lvIDE8L3NwYW4+CgpgYGB7cn0KZmFjdG9yaWFsX3BlcnNvbmFsaXphZG8gPC0gZnVuY3Rpb24obiA9IDApIHsKICBpZiAoIWlzLm51bWVyaWMobikgfHwgbiA8IDAgfHwgbiAhPSBmbG9vcihuKSkgewogICAgcmV0dXJuKCJMYSBlbnRyYWRhIGRlYmUgc2VyIHVuIG7Dum1lcm8gZW50ZXJvIG5vIG5lZ2F0aXZvIikKICAgIH0KICByZXN1bHRhZG8gPC0gMQogIGZvciAoaSBpbiAxOm4pIHtyZXN1bHRhZG8gPC0gcmVzdWx0YWRvICogaX0KICByZXR1cm4ocmVzdWx0YWRvKQogIH0KYGBgCgoKYGBge3J9CmNhdCgiU2luIHZhbG9yICAgOiAiLCBmYWN0b3JpYWxfcGVyc29uYWxpemFkbygpLCAiXG4iKQoKY2F0KCJDb24gbiA9IC0yICA6ICIsIGZhY3RvcmlhbF9wZXJzb25hbGl6YWRvKC0yKSwgIlxuIikKCmNhdCgiQ29uIG4gPSA1ICAgOiAiLCBmYWN0b3JpYWxfcGVyc29uYWxpemFkbyg1KSwgIlxuIikKCmNhdCgiQ29uIG4gPSAzLjUgOiAiLCBmYWN0b3JpYWxfcGVyc29uYWxpemFkbygzLjUpLCAiXG4iKQpgYGAKCiMgPHNwYW4gc3R5bGUgPSAiY29sb3I6ICMzQTVGQ0Q7Ij5FamVyY2ljaW8gMjwvc3Bhbj4KCmBgYHtyfQpsaWJyYXJ5KGdncGxvdDIpCmBgYAoKYGBge3J9CnBsb3QoYmRfZmFpdGhmdWwkd2FpdGluZywgYmRfZmFpdGhmdWwkZXJ1cHRpb25zLCBjb2w9ImxpZ2h0c2t5Ymx1ZSIsCiAgICAgeGxhYj0iV2FpdGluZyIsIHlsYWI9IkVydXB0aW9ucyIsIHBjaD0xNiwKICAgICBtYWluPSJSZWN0YSBkZSBSZWdyZXNpw7NuOiBFcnVwY2lvbmVzIHZzIFRpZW1wbyBkZSBFc3BlcmEiKQoKbW9kZWxvIDwtIGxtKGVydXB0aW9ucyB+IHdhaXRpbmcsIGRhdGEgPSBiZF9mYWl0aGZ1bCkKYWJsaW5lKG1vZGVsbywgY29sPSJyZWQiLGx3ZD0yKQoKcmVncmVzLnByZWRpY3QgPC0gcHJlZGljdChtb2RlbG8pCgpzZWdtZW50cyhiZF9mYWl0aGZ1bCR3YWl0aW5nLCBiZF9mYWl0aGZ1bCRlcnVwdGlvbnMsCiAgICAgICAgIGJkX2ZhaXRoZnVsJHdhaXRpbmcsIHJlZ3Jlcy5wcmVkaWN0LAogICAgICAgICBjb2wgPSAiZ3JheSIsIGx0eSA9IDIpCmBgYAoKKirCv1F1w6kgc2lnbm8gdGllbmVuIGxhIG1heW9yw61hIGRlIGxvcyByZXNpZHVvcz8qKgpFbiBsYSBncsOhZmljYSBzZSBvYnNlcnZhIHF1ZSBsb3MgcmVzaWR1b3MgZXN0w6FuIGRpc3RyaWJ1aWRvcyB0YW50byBwb3IgZW5jaW1hIGNvbW8gcG9yIGRlYmFqbyBkZSBsYSByZWN0YSBkZSByZWdyZXNpw7NuLCBzaW4gdW4gcGF0csOzbiBjbGFybyBkZSBzaWdubyBkb21pbmFudGUuIEVzdG8gaW5kaWNhIHF1ZSBsYSByZWxhY2nDs24gZW50cmUgbGFzIHZhcmlhYmxlcyBubyBlcyBwZXJmZWN0YW1lbnRlIGxpbmVhbC4KCioqwr9RdcOpIGltcGxpY2FjacOzbiB0aWVuZSBlc28gZW4gdMOpcm1pbm9zIGRlIHVuYSByZWdyZXNpw7NuIGxpbmVhbD8qKgpFc3RvIGltcGxpY2EgcXVlIGxhIHJlZ3Jlc2nDs24gbGluZWFsIG5vIG1vZGVsYSBjb21wbGV0YW1lbnRlIGxhIHJlbGFjacOzbiBlbnRyZSBsYXMgdmFyaWFibGVzLiAKCiMgPHNwYW4gc3R5bGUgPSAiY29sb3I6ICMzQTVGQ0Q7Ij5FamVyY2ljaW8gMzwvc3Bhbj4KCmBgYHtyfQpsaWJyYXJ5KGNvcnJwbG90KQptYXRyaXouY29ycmVsYWNpb25lcyA8LSBjb3IoYmRfaXJpc1ssIDE6NF0pIApjb3JycGxvdC5taXhlZChtYXRyaXouY29ycmVsYWNpb25lcywgdXBwZXI9ImNpcmNsZSIsIGxvd2VyPSJudW1iZXIiLCBudW1iZXIuY2V4PTIsIG9yZGVyPSJhbHBoYWJldCIsIGxvd2VyLmNvbD0iYmxhY2siKQpgYGAKCgoqKsK/UXXDqSBwYXIgZGUgdmFyaWFibGVzIHRpZW5lIGxhIGNvcnJlbGFjaW9uIG3DoXMgZnVlcnRlPyoqClBldGFsIExlbmd0aCB5IFBldGFsIFdpZHRoLgoKKirCv0VzIHBvc2l0aXZhIG8gbmVnYXRpdmE/KioKRXMgcG9zaXRpdmEuCgoqKsK/Q3XDoWwgZXMgbGEgdmFyaWFibGUgcXVlIHBhcmVjZSB0ZW5lciB1bmEgY29ycmVsYWNpw7NuIGTDqWJpbCBjb24gbGFzIGRlbcOhcz8qKgpTZXBhbCBXaWR0aCBlcyBsYSB2YXJpYWJsZSBxdWUgcHJlc2VudGEgbGEgY29ycmVsYWNpw7NuIG3DoXMgZMOpYmlsIGNvbiBsYXMgZGVtw6FzLCBlc3BlY2lhbG1lbnRlIGNvbiBTZXBhbCBMZW5ndGggKOKIkjAuMTIpLgoKIyA8c3BhbiBzdHlsZSA9ICJjb2xvcjogIzNBNUZDRDsiPkVqZXJjaWNpbyA0PC9zcGFuPgoKYGBge3J9CmdncGxvdChiZF9pcmlzLCBhZXMoeCA9IFBldGFsLkxlbmd0aCwgeSA9IFBldGFsLldpZHRoLCBjb2xvciA9IFNwZWNpZXMpKSArIGdlb21fcG9pbnQoYWxwaGEgPSAwLjUpICsgZ2VvbV9zbW9vdGgobWV0aG9kID0gImxtIiwgc2UgPSBGQUxTRSwgbHdkID0gMS41KSArIGxhYnModGl0bGUgPSAiUmVjdGFzIGRlIFJlZ3Jlc2nDs24gcG9yIEVzcGVjaWUiLCB4ID0gIlBldGFsLkxlbmd0aCIsIHkgPSAiUGV0YWwuV2lkdGgiKSArCiAgdGhlbWVfbWluaW1hbCgpCmBgYAoKKirCv1NlIG9ic2VydmEgc3VwZXJwb3NpY2nDs24gZW50cmUgZ3J1cG9zPyoqCgpFbCBncsOhZmljbyBtdWVzdHJhIHVuYSByZWxhY2nDs24gbGluZWFsIHBvc2l0aXZhIGVudHJlIGxhcyB2YXJpYWJsZXMgY3VhbnRpdGF0aXZhcyBQZXRhbC5MZW5ndGggeSBQZXRhbC5XaWR0aCBwYXJhIGxhcyB0cmVzIGVzcGVjaWVzIGRlIGZsb3JlczogU2V0b3NhLCBWZXJzaWNvbG9yIHkgVmlyZ2luaWNhLiBFc3RvIHNpZ25pZmljYSBxdWUsIGVuIGdlbmVyYWwsIGEgbWVkaWRhIHF1ZSBhdW1lbnRhIGxhIGxvbmdpdHVkIGRlbCBww6l0YWxvLCB0YW1iacOpbiBhdW1lbnRhIHN1IGFuY2hvLgoKTGFzIGVzcGVjaWVzIFZlcnNpY29sb3IgeSBWaXJnaW5pY2EgcHJlc2VudGFuIHN1cGVycG9zaWNpw7NuLiBFc3RhIHN1cGVycG9zaWNpw7NuIGluZGljYSBxdWUgaGF5IGZsb3JlcyBkZSBhbWJhcyBlc3BlY2llcyBjb24gY2FyYWN0ZXLDrXN0aWNhcyBzaW1pbGFyZXMgZW4gZXN0YXMgZG9zIHZhcmlhYmxlcywgbG8gcXVlIGRpZmljdWx0YSBzdSBjbGFzaWZpY2FjacOzbi4gUG9yIGxvIGN1YWwsIGVzdGEgc3VwZXJwb3NpY2nDs24gcG9kcsOtYSBnZW5lcmFyIGVycm9yZXMgYWwgcHJlZGVjaXIgbGEgZXNwZWNpZSBzaSBzb2xvIHNlIHV0aWxpemFuIGVzdGFzIGRvcyB2YXJpYWJsZXMuCgojIDxzcGFuIHN0eWxlID0gImNvbG9yOiAjM0E1RkNEOyI+RWplcmNpY2lvIDU8L3NwYW4+CgpgYGB7cn0KY29sbGF0eiA8LSBmdW5jdGlvbihuKSB7CiAgcGFzb3MgPC0gMCAgIyBDb250YWRvciBkZSBwYXNvcwogIAogIHdoaWxlIChuICE9IDEpIHsKICAgICMgTW9zdHJhciBlbCBuw7ptZXJvIHkgc2kgZXMgcGFyIG8gaW1wYXIKICAgIGlmIChuICUlIDIgPT0gMCkgewogICAgICBwcmludChwYXN0ZShuLCAiZXMgcGFyIikpCiAgICAgIG4gPC0gbiAvIDIKICAgIH0gZWxzZSB7CiAgICAgcHJpbnQocGFzdGUobiwgImVzIGltcGFyIikpCiAgICAgIG4gPC0gMyAqIG4gKyAxCiAgICB9CiAgICBwYXNvcyA8LSBwYXNvcyArIDEgIAogIH0KCnByaW50KHBhc3RlKG4sICJlcyBpbXBhciIpKSAKICBwcmludChwYXN0ZSgiTGEgc2VjdWVuY2lhIGxsZWfDsyBhIDEgZW4iLCBwYXNvcyArIDEgLCAicGFzb3MuIikpCn0KCmBgYAoKCmBgYHtyfQpjb2xsYXR6KDYpCmBgYAoKYGBge3J9CmNvbGxhdHooMTUpCmBgYAoKCg==