# Cargar las librerías necesarias
# Si no tienes ggplot2 instalado, puedes descomentar la siguiente línea para instalarlo
# install.packages("ggplot2")
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.4.1
# 1. Datos
# Crear un data frame con los datos de horas de estudio y calificaciones
datos <- data.frame(
Estudiante = 1:15,
Horas_Estudio = c(2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16),
Calificacion = c(65, 70, 72, 75, 78, 80, 83, 85, 88, 90, 92, 94, 96, 98, 100)
)
# 2. Ajustar el modelo de regresión lineal
modelo <- lm(Calificacion ~ Horas_Estudio, data = datos)
# 3. Resumen del modelo
summary(modelo)
##
## Call:
## lm(formula = Calificacion ~ Horas_Estudio, data = datos)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2.5000 -0.4000 0.2571 0.6857 1.1857
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 62.6714 0.6089 102.92 < 2e-16 ***
## Horas_Estudio 2.4143 0.0610 39.58 6.14e-15 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.021 on 13 degrees of freedom
## Multiple R-squared: 0.9918, Adjusted R-squared: 0.9911
## F-statistic: 1567 on 1 and 13 DF, p-value: 6.14e-15
# 4. Predecir la calificación para 4.5 horas de estudio
horas_nuevas <- data.frame(Horas_Estudio = 4.5)
prediccion <- predict(modelo, newdata = horas_nuevas)
cat("Predicción de calificación para 4.5 horas de estudio:", round(prediccion, 2), "\n")
## Predicción de calificación para 4.5 horas de estudio: 73.54
# 5. Graficar los datos y la línea de regresión
ggplot(datos, aes(x = Horas_Estudio, y = Calificacion)) +
geom_point(color = "blue", size = 3) + # Puntos de datos
geom_smooth(method = "lm", se = FALSE, color = "red") + # Línea de regresión
labs(title = "Regresión Lineal: Calificación vs Horas de Estudio",
x = "Horas de Estudio",
y = "Calificación") +
theme_minimal()
## `geom_smooth()` using formula = 'y ~ x'

# 6. Agregar la predicción al gráfico
# Agrega un punto de predicción
ggplot(datos, aes(x = Horas_Estudio, y = Calificacion)) +
geom_point(color = "blue", size = 3) + # Puntos de datos
geom_smooth(method = "lm", se = FALSE, color = "red") + # Línea de regresión
labs(title = "Regresión Lineal: Calificación vs Horas de Estudio",
x = "Horas de Estudio",
y = "Calificación") +
geom_point(aes(x = 4.5, y = prediccion), color = "green", size = 4) + # Predicción
theme_minimal() +
annotate("text", x = 4.5, y = prediccion + 3, label = paste("Predicción:\n", round(prediccion, 2)), color = "green", size = 4)
## Warning in geom_point(aes(x = 4.5, y = prediccion), color = "green", size = 4): All aesthetics have length 1, but the data has 15 rows.
## ℹ Please consider using `annotate()` or provide this layer with data containing
## a single row.
## `geom_smooth()` using formula = 'y ~ x'
