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==