Tipos de errores cuadrados

Derek Corcoran
"09/05, 2018"

Objetivos del práctico

  • Entender los distintos tipos de errores cuadrados
    • Tipo I
    • Tipo II
    • Tipo III
  • Cuando usar cada tipo de medida de error cuadrado
    • Tipo I (Diseños anidados)
    • Tipo II (Diseños factoriales sin interacción)
    • Tipo III (Diseños factoriales con interacción)
  • Como implementarlo en R
  • Solo importa en ANOVAS de dos o mas factores

Antes de empezar

  • Función Anova: Nos permite medir diferencias entre dos modelos lineales o ANOVAS
anova(aov(mpg ~ am, data =mtcars), aov(mpg ~ am + cyl, data =mtcars))
Analysis of Variance Table

Model 1: mpg ~ am
Model 2: mpg ~ am + cyl
  Res.Df    RSS Df Sum of Sq      F    Pr(>F)    
1     30 720.90                                  
2     29 271.36  1    449.53 48.041 1.285e-07 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Usaremos esta función para explicar los tipos de errores cuadrados

Error tipo I (Error por defecto de R)

  • Cuando usarlo: Modelos anidados, anovas de una vía
  • Cuando no usarlo: Modelos factoriales (El orden de los factores importa)
summary(aov(mpg ~ am*cyl, data = mtcars))
            Df Sum Sq Mean Sq F value   Pr(>F)    
am           1  405.2   405.2  46.892 1.93e-07 ***
cyl          1  449.5   449.5  52.029 7.50e-08 ***
am:cyl       1   29.4    29.4   3.407   0.0755 .  
Residuals   28  241.9     8.6                     
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
summary(aov(mpg ~ cyl*am, data = mtcars))
            Df Sum Sq Mean Sq F value   Pr(>F)    
cyl          1  817.7   817.7  94.642 1.76e-10 ***
am           1   37.0    37.0   4.279   0.0479 *  
cyl:am       1   29.4    29.4   3.407   0.0755 .  
Residuals   28  241.9     8.6                     
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

¿Por que cambian los valores?

Errores cuadrados secuenciales y ~ A + B + *A:B esto se desglosa así:

  • Primero como explica A los datos (y ~ A)
  • Luego como explica B los datos después de que A explico los datos (y ~ B|A)
  • Finalmente como explica la interacción dado lo que ya explican ambas variables en conjunto (y ~ A:B| A + B)
  • Por eso es bueno para sistemas anidados

Anotemos los cuadrados del ANOVA

summary(aov(uptake ~ Treatment*Type, data = CO2))
               Df Sum Sq Mean Sq F value   Pr(>F)    
Treatment       1    988     988  15.416 0.000182 ***
Type            1   3366    3366  52.509 2.38e-10 ***
Treatment:Type  1    226     226   3.522 0.064213 .  
Residuals      80   5128      64                     
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Cuanto explica Treatment

Treatment

anova(aov(uptake ~ 1, data = CO2), aov(uptake ~ Treatment, data = CO2))
Analysis of Variance Table

Model 1: uptake ~ 1
Model 2: uptake ~ Treatment
  Res.Df    RSS Df Sum of Sq      F   Pr(>F)   
1     83 9707.0                                
2     82 8718.9  1    988.11 9.2931 0.003096 **
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Cuanto explica Treatment

plot of chunk unnamed-chunk-5

Cuanto explica Type dado Treatment

anova(aov(uptake ~ Treatment, data = CO2), aov(uptake ~ Treatment + Type, data = CO2))
Analysis of Variance Table

Model 1: uptake ~ Treatment
Model 2: uptake ~ Treatment + Type
  Res.Df    RSS Df Sum of Sq      F    Pr(>F)    
1     82 8718.9                                  
2     81 5353.3  1    3365.5 50.923 3.679e-10 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Cuanto explica Type dado Treatment

plot of chunk unnamed-chunk-7

Cuanto explica la interaccion dadas ambas variables

anova(aov(uptake ~ Treatment + Type, data = CO2), aov(uptake ~ Treatment + Type + Treatment:Type, data = CO2))
Analysis of Variance Table

Model 1: uptake ~ Treatment + Type
Model 2: uptake ~ Treatment + Type + Treatment:Type
  Res.Df    RSS Df Sum of Sq      F  Pr(>F)  
1     81 5353.3                              
2     80 5127.6  1    225.73 3.5218 0.06421 .
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Cuanto explica la interaccion dadas ambas variables

plot of chunk unnamed-chunk-9

Error tipo II

  • Cuando usarlo: Cuando no hay interacciones (el más poderoso), anovas de una vía (orden no importa)
  • Cuando no usarlo: Modelos factoriales interacciones fuertes
library(car)
Anova(aov(mpg ~ am*cyl, data = mtcars), type = 2)
Anova Table (Type II tests)

Response: mpg
          Sum Sq Df F value    Pr(>F)    
am         36.97  1  4.2791   0.04793 *  
cyl       449.53  1 52.0289 7.503e-08 ***
am:cyl     29.44  1  3.4073   0.07551 .  
Residuals 241.92 28                      
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Anova(aov(mpg ~ cyl*am, data = mtcars), type = 2)
Anova Table (Type II tests)

Response: mpg
          Sum Sq Df F value    Pr(>F)    
cyl       449.53  1 52.0289 7.503e-08 ***
am         36.97  1  4.2791   0.04793 *  
cyl:am     29.44  1  3.4073   0.07551 .  
Residuals 241.92 28                      
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

¿Cual es la diferencia con el tipo 1?

Anova Table (Type II tests)

Response: mpg
          Sum Sq Df F value    Pr(>F)    
am         36.97  1  4.2791   0.04793 *  
cyl       449.53  1 52.0289 7.503e-08 ***
am:cyl     29.44  1  3.4073   0.07551 .  
Residuals 241.92 28                      
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Analysis of Variance Table

Response: mpg
          Df Sum Sq Mean Sq F value    Pr(>F)    
am         1 405.15  405.15 46.8919 1.932e-07 ***
cyl        1 449.53  449.53 52.0289 7.503e-08 ***
am:cyl     1  29.44   29.44  3.4073   0.07551 .  
Residuals 28 241.92    8.64                      
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Orden de los errores

Errores cuadrados de y ~ A + B + *A:B se desglosan así:

  • Primero como explica A los datos despues de que B explico los datos (y ~ A|B)
  • Luego como explica B los datos después de que A explico los datos (y ~ B|A)
  • Finalmente como explica la interacción dado lo que ya explican ambas variables en conjunto (y ~ A:B| A + B)
  • Por le da última prioridad a las interacciones
    • Bueno si nos interesan efectos principales
    • Malo si nos interesan más las interacciones

Anotemos los cuadrados del ANOVA

Anova(aov(mpg ~ am*cyl, data = mtcars), type = 2)
Anova Table (Type II tests)

Response: mpg
          Sum Sq Df F value    Pr(>F)    
am         36.97  1  4.2791   0.04793 *  
cyl       449.53  1 52.0289 7.503e-08 ***
am:cyl     29.44  1  3.4073   0.07551 .  
Residuals 241.92 28                      
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Cuanto explica am, cuando ya tomamos en cuenta cyl

anova(aov(mpg ~ cyl, data = mtcars), aov(mpg ~ am + cyl, data = mtcars))
Analysis of Variance Table

Model 1: mpg ~ cyl
Model 2: mpg ~ am + cyl
  Res.Df    RSS Df Sum of Sq      F  Pr(>F)  
1     30 308.33                              
2     29 271.36  1    36.972 3.9511 0.05635 .
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Cuanto explica am, cuando ya tomamos en cuenta cyl

plot of chunk unnamed-chunk-15

Cuanto explica cyl, cuando ya tomamos en cuenta am

anova(aov(mpg ~ am, data = mtcars), aov(mpg ~ am + cyl, data = mtcars))
Analysis of Variance Table

Model 1: mpg ~ am
Model 2: mpg ~ am + cyl
  Res.Df    RSS Df Sum of Sq      F    Pr(>F)    
1     30 720.90                                  
2     29 271.36  1    449.53 48.041 1.285e-07 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Cuanto explica cyl, cuando ya tomamos en cuenta am

plot of chunk unnamed-chunk-17

Cuanto explica interacción, cuando ya tomamos en cuenta am y cyl

anova(aov(mpg ~ am + cyl, data = mtcars), aov(mpg ~ am *cyl, data = mtcars))
Analysis of Variance Table

Model 1: mpg ~ am + cyl
Model 2: mpg ~ am * cyl
  Res.Df    RSS Df Sum of Sq      F  Pr(>F)  
1     29 271.36                              
2     28 241.92  1    29.439 3.4073 0.07551 .
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Cuanto explica interacción

plot of chunk unnamed-chunk-19

Error tipo III

  • Cuando usarlo: Cuando hay interacciones, diseños desbalanceados, anovas de una vía (orden no importa)
  • Cuando no usarlo: Cuando las interacciones son fuertes no permite detectar efectos principales
Anova(aov(mpg ~ am*cyl, data = mtcars), type = 3)
Anova Table (Type III tests)

Response: mpg
            Sum Sq Df F value    Pr(>F)    
(Intercept) 810.20  1 93.7719 1.948e-10 ***
am           48.28  1  5.5879 0.0252577 *  
cyl         167.65  1 19.4033 0.0001407 ***
am:cyl       29.44  1  3.4073 0.0755069 .  
Residuals   241.92 28                      
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

¿Cual es la diferencia con el tipo 2?

Anova Table (Type II tests)

Response: mpg
          Sum Sq Df F value    Pr(>F)    
am         36.97  1  4.2791   0.04793 *  
cyl       449.53  1 52.0289 7.503e-08 ***
am:cyl     29.44  1  3.4073   0.07551 .  
Residuals 241.92 28                      
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Anova Table (Type III tests)

Response: mpg
            Sum Sq Df F value    Pr(>F)    
(Intercept) 810.20  1 93.7719 1.948e-10 ***
am           48.28  1  5.5879 0.0252577 *  
cyl         167.65  1 19.4033 0.0001407 ***
am:cyl       29.44  1  3.4073 0.0755069 .  
Residuals   241.92 28                      
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Orden de los errores

Errores cuadrados dey ~ A + B + *A:B se desglosan así:

  • Primero como explica A los datos despues de que B y las interacciones lo explicaron (y ~ A|B + A:B)
  • Luego como explica B los datos después de que A e interacciones explicaran los datos (y ~ B|A + A:B)
  • Finalmente como explica la interacción dado lo que ya explican ambas variables en conjunto (y ~ A:B| A + B)
  • Solo le da a cada variable lo que explica por si sola
    • Malo si nos interesan mas los efectos principales
    • Bueno si nos interesan más las interacciones

Anotemos los cuadrados del ANOVA

Anova(aov(mpg ~ am*cyl, data = mtcars), type = 3)
Anova Table (Type III tests)

Response: mpg
            Sum Sq Df F value    Pr(>F)    
(Intercept) 810.20  1 93.7719 1.948e-10 ***
am           48.28  1  5.5879 0.0252577 *  
cyl         167.65  1 19.4033 0.0001407 ***
am:cyl       29.44  1  3.4073 0.0755069 .  
Residuals   241.92 28                      
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Cuanto explica am, cuando ya tomamos en cuenta cyl y las interacciones

anova(aov(mpg ~ cyl, data = mtcars), aov(mpg ~ am + am:cyl, data = mtcars))
Analysis of Variance Table

Model 1: mpg ~ cyl
Model 2: mpg ~ am + am:cyl
  Res.Df    RSS Df Sum of Sq F Pr(>F)
1     30 308.33                      
2     29 409.57  1   -101.23         

Cuanto explica cyl, cuando ya tomamos en cuenta am y las interacciones

anova(aov(mpg ~ am, data = mtcars), aov(mpg ~ cyl + am:cyl, data = mtcars))
Analysis of Variance Table

Model 1: mpg ~ am
Model 2: mpg ~ cyl + am:cyl
  Res.Df   RSS Df Sum of Sq      F    Pr(>F)    
1     30 720.9                                  
2     29 290.2  1    430.69 43.039 3.466e-07 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Cuanto explica interacción, cuando ya tomamos en cuenta am y cyl

anova(aov(mpg ~ am + cyl, data = mtcars), aov(mpg ~ am *cyl, data = mtcars))
Analysis of Variance Table

Model 1: mpg ~ am + cyl
Model 2: mpg ~ am * cyl
  Res.Df    RSS Df Sum of Sq      F  Pr(>F)  
1     29 271.36                              
2     28 241.92  1    29.439 3.4073 0.07551 .
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Exploren ANOVAS

Crearemos base de datos simulada con la funcion SimulData:

SimulData <- function(MeanA1B1 = 20, MeanA1B2 = 20, MeanA1B3 = 20, MeanA2B1 = 40, MeanA2B2 = 40, MeanA2B3 = 40, N = 5){
  data.frame(A = rep(c("A1", "A2"), each =3*N), B = rep(rep(c("B1", "B2", "B3"), each =N),times =  2), y =(c(rnorm(mean = MeanA1B1, n = N , sd =5),rnorm(mean = MeanA1B2, n =N , sd =5), rnorm(mean = MeanA1B3, n =N , sd =5), rnorm(mean = MeanA2B1, n = N , sd =5),rnorm(mean = MeanA2B2, n = N , sd =5), rnorm(mean = MeanA2B3, n = N , sd =5))))
}

Exploren ANOVAS

plot of chunk unnamed-chunk-28

Exploren ANOVAS

Graficaremos con la funcion InterPlot

InterPlot <- function(DF){
  require(tidyverse)
  DF <- group_by(DF, A, B) %>% summarize(MeanY = mean(y), SDy = sd(y))
  ggplot(DF, aes(x = B, y = MeanY)) + geom_point(aes(color = A)) + geom_errorbar(aes(color = A, ymax = MeanY + SDy, ymin = MeanY - SDy)) + geom_line(aes(color = A)) + theme_classic()
}

Exploren ANOVAS

InterPlot(DF)

plot of chunk unnamed-chunk-30

Exploren ANOVAS

anova(aov(y ~ A*B, data = DF))
Analysis of Variance Table

Response: y
          Df Sum Sq Mean Sq   F value    Pr(>F)    
A          1   5048  5048.3  227.9409 < 2.2e-16 ***
B          2  55327 27663.3 1249.0524 < 2.2e-16 ***
A:B        2    322   161.1    7.2729  0.001596 ** 
Residuals 54   1196    22.1                        
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
anova(aov(y ~ B*A, data = DF))
Analysis of Variance Table

Response: y
          Df Sum Sq Mean Sq   F value    Pr(>F)    
B          2  55327 27663.3 1249.0524 < 2.2e-16 ***
A          1   5048  5048.3  227.9409 < 2.2e-16 ***
B:A        2    322   161.1    7.2729  0.001596 ** 
Residuals 54   1196    22.1                        
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Anova(aov(y ~ A*B, data = DF), type = 2)
Anova Table (Type II tests)

Response: y
          Sum Sq Df   F value    Pr(>F)    
A           5048  1  227.9409 < 2.2e-16 ***
B          55327  2 1249.0524 < 2.2e-16 ***
A:B          322  2    7.2729  0.001596 ** 
Residuals   1196 54                        
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Anova(aov(y ~ A*B, data = DF), type = 3)
Anova Table (Type III tests)

Response: y
             Sum Sq Df  F value    Pr(>F)    
(Intercept)  4240.7  1 191.4754 < 2.2e-16 ***
A            1749.9  1  79.0118 3.726e-12 ***
B           30005.4  2 677.4015 < 2.2e-16 ***
A:B           322.2  2   7.2729  0.001596 ** 
Residuals    1196.0 54                       
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1