Predecir rating de cacaco con respoecto a % de cacao
Construir un modelo de regresión lineal simple que identifique a la variable indeéndiente es el % de cacaco y al rating es la variable dependiente.
Construir el modelo para identificar los coeficiente a y b
Hacer una predicción con tres valores de % de cacao para predecir el rating
library(readr)
library(ggplot2)
library(dplyr)
datos <- read.csv("https://raw.githubusercontent.com/rpizarrog/Ciencia-de-los-Datos-Descriptivo-Predictivo/refs/heads/main/datos/flavors_of_cacao_limpio.csv")
head(datos)
## porcentaje rating
## 1 0.63 3.75
## 2 0.70 2.75
## 3 0.70 3.00
## 4 0.70 3.50
## 5 0.70 3.50
## 6 0.70 2.75
tail(datos)
## porcentaje rating
## 1790 0.58 3.50
## 1791 0.70 3.75
## 1792 0.65 3.00
## 1793 0.65 3.50
## 1794 0.62 3.25
## 1795 0.65 3.00
modelo <- lm(data = datos, formula = rating ~ porcentaje)
summary(modelo)
##
## Call:
## lm(formula = rating ~ porcentaje, data = datos)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2.20715 -0.31967 0.04285 0.31781 1.79285
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 4.0806 0.1268 32.192 < 2e-16 ***
## porcentaje -1.2478 0.1761 -7.085 1.98e-12 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.4716 on 1793 degrees of freedom
## Multiple R-squared: 0.02724, Adjusted R-squared: 0.02669
## F-statistic: 50.2 on 1 and 1793 DF, p-value: 1.985e-12
a <- modelo$coefficients[1]
b <- modelo$coefficients[2]
a
## (Intercept)
## 4.080596
b
## porcentaje
## -1.247781
Valores de %
a_predecir <- data.frame(porcentaje = c(0.30, 0.60, 0.90))
# Predicciones
predicciones <- round(predict(modelo, newdata = a_predecir), 2)
predicciones
## 1 2 3
## 3.71 3.33 2.96
ggplot(datos, aes(x = porcentaje, y = rating)) +
geom_point(color = "blue", alpha = 0.7) + # Puntos de datos
geom_smooth(method = "lm", se = TRUE, color = "red") + # Línea de regresión
labs(
title = "Regresión Lineal Simple",
x = "Variable Independiente (x)",
y = "Variable Dependiente (y)"
) +
theme_minimal()
## `geom_smooth()` using formula = 'y ~ x'
# otra forma
# ggplot(datos) +
# geom_point(aes(x))
Si se fuera muy exigente con el modelo que tuviere un valor de R square por encima del 50%, este modelo y con estos datos el rating tan solo se ve representado de acuerdo al valor de Multiple R-squared: 0.02724 o sea tan solo del 2% por lo que el modelo no es un buen predictor con estos datos.
Para valores nuevos de 0.30, 0.60 y 0.90 en valores de obscuridad de cacao las prediciones de accuerdo al modelo son 3.71, 3.33 y 2.96 respectivamente.