Modelo de regresion lineal

Juliana Aguirre Montaño 202451026 - María Juliana Zapata 202451292

2025-11-24

Modelo de regresión lineal simple

Un modelo de regresión lineal es una herramienta estadística que se utiliza para analizar la relación entre dos variables. Tiene como objetivo estimar cómo cambia una variable (Y) cuando cambia otra variable (X).

Componentes del modelo

Fórmula del modelo de regresión lineal

\[Y = \beta_0 + \beta_1 X + \epsilon\] Esto quiere decir que la variable Y se puede aproximar como una línea recta que depende de X.

¿Qué es R²?

Indica qué tanto del comportamiento de Y puede explicarse usando X.

Su fórmula es:

\[ R^2 = 1 - \frac{SSE}{SST} \] - SSE: Suma de errores (qué tanto se equivoca el modelo)
- SST: Variabilidad total de Y

Interpretación de sus valores (0 a 1):

Hipótesis del modelo de regresión

En regresión siempre probamos si existe o no relación entre X y Y.

Hipótesis nula (H₀)

\[ H_0: \beta_1 = 0 \] Significa:
- “La variable X no tiene relación con Y”
- “Cambios en X no generan cambios en Y”

Hipótesis alternativa (H₁)

\[ H_1: \beta_1 \neq 0 \] Significa:
- “La variable X sí está relacionada con Y”
- “Cambios en X sí generan cambios en Y”

Contextualización

Steam

Steam, lanzada por Valve en 2003, es la plataforma líder de distribución digital de videojuegos para PC. Funciona como un ecosistema completo: tienda virtual, biblioteca en la nube, foros, reseñas, logros y más. Con miles de títulos y millones de usuarios, Steam genera un volumen significativo de datos sobre hábitos y preferencias de los jugadores.

Relevancia del Análisis de Datos

Steam ofrece información valiosa para entender tendencias, popularidad, precios y comportamiento del consumidor. Analizar estos datos permite identificar factores que influyen en el éxito de los juegos y comprender la dinámica actual del mercado del gaming.

Hipótesis 1

Relacion entre las variables de Steam:

Hipótesis nula (H0): Las calificaciones positivas no influyen en las calificaciones negativas de un videojuego. Matemáticamente: \[ H_0: \beta_1 = 0 \] Hipótesis alternativa (H1):

Las calificaciones positivas sí influyen en las calificaciones negativas de un videojuego. Matemáticamente: \[ H_1: \beta_1 \neq 0 \] Si β₁ = 0, el cambio en calificaciones positivas no predice cambios en las negativas → no hay relación.

Si β₁ ≠ 0, un cambio en calificaciones positivas sí predice cambios en las negativas → sí hay relación.

Paso 1 – Analizar la asociación entre las variables de insumo

En este primer paso se examina si existe una relación entre las calificaciones positivas y las calificaciones negativas de los videojuegos. Para ello, se utiliza un diagrama de dispersión y el cálculo de correlación.

videojuegos <- read.csv("videojuegos.csv")
names(videojuegos)
##  [1] "appid"            "name"             "release_date"     "english"         
##  [5] "developer"        "publisher"        "platforms"        "required_age"    
##  [9] "categories"       "genres"           "steamspy_tags"    "achievements"    
## [13] "positive_ratings" "negative_ratings" "average_playtime" "median_playtime" 
## [17] "owners"           "price"
plot(videojuegos$positive_ratings,
     videojuegos$negative_ratings,
     main = "Relación entre calificaciones positivas y negativas",
     xlab = "Calificaciones positivas",
     ylab = "Calificaciones negativas",
     pch = 19,
     col = rgb(0, 0.4, 0.8, 0.3),
     cex = 0.6,               
     xlim = c(0, max(videojuegos$positive_ratings, na.rm = TRUE)),
     ylim = c(0, max(videojuegos$negative_ratings, na.rm = TRUE)))
abline(lm(negative_ratings ~ positive_ratings, data = videojuegos),
       col = "red",
       lwd = 2)

En el gráfico se observa que los puntos muestran una tendencia lineal creciente, lo que sugiere una relación directa entre las variables. La correlación confirma que esta relación es lineal y consistente.

Dado que ambas herramientas muestran una asociación clara, es válido continuar con el modelo de regresión.

Paso 2 – Validar el modelo (ANOVA)

La tabla ANOVA indica si el modelo de regresión lineal simple es estadísticamente significativo. En este caso, el p-value del modelo es:

p-value < 2.2e-16, que es muchísimo menor que 0.05.

Esto significa que el modelo es altamente significativo y sí explica parte de la variación en la variable dependiente (calificaciones negativas).

Por tanto, la regresión tiene sentido y se justifica continuar con su interpretación.

cor.test(videojuegos$positive_ratings,
         videojuegos$negative_ratings)
## 
##  Pearson's product-moment correlation
## 
## data:  videojuegos$positive_ratings and videojuegos$negative_ratings
## t = 194.1, df = 27073, p-value < 2.2e-16
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  0.757778 0.767740
## sample estimates:
##       cor 
## 0.7628043
modelo <- lm(negative_ratings ~ positive_ratings, data = videojuegos)

Paso 3 – ¿Qué tanto explica mi modelo? (Coeficiente de determinación R²)

En este paso se interpreta el R², que muestra qué porcentaje de la variabilidad de las calificaciones negativas es explicado por las calificaciones positivas.

En este caso:

R² = 0.5819

Esto significa que el 58.19% de las variaciones en las calificaciones negativas se explican por el número de calificaciones positivas.

Este es un valor moderado-alto, lo que indica que el modelo tiene una capacidad explicativa importante y describe bien el fenómeno.

summary(modelo)
## 
## Call:
## lm(formula = negative_ratings ~ positive_ratings, data = videojuegos)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -54802    -39    -37    -25 401628 
## 
## Coefficients:
##                   Estimate Std. Error t value Pr(>|t|)    
## (Intercept)      3.880e+01  1.686e+01   2.301   0.0214 *  
## positive_ratings 1.721e-01  8.868e-04 194.100   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2771 on 27073 degrees of freedom
## Multiple R-squared:  0.5819, Adjusted R-squared:  0.5819 
## F-statistic: 3.767e+04 on 1 and 27073 DF,  p-value: < 2.2e-16

Paso 4 – ¿Cuáles son los parámetros? (Tabla de coeficientes)

Aquí se interpretan el intercepto (β₀) y la pendiente (β₁):

β₀ = 38.7988862 Es la cantidad estimada de calificaciones negativas cuando las positivas son 0.

β₁ = 0.1721321 Por cada 1 calificación positiva adicional, se espera un aumento promedio de 0.172 calificaciones negativas.

Además, el coeficiente β₁ también tiene un p-value extremadamente pequeño (≈ 0), lo que indica que es significativo:

p-value < 0.05 → la variable X sí influye en Y.

Por tanto, existe evidencia estadística de que las calificaciones positivas tienen un efecto real sobre las negativas.

coef(modelo)
##      (Intercept) positive_ratings 
##       38.7988862        0.1721321
summary(modelo)$coefficients
##                    Estimate   Std. Error    t value   Pr(>|t|)
## (Intercept)      38.7988862 1.686265e+01   2.300876 0.02140618
## positive_ratings  0.1721321 8.868213e-04 194.100131 0.00000000

Paso 5 – Construir la ecuación y predecir

predict(modelo, newdata = data.frame(positive_ratings = 500))
##        1 
## 124.8649

Ecuación del Modelo de Regresión Lineal:

Intercepto (a): 38.7988862

Pendiente (b): 0.1721321

Entonces, la ecuación del modelo es:

\[ \hat{Y} = 38.7988862 + 0.1721321X \]

Donde:

Y = calificaciones negativas estimadas.

X = calificaciones positivas.

Esta ecuación permite hacer predicciones. Por ejemplo, si un videojuego tiene 500 calificaciones positivas, se puede estimar cuántas calificaciones negativas recibiría usando el modelo.

Si un videojuego tuviera cero calificaciones positivas, se esperaría que tenga 38.79 calificaciones negativas. Por cada 1 calificación positiva adicional, se espera que las calificaciones negativas aumenten en 0.172 en promedio.

Hipótesis 2

Relacion entre las variables de Steam:

Hipótesis nula (H0):
Las calificaciones negativas no tienen efecto sobre el tiempo promedio de juego de los usuarios. Matemáticamente: \[ H_0: \beta_1 = 0 \]

Hipótesis alternativa (H1):
Las calificaciones negativas sí influyen en el tiempo promedio de juego de los usuarios. Matemáticamente: \[ H_1: \beta_1 \neq 0 \] ### Paso 1 – Analizar la asociación entre las variables de insumo

En este primer paso se explora si existe una relación entre las calificaciones negativas y el tiempo promedio de juego de los usuarios. Para ello se utiliza un diagrama de dispersión y un cálculo de correlación.

El diagrama de dispersión muestra una tendencia lineal ligeramente creciente, lo que sugiere una relación débil pero existente entre ambas variables. La correlación confirma que la asociación es lineal, aunque no muy fuerte.

Dado que hay evidencia de una relación lineal, es válido continuar y estimar el modelo de regresión.

videojuegos <- read.csv("videojuegos.csv")
names(videojuegos)
##  [1] "appid"            "name"             "release_date"     "english"         
##  [5] "developer"        "publisher"        "platforms"        "required_age"    
##  [9] "categories"       "genres"           "steamspy_tags"    "achievements"    
## [13] "positive_ratings" "negative_ratings" "average_playtime" "median_playtime" 
## [17] "owners"           "price"
plot(
  videojuegos$negative_ratings,
  videojuegos$average_playtime,
  main = "Relación entre Calificaciones Negativas y Tiempo Promedio de Juego",
  xlab = "Calificaciones Negativas",
  ylab = "Tiempo Promedio de Juego (minutos)",
  pch = 19,
  col = rgb(0.8, 0.1, 0.1, 0.5),  
  cex = 0.6             
)

abline(lm(negative_ratings ~ average_playtime, data = videojuegos),
       col = "red",
       lwd = 2)

### Paso 2 – Validar el modelo (ANOVA)

En este paso se determina si el modelo de regresión lineal simple es estadísticamente significativo. El p-value del modelo es:

p-value < 2.2e-16, muchísimo menor que 0.05.

Esto indica que el modelo es estadísticamente significativo: - Sí existe una relación entre calificaciones negativas y tiempo promedio de juego.

Aunque la relación es débil, es real y significativa según la prueba ANOVA.

cor.test(videojuegos$negative_ratings,
  videojuegos$average_playtime)
## 
##  Pearson's product-moment correlation
## 
## data:  videojuegos$negative_ratings and videojuegos$average_playtime
## t = 26.865, df = 27073, p-value < 2.2e-16
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  0.1495153 0.1727199
## sample estimates:
##       cor 
## 0.1611399
modelo2 <- lm(negative_ratings ~ average_playtime, data = videojuegos)

Paso 3 – ¿Qué tanto explica mi modelo? (Coeficiente de determinación R²)

El valor de R² indica qué porcentaje de la variabilidad del tiempo promedio de juego (Y) se explica por las calificaciones negativas (X).

En este caso:

R² = 0.02593

Esto significa que solo el 2.593% de las variaciones en el tiempo de juego se explican por el número de calificaciones negativas.

Esto nos dice que:

El modelo es estadísticamente significativo, pero

La capacidad explicativa es muy baja,

La mayoría de la variabilidad del tiempo de juego se debe a otros factores.

Este paso muestra que la relación existe, pero es débil.

summary(modelo2)
## 
## Call:
## lm(formula = negative_ratings ~ average_playtime, data = videojuegos)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -72173   -153   -148   -127 478253 
## 
## Coefficients:
##                   Estimate Std. Error t value Pr(>|t|)    
## (Intercept)      154.41285   25.78757   5.988 2.15e-09 ***
## average_playtime   0.37792    0.01407  26.865  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 4229 on 27073 degrees of freedom
## Multiple R-squared:  0.02597,    Adjusted R-squared:  0.02593 
## F-statistic: 721.7 on 1 and 27073 DF,  p-value: < 2.2e-16

Paso 4 – ¿Cuáles son los parámetros? (Tabla de coeficientes)

En este paso se interpretan los coeficientes de la regresión:

β₀ (intercepto) = 154.4128469 Es el tiempo promedio de juego estimado para un videojuego con 0 calificaciones negativas.

β₁ (pendiente) = 0.3779201 Por cada 1 calificación negativa adicional, el tiempo promedio de juego aumenta 0.378 minutos (aprox).

Además, el coeficiente β₁ es significativo porque su p-value es extremadamente pequeño (≈ 0):

p-value < 0.05 → β₁ es significativo Las calificaciones negativas sí influyen en el tiempo promedio de juego.

Aunque la influencia es pequeña, es estadísticamente válida.

coef(modelo2)
##      (Intercept) average_playtime 
##      154.4128469        0.3779201

Paso 5 – Construir la ecuación y predecir

Finalmente, se construye la ecuación del modelo de regresión:

= 154.4128469 ;+; 0.3779201X

predict(modelo2, data.frame(average_playtime = 500))
##        1 
## 343.3729

Esta ecuación permite predecir el tiempo promedio de juego a partir del número de calificaciones negativas.

Por ejemplo, si un juego tiene 200 calificaciones negativas, el tiempo esperado sería: = 154.41 + 0.3779(200) Este paso permite aplicar el modelo a nuevos datos y comprender cómo varían los tiempos de juego según las calificaciones negativas.

Bibliografía

Muchas gracias