Sunteți pe pagina 1din 15

Ejemplo de Regresión Lineal Múltiple

Un distribuidor de cervezas está analizando el sistema de entregas de su producto; en


particular, está interesado en predecir el tiempo sugerido para servir a los detallistas. El
ingeniero industrial a cargo del estudio ha sugerido que los factores que influyen sobre el
tiempo de entrega son el número de cajas de cervezas y la máxima distancia que debe
viajar el despachador. Se tomaron muestras y se obtienen los resultados que se
muestran en la tabla 1.

Número de Distancia Tiempo


Cajas (X1) (X2) (Y)
10 30 24
15 25 27
10 40 29
20 18 31
25 22 25
18 31 33
12 26 26
14 34 28
16 29 31
22 37 39
24 20 33
17 25 30
13 27 25
30 23 42
24 33 40
Tabla 1: Número de cajas transportadas, distancia recorrida y tiempo de servicio
al cliente para 15 muestras de un sistema de reparto de cerveza

Primero se explorará las relaciones entre todas las parejas de variables, en particular la relación de Y
con cada una de las variables independientes. Esto lo detectaremos a través de las correlaciones y la
función pairs de R, la cual produce un gráfico matricial para las variables dadas.

Comandos en R:

cervezas=read.table('cervezas.txt',header=T) – Cargando los datos

pairs(cervezas)
20 25 30 35 40

30
25
No.cajas

20
15
10
40
35
30

Distancia
25
20

40
35
Tiempo

30
25
10 15 20 25 30 25 30 35 40

Figura 1: Plot matricial de las variables del conjunto de datos “cervezas”

cor(cervezas) - Correlaciones

No.cajas Distancia Tiempo

No.cajas 1.0000000 -0.4052976 0.7246466

Distancia -0.4052976 1.0000000 0.1269032

Tiempo 0.7246466 0.1269032 1.0000000

Si deseamos observar los gráficos bidimensionales hacemos: plot(No.cajas,Tiempo) y


plot(Distancia,Tiempo)
40

40
35

35
Tiempo

Tiempo
30

30
25

25
10 15 20 25 30
20 25 30 35 40
No.cajas
Distancia

Figura 2: Gráficos 2D de la variable respuesta en función de las variables independientes por separado

Se puede observar que la variable independiente “No. de cajas” (X1) es la que tiene mejor relación
lineal con el tiempo de entrega, es decir, a medida que aumenta una de ellas aumenta la otra. En
tanto la máxima distancia (X2) que debe recorrer el despachador no parece tener una relación lineal
muy marcada para predecir el tiempo.

AJUSTE DE UN MODELO

Supongamos que se decide usar un modelo de la forma:

yi = β0 + β1x1i + β2 x2i +εi

De manera matricial tenemos,     , donde

Y: vector n x 1 de respuestas (variable dependiente)

X: matriz n x p que contiene ceros, unos y/o valores de variables independientes (matriz de diseño)

: vector p x 1 de parámetros

: vector n x 1 de errores aleatorios


24
1 10 30
27 1 15 25

29 1 10 40
 
31 1 20 18
 
25 1 25 22
 
33 1 18 31
 
26 1 12 26 β
 
  28 ,   1 14 34  ,    β 
1 16 29 β
31
1 22 37
39
1 24 20
33
1 17 25
30
1 13 27
25
1 30 23
42 
40 1 24 33
15 15 15
Datos: ∑ x1i = 270 ,∑ x2i = 420 , ∑ yi = 463
i =1 i =1 i =1

Con lo cual las ecuaciones normales (sistema de mínimos cuadrados) toman la forma

!   
  

15 270 420 $% 463


"270 5364 7347 # $%   " 8679 #
420 7347 12308 $% 13027

 βˆ0   15 270
−1
420   463   βˆ0   3, 478 −0, 069 −0, 078   463 
       
 βˆ1  =  270 5.364 7.347  *  8.679  ⇒  βˆ1  =  −0, 069 0, 0024 0, 001  *  8.679 
 ˆ      
 β 2   420 7.347 12.308  13.027   ˆ  
 β2   −0, 078 0, 001 0, 002 
 
 13.027 

   
y al resolver se obtiene:

2.313
!  "0.877#

0.456

De aquí que:

'()  2.313  0.877*)  0.456*)

Tiempo = 2,31 + 0,88 No.cajas + 0, 46 Distancia

En R usamos la instrucción: lm(Tiempo~No.cajas+Distancia)

Por las propiedades de los estimadores de mínimos cuadrados, se puede considerar que

$% ~ -$ , .  /

$% ~ -$ , .  /


$% ~ -$ , .  /

donde /)) es el elemento de la diagonal de la matriz   0


que corresponde a $) . En este caso
tenemos que

 3.478 −0.069 −0.078 



−1 
( X X ) =  −0.069 0.0024 0.001 
t

 −0.078 0.001 0.002 


 

$% ~ -$ , 3.478. 

$% ~ -$ , 0.0024. 

$% ~ -$ , 0.002. 

Ahora bien, no conocemos .  , de manera que si queremos obtener algún tipo de inferencia sobre el
modelo necesitaremos estimarlo.

El vector de errores se puede calcular a través de la siguiente expresión: 1   2 3  0


3 .

La suma de errores al cuadrado la obtenemos así:

463
! 3 3   14741 2 2.313
445  1 1  3  2  0.877 0.456 " 8679 #
13027

 14741 2 14621.802  119.198

Luego podemos calcular 4  (estimador insesgado de .  )

445 119.198
4    9.93
627 15 2 3

3 corresponde al número de parámetros del modelo

PRUEBA DE HIPÓTESIS SOBRE LOS PARÁMETROS

Se desea probar: Ho: βi = 0 vs. H1: βi ≠ 0. El estadístico de interés en este caso es

$%) 2 $)
8
49/))

Puede probarse que este estadístico tiene una distribución t con n-p grados de libertad.

Se rechaza H0 cuando | T | > t n-p, α / 2

Si no es usada con cuidado, la prueba t puede llevar a resultados erróneos, porque las estimaciones
de los coeficientes no son independientes. En general, no es recomendable eliminar más de una
variable a la vez cuando aplicamos este procedimiento, pues sólo nos permite comparar modelos
que difieren en una variable.

Veamos cómo puede usarse esta prueba para el ejemplo de las cervezas. Comencemos probando la
hipótesis de que la distancia recorrida no influye en el tiempo de entrega. Esto equivale a plantear:

: : $  0

: : $ < 0

Así, tenemos

$%) 2 $) $% 2 0 0.456 0.456


8     3.23
49/)) 94  / 99.93 0.002 0.140

Si decidimos usar α=0.05, cuando buscamos el valor tabulado de t para un área de cola de α/2 =
0.025 correspondiente a una t con 12 grados de libertad, obtenemos =,.>  2.18. Como el valor
calculado de T es mayor que el tabulado, rechazamos : . Es decir, se puede afirmar (a este nivel) que
la distancia recorrida es importante para predecir el tiempo de entrega de la cerveza.

Realizando la misma prueba para $ , formulamos las hipótesis

: : $  0

: : $ < 0

y obtenemos

$%) 2 $) $% 2 0 0.877 0.877


8     5.68
49/)) 94  / 99.93 0.0024 0.154

Comparando nuevamente contra =,.>  2.18, se rechaza : . Es decir, podemos afirmar (a este
nivel) que el número de cajas distribuidas es importante para predecir el tiempo de entrega de la
cerveza.

Si se realiza la misma prueba t para el parámetro $ , se tiene que

: : $  0

: : $ < 0

$%) 2 $) $% 2 0 2.313 2.313


8     0.393
49/)) 94  / 99.93 3.478 5.876

En este caso no podemos rechazar la hipótesis nula. Es decir, podemos decir a este nivel de
significación que la constante en el modelo lineal planteado no parece ser relevante para predecir el
tiempo de entrega en esta muestra.
! ), los
Para los parámetros del modelo se reporta los valores estimados de los coeficientes (vector 
Utilizando el comando summary en R, observamos las características del modelo antes mencionada.

errores estándares (49/)) ) de cada coeficiente, el valor calculado de T y su p-valor correspondiente.


Además si disponemos de valores fijos de α (0.001, 0.01, 0.05, 0.1) podemos establecer conclusiones
preliminares de esta prueba individual, solamente al observar el p-valor.

summary(mod1)

Residuals:
Min 1Q Median 3Q Max El valor del error estándar residual

corresponde a la √4   √9.93  3.1.


-9.2716 -0.5405 0.5212 1.4051 2.9381 observado en la salida de R,

Coefficients:

Estimate Std. Error t value Pr(>|t|)

(Intercept) 2.3112 5.8573 0.395 0.70007


No.cajas 0.8772 0.1530 5.732 9.43e-05 ***
Distancia 0.4559 0.1468 3.107 0.00908**
---

Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 3.141 on 12 degrees of freedom


Multiple R-Squared: 0.7368, Adjusted R-squared: 0.6929
F-statistic: 16.8 on 2 and 12 DF, p-value: 0.0003325

El valor del estadístico F: 16.8, pertenece a la comparación de modelos

1 ')  $  @)

2 ')  $  $ *)  $ *)  @)

En términos de hipótesis, comparar ambos modelos equivale a plantear las hipótesis:

: : $  $  0 AB. : : CDEú6 $) < 0

Recordemos que el estadístico en este caso viene dado por la expresión siguiente

!    2 HI
 JK 44M
L L N4M
G   
 2  !   445 N45
6 2 L  1 6 2 L  1

Reemplazando

463
!    2 HI
44M   JK  2.313 0.877 0.456 " 8679 # – 15 30.86 

13027

 14621.802 2 14285.094  331.36


463
!     14741 2 2.313
445 =   2  0.877 0.456 " 8679 #  119.198
13027
44M 331.36
L 2 165.68
  P 16.8
445 119.198 9.932
6 2 L  1 15 2 2  1

K es el número de parámetros a estimar.

Si fijamos un nivel α=0.05 y comparamos el valor de F que acabamos de calcular con G,.>
=3.89,

prueba desarrollado anteriormente, rechazamos : ; por tanto, decidimos que el modelo (2) es mejor
observamos que el valor calculado es mayor que el valor tabulado. Según el procedimiento de

que el modelo (1).

COMPARACIÓN DE MODELOS

Si deseamos comparar modelos anidados, la información necesaria se encuentra en las tablas


ANOVA de cada modelo. En este caso se considera el problema de comparar dos modelos de la
forma:

(I) yi= β0 + β1x1i +...+ βl xli + εi


(II) yi= β0 + β1x1i +... + βl xli + βl+1 xl+1,I + ...+ βk xki + εi

En este caso contrastamos la hipótesis

H0: βl+1= βl+2 = … = βk = 0 vs H1: βj ≠ 0, algún j =l+1,...,k

Rechazamos H0 si F > Fα k-l, n-(k+1).

Para generar la tabla ANOVA para un modelo o para comparar dos modelos anidados, se utiliza el
comando anova en R.

Como la variable Distancia nos había reflejado una relación lineal más débil, se estimo un modelo
lineal sin incluir esta misma. En R, escribimos

mod2=lm(Tiempo~No.cajas)

summary(mod2)
Residuals:
Min 1Q Median 3Q Max
-10.6583 -1.6018 -0.1821 2.5262 5.3952 Al realizar esta instrucción notamos

rechazar : . Es decir, podemos afirmar


que las pruebas t, nos sugieren
Coefficients:
Estimate Std. Error t value Pr(>|t|) (a este nivel) que el número de cajas
(Intercept) 18.5452 3.4142 5.432 0.000115 *** distribuidas es importante para
No.cajas 0.6845 0.1805 3.791 0.002244 **
predecir el tiempo de entrega de la
---
cerveza, de igual manera nos dice que
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
consideremos la constante en el
Residual standard error: 4.053 on 13 degrees of freedom modelo.
Multiple R-Squared: 0.5251, Adjusted R-squared: 0.4886
F-statistic: 14.37 on 1 and 13 DF, p-value: 0.002244 Sin embargo, el valor del R2 ajustado
disminuye considerablemente.

Realicemos una comparación de ambos modelos (1 y 2) a través del ANOVA. Para hacer la
comparación entre los modelos se utiliza la instrucción anova (modelo más sencillo, modelo más
complejo)

anova(mod2,mod1)

Esta instrucción permite comparar dos modelos anidados a través de una prueba F.

Res.Df RSS Df Sum of Sq F Pr(>F)

1 13 213.573

2 12 118.375 1 95.198 9.6505 0.00908 **

Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

En este caso la hipótesis es

H0: β2 = 0 vs H1: β2 ≠ 0

El estadístico en este caso sería

213.573 2 118.375
445Q 2 445R /L 2 D 221 95.198
G   P 9.650
445R /6 2 L  1 118.375 9.864
15 2 2  1

Fijando un nivel α=0.05 para la prueba, cuando comparamos el valor anterior con G,T
.>
 4.67,
observamos el valor calculado es mayor que el tabulado, por lo que podemos rechazar la hipótesis
nula en este caso. Concluimos de manera similar que la distancia recorrida es importante para
predecir el tiempo de entrega de la cerveza.

Por lo que nos quedamos con el modelo

Tiempo = 2,31 + 0,88 No.cajas + 0, 46 Distancia


El ajuste y el análisis de un modelo lineal se sustentan en cuatro suposiciones básicas:

• La relación entre las variables es lineal, lo cual puede ser chequeado con el gráfico de los
datos.
• Los errores siguen una distribución normal.
• Las varianzas de los errores son iguales (es decir los errores son HOMOCEDÁSTICOS).
• Los errores son independientes.

Es necesario entonces preguntarse si estas suposiciones se cumplen.

ANÁLISIS DE RESIDUOS

• Gráfico de residuos en papel normal. Debe obtenerse un gráfico similar a una recta.
• Gráfico de residuos vs. valores estimados.
• Gráfico de residuos vs. variables explicativas.

Figura 3: Forma de un gráfico satisfactorio de residuos

Figura 4. Formas típicas de gráficos de residuos insatisfactorios.

(1) Falta un término lineal.


(2) Falta un término de orden superior.
(3) No hay homocedasticidad.

Si se desea un gráfico de residuos estandarizados vs. valores ajustados en R, existen funciones que
extraen ambos objetos de un modelo lineal. Estas funciones son fitted.values y rstandard.
Para chequear la suposición de normalidad podemos observar los siguientes gráficos:

rstint<-rstandard(mod1) – residuos estándares del modelo ajustado (completo)


win.graph() – abre una ventana para los gráficos
par(mfrow=c(1,3)) – divide la ventana en una fila y tres columnas
hist(rstint) – histograma de los residuos estandarizados
boxplot(rstint) – diagrama de cajas de los residuos estandarizados
qqnorm(rstint) – gráfico de cuantiles de los residuos estandarizados
qqline(rstint)

Para chequear si la varianza de los errores es constante o no, se puede graficar:

plot(fitted.values(mod1),rstandard(mod1), xlab="Valores ajustados", ylab="Residuos


estandarizados") - gráfico 2D de los valores ajustados vs. los residuos estandarizados
abline(h=0) – dibuja la recta en cero

Para verificar la independencia de los errores

plot(No.cajas,rstandard(mod1),xlab="No.cajas",ylab="Residuos estandarizados")
plot(Distancia,rstandard(mod1),xlab="Distancia",ylab="Residuos estandarizados")

Histogram of rstint Normal Q-Q Plot


8

1
6

0
Sample Quantiles
Frequency

-1

-1
4

-2

-2
2

-3

-3
0

-4 -3 -2 -1 0 1 2 -1 0 1

rstint Theoretical Quantiles


1
0
Residuos estandarizados

-1
-2
-3

25 30 35

Valores ajustados
1
0
Residuos estandarizados

-1
-2
-3

10 15 20 25 30

No.cajas
1
0
Residuos estandarizados

-1
-2
-3

20 25 30 35 40

Distancia

Figura 5. Gráficos analizar los residuos del modelo ajustado


Figura 6. Gráfico del plano ajustado

INTERPRETACIÓN DE LOS COEFICIENTES DE REGRESIÓN ESTIMADOS

En general, un coeficiente de regresión representa el cambio promedio en la variable respuesta (Y)


cuando la variable independiente (X) correspondiente se incrementa una unidad adicional,
asumiendo que las otras variables independientes permanecen fijas.

β 1 : 0.88 - Significa que el tiempo promedio de servicio a los clientes aumenta en aproximadamente
0.88 cuando el número de cajas transportadas se incrementa, asumiendo que la distancia recorrida
se mantiene fija.

β 2 : 0.46 - Significa que el tiempo promedi


promedioo de servicio a los clientes se incrementa en
aproximadamente 0.46 de lo que sean las unidades en que viene medida dicho tiempo cuando la
distancia recorrida aumenta también. Suponiendo que el número de cajas de cervezas en este caso
se mantiene constante.

β 0 : 2.31 - Representa el valor del tiempo de servicio a los clientes cuando el número de cajas de
cervezas y la distancia recorrida es cero.

INTERVALOS
INTERVALOS DE CONFIANZA PARA LA RESPUESTA MEDIA

En esta parte vamos a construir un intervalo de confianza de 95% para el tiempo medio de servicio a
los clientes de la muestra, cuando el número de cajas (X1) es 9 y la distancia recorrida (X2 ) es de 16.
16
Usando el modelo ajustado tenemos que, el tiempo estimado de servicio cuando X1=9 y X2=16 es:
Luego determinamos que
 3.478 −0.069 −0.078  1
U 3  U  V1 9 16W X Y  0.7344
 −0.069 0.0024 0.001  9
 0 
 −0.078 0.001 0.002  16
 

Buscamos en la tabla el valor =Z⁄  =.> con n -(k +1) grados de libertad, es decir, =.>, 
2.179

445
Además usando

4   9.93
627

Tenemos nuestro intervalo buscado:

17.502 2 2.179 99.93 U 3  0 U \ ]^ \ 17.502  2.179 99.93 U 3  0 U

17.502 2 2.179 99.93 0.7344 \ ]^ \ 17.502  2.179 99.93 0.7344

11.617 \ ]^ \ 23.385

Tenemos un 95% de seguridad de que cuando las variables independientes (número de cajas y
distancia recorrida) adoptan los valores 9 y 16, el valor medio (E(Y)) de la variable tiempo de servicio
está entre 11.6 y 23.3.

INTERVALO DE PREDICCIÓN PARA UN VALOR PARTICULAR DE LA RESPUESTA

Veamos el intervalo de predicción de 95% para un valor particular de la variable dependiente


(tiempo), cuando el número de cajas (X1) es 9 y la distancia recorrida (X2 ) es de 16. Usando los valores
previos tenemos que:

17.502 2 2.179 99.93 1  U 3  0 U \ ' \ 17.502  2.179 99.93 1  U 3  0 U

17.502 2 2.179 99.93 1  0.7344 \ ' \ 17.502  2.179 99.93 1  0.7344

17.502 2 9.042 \ ' \ 17.502  9.042

8.459 \ ' \ 26.544

Observe que, el intervalo de predicción es considerablemente más ancho que el intervalo de


confianza.

En R, se pueden observar estos mismos resultados ejecutando los comandos siguientes

Valores=data.frame(No.cajas=9,Distancia=16)
predict(mod1, newdata=valores, interval="confidence",level=0.95)
predict(mod1, newdata=valores, interval="prediction",level=0.95)
Funciones genéricas de extracción de información del modelo

anova(objeto 1, objeto 2)
Compara un submodelo con un modelo externo y produce una tabla de análisis de la varianza.

coefficients(objeto)
Extrae la matriz de coeficientes de regresión. Forma reducida: coef(objeto).

formula(objeto)
Extrae la fórmula del modelo.

plot(objeto)
Crea cuatro gráficos que muestran los residuos, los valores ajustados y algunos diagnósticos.

predict(objeto, newdata=hoja.de.datos)
La nueva hoja de datos que se indica debe tener variables cuyas etiquetas coincidan con las de la
original. El resultado es un vector o matriz de valores predichos correspondiente a los valores de las
variables de hoja.de.datos.

residuals(objeto)
Extrae la matriz de residuos, ponderada si es necesario. La forma reducida es resid(objeto).

step(objeto)
Selecciona un modelo apropiado añadiendo o eliminando términos y preservando las jerarquías. Se
devuelve el modelo que en este proceso tiene el máximo valor de AIC

Otras funciones que permiten explorar sucesiones crecientes de modelos son add1(), drop1()

S-ar putea să vă placă și