Está en la página 1de 14

Lab 2 en R

Introducción
La regresión lineal múltiple permite generar un modelo lineal en el que el valor de la
variable dependiente o respuesta \((y)\) se determina a partir de un conjunto de
variables independientes llamadas predictores \((x_{1}, x_{2},\ldots,x_{n})\). Es una
extensión de la regresión lineal simple, por lo que es fundamental comprender esta
última. Los modelos de regresión múltiple pueden emplearse para predecir el valor de
la variable dependiente o para evaluar la influencia que tienen los predictores sobre ella
(esto último se debe que analizar con cautela para no malinterpretar causa-efecto).
Matricialmente, el modelo puede representarse como

● La variable respuesta \(y = (y_1, y_2,..., y_n)\), donde n es el tamaño de muestra


● Para el i-esimo individuo o unidad muestral, se miden un conjunto de variables
\(x_i = (x_{i1}, x_{i2}, ... , x_{ik} )\) tal que
\[\begin{equation} y_{i}=\beta_0 + \beta_{1}x_{i1}
+\beta_{1}x_{i2}+...+\beta_{k}x_{ik} + \varepsilon \end{equation}\]
● Matricialmente el modelo puede representarse como
\[\begin{equation} \boldsymbol y= \boldsymbol X \boldsymbol\beta + \varepsilon
\end{equation}\]
donde \(\boldsymbol y\) es la variable de respuesta, \(\boldsymbol X\) es la
matriz de variables independientes, \(\boldsymbol\beta\) es el vector de
parámetros y \(\boldsymbol\varepsilon\) es el vector de errores aleatorios.
● Nociones preliminares
● Estimación de parámetros, propiedades e interpretación
● Estimación de \(\sigma^2\), ANOVA y cálculo de \(R^2\)
● Intervalos de confianza y predicción
● Pruebas de hipótesis sobre los coeficientes de regresión
● Análisis de residuales, observaciones atípicas e influenciales
● Análisis de multicolinealidad
● Método de todas las regresiones posibles
● Selección secuencial de modelos

Regresión Lineal Múltiple


Usaremos los datos sobre la resistencia a la tracción de un enlace de alambre en un
proceso de fabricación de semi-conductores (\(y\)), la longitud del alambre (\(x_1\)) y la
altura de la matriz (\(x_2\)) para ilustrar la construcción de un modelo empírico.
Usaremos los mismos datos, repetidos por conveniencia en la Tabla , y mostraremos
los detalles de la estimación de los parámetros del modelo. En la figura 1 se presenta
un diagrama de dispersión tridimensional de los datos. La Figura 2 es una matriz de
diagramas de dispersión bidimensionales de los datos. Estas gráficas pueden resultar
útiles para visualizar las relaciones entre las variables en un conjunto de datos
multivariables. Por ejemplo, el gráfico indica que existe una fuerte relación lineal entre la
resistencia y la longitud del cable.

Num y x1 x2

1 9.95 2 50
2 24.25 8 110
3 31.75 11 120
4 35 10 550
5 25.02 8 295
6 16.86 4 200
7 14.38 2 375
8 9.6 2 52
9 24.35 9 100
10 27.6 8 300
11 17.08 4 412
12 37 11 400
13 41.95 12 500
14 11.66 2 360
15 21.65 4 205
16 17.89 4 400
17 69 20 600
18 10.3 1 585
19 34.93 10 540
20 46.59 15 250
21 44.88 15 290
22 54.12 16 510
23 56.63 17 590
24 22.13 6 100
25 21.15 5 400
library(readxl)
datos <- read_excel("D:/Material de Cursos/Clases Estadisitica/Data Analysis
II/ADDI-II-202002/Unidad 1- Modelo de RLM/practica2.xlsx")
View(datos)

Gráfico de dispersión

D<-datos[,-1]
plot(D)
Ajuste del modelo

● Coeficiente de correlación​()

with(datos, cor(D))

## y x1 x2
## y 1.0000000 0.9816967 0.4933995
## x1 0.9816967 1.0000000 0.3784127
## x2 0.4933995 0.3784127 1.0000000

library(corrplot)

## corrplot 0.84 loaded

correlacion<-round(cor(D), 1)
corrplot(correlacion, method="number", type="upper")

● Ajuste del modelo​()

fit <- lm(y ~ x1+x2, data = datos)


summary(fit)

##
## Call:
## lm(formula = y ~ x1 + x2, data = datos)
##
## Residuals:
## Min 1Q Median 3Q Max
## -3.8463 -1.5489 -0.3653 1.2127 5.8495
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 2.245596 1.061953 2.115 0.046028 *
## x1 2.743531 0.093690 29.283 < 2e-16 ***
## x2 0.012589 0.002803 4.491 0.000182 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.292 on 22 degrees of freedom
## Multiple R-squared: 0.9811, Adjusted R-squared: 0.9794
## F-statistic: 570.2 on 2 and 22 DF, p-value: < 2.2e-16

A partir de estos resultados podemos realizar las pruebas de significancia global y


marginal. Observe que en la prueba de significancia global del modelo
\(F_{calc}=570.2\) y \(p<2.2\times 10^{-16}\), mientras que en todas las pruebas
marginales del tipo \(H_{0}: \beta_{j}=0\) vs. \(H_{1}: \beta_{j}\neq 0\), el valor \(p\) es
\(<0.05\). Esto indica que tener este modelo de RLM para explicar la resistencia a la
tracción de un enlace de alambre es mejor que no tener dicho modelo, y que la
magnitud de la influencia de cada variable controlable sobre \(E[y|x_1, x_2]\) es
estadísticamente diferente de cero.

Estos resultados implican que (1) las variables controlables seleccionadas constituyen
una buena elección para explicar la resistencia, y (2) que la variable con mayor
influencia sobre \(E[y|x_1, x_2]\) es \(x_{1}\). En particular, cuando se mantiene
constante la variable \((x_2)\) la altura de la matriz y se modifica en una unidad la
longitud del alambre, se espera que la resistencia a la tracción del alambre aumente en
apoximadamente 2.74 unidades. Similarmente, cuando se mantiene fija la longitud del
alambre y se modifica en una unidad la altura de la matriz, es espera que la resistencia
a la tracción del alambre aumente en 0.012 unidades.

El modelo de RLM ajustado explica aproximadamente el \(98\%\) de la variabilidad de


la respuesta, es decir, \(R^{2}_{adj}=0.9794\). El valor de la varianza del error es
\(\hat{\sigma}^{2}=(2.292)^2=5.2532\).

anova(fit)

## Analysis of Variance Table


##
## Response: y
## Df Sum Sq Mean Sq F value Pr(>F)
## x1 1 5886.0 5886.0 1120.329 < 2.2e-16 ***
## x2 1 105.9 105.9 20.166 0.000182 ***
## Residuals 22 115.6 5.3
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Intervalos de confianza para \(\beta\)


Los intervalos de confianza (IC) del \(95\%\) para \(\beta=(\beta_{0},\beta_{1},
\beta_{2})\) se calculan como: \[\begin{equation*} \hat{\beta_{j}}\pm
t_{\alpha/2,n-p}\sqrt{\hat{\sigma}^{2}(X^{T}X)_{jj}^{-1}} \end{equation*}\] donde
\(\hat{\sigma}^{2}=5.2532\) es el MSE, \(\alpha\) es el nivel de significancia (\(5\%\) por
convención), \(X\) es la matriz del diseño, \(\hat{\beta}_{j}\) es el coeficiente estimado
para \(x_{j}\) y \(n-p=22\). Entonces

result<-summary(fit)
all<-coefficients(result)
betahat<-all[,1]
Sbeta<-all[,2]
t<-qt(0.025, 22, lower.tail = F)
ll<-betahat-t*Sbeta
ul<-betahat+t*Sbeta
cbind(ll,betahat,ul)

## ll betahat ul
## (Intercept) 0.043241052 2.24559579 4.44795053
## x1 2.549229072 2.74353078 2.93783249
## x2 0.006775059 0.01258895 0.01840284

Observe que, en ninguna de las variables controlables, los IC contienen el valor cero.
Por lo tanto, podemos afirmar que la magnitud de la influencia de la \(x_1\) y \(x_2\) es
estadísticamente significativa (algo que ya habíamos concluído utilizando valores \(p\)).

Ajuste y Validación de los supuestos


Verificamos la disponibilidad del paquete gvlma

if(!require(gvlma)) install.packages('gvlma')
## Loading required package: gvlma

require(gvlma)

summary(gvlma(fit))

##
## Call:
## lm(formula = y ~ x1 + x2, data = datos)
##
## Residuals:
## Min 1Q Median 3Q Max
## -3.8463 -1.5489 -0.3653 1.2127 5.8495
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 2.245596 1.061953 2.115 0.046028 *
## x1 2.743531 0.093690 29.283 < 2e-16 ***
## x2 0.012589 0.002803 4.491 0.000182 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2.292 on 22 degrees of freedom
## Multiple R-squared: 0.9811, Adjusted R-squared: 0.9794
## F-statistic: 570.2 on 2 and 22 DF, p-value: < 2.2e-16
##
##
## ASSESSMENT OF THE LINEAR MODEL ASSUMPTIONS
## USING THE GLOBAL TEST ON 4 DEGREES-OF-FREEDOM:
## Level of Significance = 0.05
##
## Call:
## gvlma(x = fit)
##
## Value p-value Decision
## Global Stat 1.203e+01 0.017132 Assumptions NOT satisfied!
## Skewness 2.348e+00 0.125468 Assumptions acceptable.
## Kurtosis 4.242e-01 0.514835 Assumptions acceptable.
## Link Function 9.258e+00 0.002345 Assumptions NOT satisfied!
## Heteroscedasticity 1.545e-04 0.990081 Assumptions acceptable.
Los supuestos del modelo de RLM son (1) normalidad, (2) independencia, (3) varianza
constante y (4) media cero. Inicialmente procedemos con el cálculo de los residuales
del modelo ajustado:

● Residuales studentizados​()

## calculo de residuales estudentizados


r <- rstudent(fit)

● Normalidad y varianza constante​()

A continuación se muestran las instrucciones en R para realizar dicha validación de los


supuestos de normalidad y varianza constante, gráficamente, a partir del objeto r:

par(mfrow = c(2, 2))


## gráfico QQ-plot y prueba de Shapiro-Wilks
qqnorm(r, las = 1, main = "")
mtext("Q-Q plot", side = 3, line = 0.2)
qqline(r, lty = 2)
legend("topleft", paste0("p=", round(shapiro.test(r)$p.value, 3)), bty = "n")

## gráfico r vs x1
plot(datos$x1, r, las = 1, ylab = "", xlab = "x1")
mtext("r", side = 2, line = 2.5, las = 1)
abline(h = 0, lty = 2)
mtext("r vs. x1", side = 3, line = 0.2)

## grfico r vs x2
plot(datos$x2, r, las = 1, ylab = "", xlab = "x2")
mtext("r", side = 2, line = 2.5, las = 1)
abline(h = 0, lty = 2)
mtext("r vs. x2", side = 3, line = 0.2)

## gráfico r vs yhat
plot(fitted(fit), r, las = 1, xlab = expression(hat(y)), ylab = "")
mtext("r", side = 2, line = 2.5, las = 1)
abline(h = 0, lty = 2)
mtext(expression("r vs. " * hat(y)), side = 3, line = 0.2)
Otra alternativa para validar el supuesto de varianza constante es la prueba de
Breusch-Pagan. En R, esta prueba puede realizarse a través de la función ncvTest del
paquete car:

## prueba de varianza constante


car:::ncvTest(fit)

## Non-constant Variance Score Test


## Variance formula: ~ fitted.values
## Chisquare = 0.03756166, Df = 1, p = 0.84633

En este caso, el valor \(p\) de la prueba de hipótesis \(H_{0}\): La varianza \(\sigma^{2}\)


es constante vs. \(H_{1}\): La varianza \(\sigma^{2}\) no es constante es 0.84633, por lo
cual no rechazamos \(H_{0}\) y concluimos que la varianza del modelo (o de los errores)
es constante.

● Independiencia ​()
En cuanto a la prueba de independencia, esta puede realizarse de dos formas
diferentes. En una primera aproximación, usamos la ACF (ver ?acf en R):

## prueba de independencia usando la ACF


par(mfrow = c(1, 1))
acf(r, las = 1, lag.max = 15, main = "")
mtext("ACF", side = 3, line = 0.2)

Si existe independencia de los errores, con excepción de la primera barra vertical,


ninguna otra puede pasar los límites establecidos por las líneas horizontales punteadas
de color azul. En este caso concluimos que los errores son independientes.

Una segunda alternativa para validar el supuesto de independencia es la prueba de


Durbin-Watson implemen- tada en el paquete car:

library(car)
## Loading required package: carData

## prueba de independencia usando la Durbin-Watson


durbinWatsonTest(fit)

## lag Autocorrelation D-W Statistic p-value


## 1 -0.06462602 2.10724 0.87
## Alternative hypothesis: rho != 0

En este caso el valor \(p\) de la prueba es superior al nivel de significancia del 5 %, por
lo cual podemos concluir que no existe evidencia estadística suficiente para rechazar la
no independencia de los residuales del modelo de RLM.

Identificación de observaciones influenciales


La influuencia de una observación puede pensarse en términos de cuánto cambiarían
los valores predichos de la respuesta para las demás observaciones si dicha
observación no fuese incluída en el modelo de RLM. Una manera simple de determinar
qué observaciones de las \(n\) disponibles es influencial es a través de la distancia de
Cook. En R, podemos calcular la dicha distancia y graficarla utilizando la siguiente
instrucción:

## Cook's distance
plot(fit, which = 4, las = 1)
El gráfico muestra la distancia de Cook como función del orden en el que se
encuentran las observaciones. Cada barra vertical representa la distancia de Cook,
\(D_{i}\), para la \(i-\)ésima observación \((i=1,2\ldots,n)\). Aquellas observaciones donde
\(D_{i}\) es superior al valor máximo permitido son identificadas con el correspondiente
identificador en los datos originales. Algunos textos establecen que la oservación \(i\)
será influencial si \(D_{i}>1\). Sin embargo, en R en criterio es \(D_{i}>4/(n-k-1)\). Por lo
tanto, las observaciones 9, 15 y 17 aparentemente, son influenciales.

Intervalos de confianza para \(E[Y/X_{1},X_{2}]\)

Considerando que los supuestos del modelo ajustado se pudieron validar, podemos
entonces utilizar dicho modelo para pronosticar. Estamos interesados en construir un
intervalo de predicción del 95% en la fuerza de tracción de la unión del cable cuando la
longitud del cable es \(x_{1}=8\) y la altura de la matriz es \(x_{2}=275\).
a. Intervalo de confianza

predict(fit, newdata = data.frame(x1 = 8, x2=275),interval = 'confidence')

## fit lwr upr


## 1 27.6558 26.65417 28.65744

b. Intervalo de predicción

predict(fit, newdata = data.frame(x1 = 8, x2=275),interval = 'prediction')

## fit lwr upr


## 1 27.6558 22.79786 32.51375

También podría gustarte