Usuario:JulioSergio/Taller

Informática: Código en el lenguaje de programación R

editar

En lo que sigue, se retoma el mismo problema abordado por los dos códigos de programación anteriores, pero ahora en el lenguaje de programación R, y se añaden algunos puntos de muestreo al final del mismo. El total de puntos sería como se muestra en la tabla siguiente:

Tiempo (días) % de avance
1 5
2 5
3 5
4 6.8
5 9
10 10
20 16
29 30
38 33
50 43
# 
# Lenguaje de Programacion: R
# Ejemplo de "Linear Regression"
# Licencia: GNU/GPL
# -----------------------------
# datos:
x <- 1:5                # dias
y <- c(5, 5, 5, 6.8, 9) # % de avance

futuro <- 100  # conclusion: 100%

# solucion:
reg <- function(x, y) {
    n <- length(x) # cantidad de datos
    Sx  <- sum(x)
    Sy  <- sum(y)
    Sxx <- sum(x^2)
    Sxy <- sum(x*y)
  
    # la pendiente, ecuacion (11):
    b <- (Sx*Sy - n*Sxy)/(Sx^2-n*Sxx)
    # la intersección con ordenadas, ecuacion (12):
    a <- (Sy - b*Sx)/n
    return(list(a=a,b=b))
}

# ejecucion de la solucion
#   con los primeros 5 datos
sol <- reg(x,y) # sol$a, sol$b; intersecto y pendiente respectivamente

# Ecuaciones
fy <- function(x) {sol$a + sol$b*x}   # y a partir de x
fx <- function(y) {(y - sol$a)/sol$b} # x a partir de y

# Con los primeros 5 datos se predice:
print(paste("(con 5 datos) Se espera concluir a los", round(fx(futuro)), "dias"))

# --------------------------
# Se agregan otros 5 datos:
x <- c(x, 10, 20, 29, 38, 50)
y <- c(y, 10, 16, 30, 33, 43)

# 2a. ejecucion de la solucion,
#   con 10 datos
sol <- reg(x,y)

# Con todos los 10 datos se predice:
print(paste("(con 10 datos) Se espera concluir a los", round(fx(futuro)), "dias"))

# Gráfica
plot(x,y, col="red", 
     xlab = "días", ylab = "% avance",
     xlim = c(0, fx(futuro)), ylim = c(0,100))
abline(sol$a, sol$b, col="blue")

# -----------------------------
# RESULTADO DEL CÓDIGO ANTERIOR:
## [1] "(con 5 datos) Se espera concluir a los 99 dias"
## [1] "(con 10 datos) Se espera concluir a los 122 dias"

El código anterior además produce la gráfica que se muestra en el recuadro.

 
Gráfica producida con el código en el lenguaje de programación R

--JulioSergio (discusión) 23:12 12 nov 2019 (UTC)