## Rows: 419
## Columns: 8
## $ N <dbl> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 1ā¦
## $ GRUPO <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,ā¦
## $ VARIEDAD <chr> "Clementina", "Clementina", "Clementina", "Clementina", ā¦
## $ N_DE_FRUTO <dbl> 19, 9, 21, 8, 4, 30, 22, 23, 17, 27, 29, 14, 16, 13, 25,ā¦
## $ PESO <dbl> 101, 122, 127, 126, 37, 139, 140, 130, 138, 142, 121, 15ā¦
## $ DIAM_ECUAT <dbl> 64.2, 64.2, 64.7, 64.9, 65.9, 66.4, 67.1, 67.5, 68.2, 68ā¦
## $ NIVEL_DE_DAĆO <dbl> 1, 0, 3, 3, 2, 2, 3, 1, 2, 2, 2, 1, 1, 2, 1, 1, 0, 1, 0,ā¦
## $ COLOR <dbl> 4, 5, 4, 1, 5, 4, 4, 3, 3, 4, 4, 1, 1, 3, 4, 1, 4, 1, 5,ā¦
š¬ Ā”Recordemos!
āŖļø <dbl>: Double. Significa que la variable es
numérica continua, del tipo double (número decimal). Ejemplo: 3.14,
10.0, -2.5 Equivalente a numeric en R base.
āŖ <chr>: Character. Significa que la variable es
texto (cadena de caracteres). Ejemplo: āArgentinaā, āLunesā, āGrupo
Aā.
āŖ <fct>: Factor. Significa que la variable es un
factor, es decir, una variable categórica con niveles definidos. Es
usada en anĆ”lisis estadĆsticos y grĆ”ficos para representar categorĆas
como grupos, tratamientos, variedades, etc. Ejemplo: niveles de āBajoā,
āMedioā, āAltoā.
## Rows: 419
## Columns: 8
## $ N <dbl> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 1ā¦
## $ GRUPO <fct> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,ā¦
## $ VARIEDAD <chr> "Clementina", "Clementina", "Clementina", "Clementina", ā¦
## $ N_DE_FRUTO <dbl> 19, 9, 21, 8, 4, 30, 22, 23, 17, 27, 29, 14, 16, 13, 25,ā¦
## $ PESO <dbl> 101, 122, 127, 126, 37, 139, 140, 130, 138, 142, 121, 15ā¦
## $ DIAM_ECUAT <dbl> 64.2, 64.2, 64.7, 64.9, 65.9, 66.4, 67.1, 67.5, 68.2, 68ā¦
## $ NIVEL_DE_DAĆO <dbl> 1, 0, 3, 3, 2, 2, 3, 1, 2, 2, 2, 1, 1, 2, 1, 1, 0, 1, 0,ā¦
## $ COLOR <dbl> 4, 5, 4, 1, 5, 4, 4, 3, 3, 4, 4, 1, 1, 3, 4, 1, 4, 1, 5,ā¦
Vamos a analizar los datos del archivo āMandarina_2024ā correspondientes al Grupo 1.
# Graficamos la recta de regresión
ggplot(GRUPO1, aes(PESO, DIAM_ECUAT)) +
geom_point(size= 2.5, alpha= 0.6) +
geom_smooth(method = "lm", se=FALSE) # geom_smooth: agrega una lĆnea de suavizado\[Y = š¼ + š½ X + š\]
Donde:
š¼: ordenada al origen (intercepto).
š½: pendiente de la recta.
š: error
Linealidad: Se asume que existe una relación lineal entre la variable independiente X y la variable dependiente Y. Esto significa que el cambio esperado en Y es proporcional (constante) a lo largo del rango de X:un cambio de una unidad en X produce siempre el mismo cambio esperado en Y.
Independencia de los errores: Los errores (εi) son independientes entre sĆ. Esto significa que el error cometido al predecir una observación no debe estar relacionado con el error cometido en otra. En otras palabras, no debe haber patrones sistemĆ”ticos ni correlaciones entre los errores.En la prĆ”ctica, la asignación aleatoria de las unidades experimentales o muestrales favorece este supuesto. Cuando se asignan tratamientos o se seleccionan observaciones al azar, se busca eliminar la influencia de factores no observados que podrĆan generar dependencia entre los datos.
Homocedasticidad: La varianza de los errores debe ser constante para todos los valores de X. Es decir que el nivel de dispersión o variabilidad del error no cambia sistemÔticamente al aumentar o disminuir X. Cuando este supuesto no se cumple, se dice que hay heterocedasticidad, y esto puede llevar a:
| Supuesto | Verificación grĆ”fica y/o pruebas estadĆsticas |
|---|---|
|
- GrÔfico de dispersión - GrÔfico de Residuos vs. valores ajustados - Prueba de lack of fit (si hay repeticiones en X) |
|
- GrÔfico de residuos en orden de recolección o tiempo. - Test de Durbin-Watson (series temporales) |
|
- GrÔfico de Residuos vs. valores ajustados - GrÔfico de Valores ajustados vs Res. estandarizados - Test de Breusch-Pagan, Test de Levene |
|
- GrƔfico de histograma de residuos - GrƔfico Q-Q (cuantil-cuantil) - Test de Shapiro-Wilk |
lm()Su nombre proviene de ālinear modelā, y sirve para ajustar modelos lineales.
Permite modelar la relación entre una variable dependiente (o respuesta) y una o mÔs variables independientes (o predictoras) mediante una ecuación lineal.
##
## Call:
## lm(formula = GRUPO1$DIAM_ECUAT ~ GRUPO1$PESO)
##
## Coefficients:
## (Intercept) GRUPO1$PESO
## 47.4397 0.1486
\[y = 47.44 + 0.15 x\]
Es decir:
\[diam.ecuatorial(mm) = 47.44 + 0.15*Peso(g)\]
ggplot(GRUPO1, aes(PESO, DIAM_ECUAT)) +
geom_point(size = 2.5, alpha = 0.6) +
geom_smooth(method = "lm", se = FALSE, color = "blue") +
geom_text(x = 200, y = 65, label = "y = 47.44 + 0.15 x", size = 5)##
## Call:
## lm(formula = GRUPO1$DIAM_ECUAT ~ GRUPO1$PESO)
##
## Residuals:
## Min 1Q Median 3Q Max
## -4.3643 -1.2809 -0.0974 0.8050 12.9637
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 47.43965 1.48021 32.05 <2e-16 ***
## GRUPO1$PESO 0.14856 0.01026 14.48 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.463 on 58 degrees of freedom
## Multiple R-squared: 0.7832, Adjusted R-squared: 0.7795
## F-statistic: 209.5 on 1 and 58 DF, p-value: < 2.2e-16
Call: Indica la fórmula del modelo. Significa que se estÔ modelando el diÔmetro ecuatorial como una función lineal del peso.
Residuals: resumen de los residuos (diferencia entre valores observados y predichos). Idealmente deben estar centrados alrededor de ā0ā y tener distribución simĆ©trica.
Coefficients:
| Columna | Significado |
|---|---|
| Estimate | Valor estimado del intercepto y pendiente (coeficientes) |
| Std. Error | Error estÔndar de cada estimación. |
| t value | EstadĆstico t |
| Pr(>ātā) | valor p de la prueba t |
Interpretación:
Intercepto: cuando el peso es 0 (no tiene interpretación fĆsica en este contexto, pero es necesario para la ecuación), el modelo estima un diĆ”metro de ~47.44 mm.
Pendiente: por cada gramo adicional de peso, el diƔmetro ecuatorial aumenta en promedio 0.15 mm.
Ambos coeficientes son altamente significativos (p < 0.001).
Signif. codes: Los asteriscos indican nivel de significancia:
| SĆmbolo | Valor p | Interpretación |
|---|---|---|
| *** | p < 0.001 | Muy altamente significativo |
| ** | 0.001 ⤠p < 0.01 | Altamente significativo |
| * | 0.01 ⤠p < 0.05 | Significativo |
| . | 0.05 ⤠p < 0.1 | Marginalmente significativo (tendencia) |
| āā | p ā„ 0.1 | No significativo |
Residual standad error (Error estĆ”ndar residual): Indica cuĆ”nto se desvĆan en promedio los puntos observados del modelo ajustado. Cuanto mĆ”s bajo, mejor. En promedio, el modelo se equivoca en ±2.46 mm al estimar el diĆ”metro.
H0: β = 0 No hay relación lineal entre el peso y diÔmetro ecuatorial.
H1: β ā 0 Si hay relación lineal entre peso y diĆ”metro ecuatorial.
#Usamos la función plot
par(mfrow=c(2,2)) # permite visualizar los grƔficos de residuos en una sola imagen
plot(REGRESION_GRUPO1)Interpretación
1. Residuals vs Fitted (Residuos vs Valores ajustados)
Objetivo: Verificar linealidad y homocedasticidad.
QuĆ© buscar: Los residuos deben estar distribuidos aleatoriamente alrededor de la lĆnea horizontal (en 0), sin formar patrones.
Que observamos en el grĆ”fico: La mayorĆa de los puntos estĆ”n bien distribuidos, pero hay cierta curvatura leve (linea roja). Esto podrĆa indicar una posible ligera no linealidad o heterocedasticidad. El punto 5 es un outlier.
2. Q-Q Residuals (Q-Q plot de Residuos)
Objetivo: Verificar la normalidad de los residuos.
QuĆ© buscar: Los puntos deben estar alineados con la lĆnea diagonal.
Que observamos en el grƔfico: Casi todos los puntos estƔn bien alineados, salvo un outlier que se aparta en el extremo superior derecho (punto 5). Esto indica que los residuos son aproximadamente normales.
3. Scale-Location (Valores ajustados vs Residuos estandarizados)
Objetivo: Verificar homocedasticidad.
Qué buscar: Distribución horizontal (sin tendencia) de los puntos.
Que observarmos en el grĆ”fico: Hay una leve tendencia decreciente, lo que sugiere una posible heterocedasticidad: los residuos parecen mĆ”s grandes para valores pequeƱos de DIAM_ECUATORIAL. Sin embargo, la mayorĆa estĆ”n concentrados alrededor de 1, lo cual es aceptable.
4. Residuals vs Leverage (Residuos estandarizados vs Leverage)
Objetivo: Identificar observaciones influyentes (problemƔticas) que pueden afectar el modelo al incluirlas o quitarlas.
QuĆ© buscar: Puntos con alto leverage y residuos extremos (identificados con Cookās distance).
Que observamos en el grĆ”fico: + La mayorĆa de los puntos tiene bajo leverage ( cercano a 0). + El punto 5 tiene alto leverage y alto residuo estandarizado. Es potencialmente influyente.
Normalidad
H0: los residuos tienen distribución normal.
H1: los residuos NO tienen distribución normal.
##
## Shapiro-Wilk normality test
##
## data: RESIDUOS
## W = 0.81683, p-value = 3.64e-07
Como el p-valor (3.64e-07) es menor que el nivel de significancia (0.05), concluimos que hay evidencia para rechazar la hipótesis nula de normalidad. Por lo tanto, los residuos NO se distribuyen normalmente.
Linealidad
Se evalúa graficamente (Residuals vs Fitted). En este caso de estudio no se puede usar un test de falta de ajuste (lack of fit) porque no hay réplicas de la variable independiente.
Homocedasticidad
H0: Se cumple el supuesto de homocedasticidad
H1: No se cumple el supuesto de homocedasticidad
# Usamos el paquete "lmtest" con la función bptest() del test de Breusch-Pagan
bptest(GRUPO1$DIAM_ECUAT~GRUPO1$PESO, data = GRUPO1)##
## studentized Breusch-Pagan test
##
## data: GRUPO1$DIAM_ECUAT ~ GRUPO1$PESO
## BP = 15.496, df = 1, p-value = 8.269e-05
𤨠Se observó la presencia de un valor atĆpico
# Determinamos que observación es el outlier
GRUPO1 %>%
mutate(ID = row_number()) %>% # Agregamos un identificador único para cada observación (fila)
ggplot(aes(x = PESO, y = DIAM_ECUAT)) +
geom_point() +
geom_text(aes(label = ID), vjust = -1, size = 3) # Etiquetas con el nĆŗmero de fila (ID) ## # A tibble: 60 Ć 8
## N GRUPO VARIEDAD N_DE_FRUTO PESO DIAM_ECUAT NIVEL_DE_DAĆO COLOR
## <dbl> <fct> <chr> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 1 1 Clementina 19 101 64.2 1 4
## 2 2 1 Clementina 9 122 64.2 0 5
## 3 3 1 Clementina 21 127 64.7 3 4
## 4 4 1 Clementina 8 126 64.9 3 1
## 5 5 1 Clementina 4 37 65.9 2 5
## 6 6 1 Clementina 30 139 66.4 2 4
## 7 7 1 Clementina 22 140 67.1 3 4
## 8 8 1 Clementina 23 130 67.5 1 3
## 9 9 1 Clementina 17 138 68.2 2 3
## 10 10 1 Clementina 27 142 68.2 2 4
## # ā¹ 50 more rows
# Graficamos la relación entre las variables obtenida por el Grupo 1 sin el dato de la fila 5
ggplot(GRUPO1_MODIF, aes(x = PESO, y = DIAM_ECUAT)) +
geom_point() ##
## Call:
## lm(formula = DIAM_ECUAT ~ PESO, data = GRUPO1_MODIF)
##
## Coefficients:
## (Intercept) PESO
## 43.0319 0.1779
##
## Call:
## lm(formula = DIAM_ECUAT ~ PESO, data = GRUPO1_MODIF)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2.7437 -0.8547 -0.1411 0.8869 3.8395
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 43.031948 1.057914 40.68 <2e-16 ***
## PESO 0.177922 0.007277 24.45 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.572 on 57 degrees of freedom
## Multiple R-squared: 0.9129, Adjusted R-squared: 0.9114
## F-statistic: 597.7 on 1 and 57 DF, p-value: < 2.2e-16
#Usamos la función plot
par(mfrow=c(2,2)) # permite visualizar los grƔficos de residuos en una sola imagen
plot(REGRESION_GRUPO1_MODIF)Normalidad
H0: los residuos tienen distribución normal.
H1: los residuos NO tienen distribución normal.
##
## Shapiro-Wilk normality test
##
## data: residuals(REGRESION_GRUPO1_MODIF)
## W = 0.97387, p-value = 0.2336
Homocedasticidad
H0: Se cumple el supuesto de homocedasticidad
H1: No se cumple el supuesto de homocedasticidad
##
## studentized Breusch-Pagan test
##
## data: GRUPO1_MODIF$DIAM_ECUAT ~ GRUPO1_MODIF$PESO
## BP = 0.82266, df = 1, p-value = 0.3644
La prueba de hipótesis en Regresión lineal simple usualmente se refiere a evaluar si la pendiente del modelo es significativamente distinta de cero, es decir, si existe una relación lineal entre las variables dependiente e independiente.
H0: β1 = 0 (no hay relación lineal)
H1: β1 ā 0 (sĆ hay relación lineal)
α = 0.05
En otras palabras⦠Existe una relación lineal significativa entre el peso (PESO) y el diÔmetro ecuatorial del fruto (DIAM_ECUAT).
##
## Call:
## lm(formula = DIAM_ECUAT ~ PESO, data = GRUPO1_MODIF)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2.7437 -0.8547 -0.1411 0.8869 3.8395
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 43.031948 1.057914 40.68 <2e-16 ***
## PESO 0.177922 0.007277 24.45 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.572 on 57 degrees of freedom
## Multiple R-squared: 0.9129, Adjusted R-squared: 0.9114
## F-statistic: 597.7 on 1 and 57 DF, p-value: < 2.2e-16
Podemos utilizar la ecuación obtenida para realizar una predicción del diĆ”metro ecuatorial esperado (milĆmetros) para un determinado peso (gramos). Por ejemplo para 150 gramos.
Usaremos la recta generada en el modelo:
\[diam.ecuat(mm) = 43.0319 + 0.1779 * Peso(g)\]
## [1] 69.7169
También podemos utilizar la función predict()
Peso_150 <- data.frame(PESO = 150)
predict(REGRESION_GRUPO1_MODIF, newdata = Peso_150, interval = "confidence")## fit lwr upr
## 1 69.72027 69.29673 70.14382
ggplot(GRUPO1_MODIF, aes(PESO, DIAM_ECUAT)) +
geom_point(size = 2.5, alpha = 0.6, color = "red") +
geom_smooth(method = "lm", se = TRUE, color = "black") +
geom_text(x = 200, y = 65, label = "diam. ecuat = 43.03 + 0.18 peso", size = 5) +
geom_point(aes(x = 150, y = 69.7169), color = "yellow", size = 3.0) # Predicción