Este ejemplo tiene como objetivo en que el alumno conozca los procedimientos para llevar a cabo un análisis de regresión con una sola variable y las pruebas de validación del modelo de regresión.
El problema trata del análsis del cambio de un porcentaje de fibra en una prenda de vestir, en la cual se desea saber si existe una relación entre el porcentaje de fibra y la resistencia de la fibra.
Lectura de datos:
## Porcentaje.de.fibra Resistencia
## 1 12 144
## 2 4 134
## 3 18 157
## 4 24 167
## 5 28 174
## 6 26 171
## 7 8 142
## 8 16 156
## 9 22 166
## 10 10 149
## 11 30 183
## 12 6 145
## 13 20 168
## 14 14 160
Es importante el hacer mención sobre la cantidad de datos, se requieren al menos 10 observaciones por cada variable introducida en el modelo.
Las variables del análisis son:
names(Datos_Regresion_1)
## [1] "Porcentaje.de.fibra" "Resistencia"
Modelo <- lm(Resistencia~Porcentaje.de.fibra)
ANOVA <- aov(Modelo)
summary(ANOVA)
## Df Sum Sq Mean Sq F value Pr(>F)
## Porcentaje.de.fibra 1 2400.5 2400 159.7 2.71e-08 ***
## Residuals 12 180.3 15
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Se observa que existe evidencia estadística de relación entre la variable independiente y la independiente, por lo menos un coeficiente de la ecuación de regresión es diferente a cero.
anova(Modelo)
## Analysis of Variance Table
##
## Response: Resistencia
## Df Sum Sq Mean Sq F value Pr(>F)
## Porcentaje.de.fibra 1 2400.53 2400.53 159.75 2.707e-08 ***
## Residuals 12 180.33 15.03
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Se observa que esta última manera entrega más detalles que el comando aov
summary(Modelo)
##
## Call:
## lm(formula = Resistencia ~ Porcentaje.de.fibra)
##
## Residuals:
## Min 1Q Median 3Q Max
## -6.165 -2.529 -1.165 3.221 6.587
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 130.6747 2.4178 54.05 1.06e-15 ***
## Porcentaje.de.fibra 1.6242 0.1285 12.64 2.71e-08 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 3.876 on 12 degrees of freedom
## Multiple R-squared: 0.9301, Adjusted R-squared: 0.9243
## F-statistic: 159.7 on 1 and 12 DF, p-value: 2.707e-08
Se observa que tanto la ordenada al orígen como la variable independiente son significativos.
La ecuación es: Resistencia = 130.675 + 1.624* Porcentaje.de.fibra
coef(Modelo)
## (Intercept) Porcentaje.de.fibra
## 130.674725 1.624176
Coinciden con los obtenidos por el comando summary pero con mayor nivel de detalle, es importante mencionar que este comando se utiliza una vez que los coeficientes se han validado como los sognificativos en la ecuación de regresión.
plot(Resistencia~ Porcentaje.de.fibra, main="Relación entre la Resistencia y el Porcentaje de Fibra",
xlab="Porcentaje de Fibra")
abline(Modelo)
Observe que en el comando plot se debe colocar la ecuación de regresión
plot(Resistencia~ Porcentaje.de.fibra, main="Relación entre la Resistencia y el Porcentaje de Fibra",
xlab="Porcentaje de Fibra")
lines(lowess(Datos_Regresion_1), col="red")
abline(Modelo)
La línea roja muestra el mejor valor de regresión y la línea negra muestra el ajuste lineal, lo cual nos indica que prácticamente no hay diferencia.
Esto se puede verificar con la prueba de Shapiro-Wilk.
shapiro.test(rstandard(Modelo))
##
## Shapiro-Wilk normality test
##
## data: rstandard(Modelo)
## W = 0.9286, p-value = 0.2914
*** El criterio de rechrazo no se cumple p-value <=0.05 por lo que los residuos pueden considerarse dentro de un comportamiento normal.***
Gráficamente:
qqnorm(rstandard(Modelo))
qqline(rstandard(Modelo))