glm factoriales en r - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · tipos de distribuciones de...

144
DISEÑOS FACTORIALES EN R CON MODELOS GENERALES LINEALES DISEÑOS nFACTORIALES DE EFECTOS “ENTRE” SUJETOS nway AN(c)OVAS Luis M. Carrascal (www.lmcarrascal.eu) Grupo de Biogeografía Ecológica Integrativa Museo Nacional de Ciencias Naturales, CSIC Cómo realizarlos, buena praxis e interpretación de los resultados curso de la Sociedad de Amigos del Museo Nacional de Ciencias Naturales impartido en EneroFebrero de 2017 1

Upload: dinhnhu

Post on 20-Sep-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS FACTORIALES EN R CONMODELOS GENERALES LINEALES

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVAS

Luis M. Carrascal(www.lmcarrascal.eu)

Grupo de Biogeografía Ecológica IntegrativaMuseo Nacional de Ciencias Naturales, CSIC

Cómo realizarlos,buena praxis e 

interpretación de los resultados

curso de la Sociedad de Amigos del Museo Nacional de Ciencias Naturales impartido en Enero‐Febrero de 2017

1

Page 2: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

Esquema:Tipos de distribuciones de la variable respuesta (pág. 3)Tipos de variables predictoras (pág. 23)Generalidades de modelos n‐way AN(c)OVAS (pág. 24)Tablas y tipos de contrastes (pág. 29)Importación de datos y construcción de modelos (pág. 36)

Exploración de los supuestos canónicos del "buen" modelo (pág. 46)Normalidad de residuosHeterocedasticidad de residuosPuntos influyentes y perdidosHomogeneidad de varianzas a través de los niveles de los factoresIndependencia entre las variables‐factores predictores ‐ colinealidad

Resultados (ver los aspectos en pág. 70)

¿Cuál es el poder predictivo del modelo? – cross‐validation (pág. 100)Examen del efecto de la violación del supuesto de homocedasticidad (pág. 104)Transformaciones para "salvar" el modelo General Lineal (pág. 108)Homogeneidad de pendientes en el modelo ANCOVA (pág. 114)

Estimas y modelos robustos (pág. 119)Reducción de modelos y Akaike AIC (pág. 128)

2

Page 3: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

TIPOS DE DISTRIBUCIONES DE LA VARIABLE RESPUESTAdistribuciones continuas

Gausianas, Poisson y Binomiales Negativas

3

Page 4: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

TIPOS DE DISTRIBUCIONES DE LA VARIABLE RESPUESTA

Comencemos por la normal (Gausiana)Se describe por dos parámetros:estadístico central o mediaestadístico de dispersión o desviación típica (sd)

la varianza = sd2Distribuciones geométricas simétricas

… nos inventamos números (generados al azar según unas propiedades predefinidas)

## variables normales generadas al azar; 10.000 datosvar.normal <- rnorm(n=10000, mean=4, sd=2)

## conozcamos su media y desviación típicamean(var.normal)sd(var.normal)

> mean(var.normal) > aparece en la consola[1] 4.018361 como resultado de una> sd(var.normal) instrucción ejecutada[1] 2.004826

4

Page 5: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

TIPOS DE DISTRIBUCIONES DE LA VARIABLE RESPUESTA

Normal (Gausiana)Representamos el histograma y el Q‐Q plot:

abline, curve y qqline bajo un comando plot, hist, qqnorm, … añaden líneas al gráficomain añade un título principalv para vertical; h para horizontalcol es color; lwd para el grosor de la línea

## el histogramahist(var.normal , main="variable al azar: media=4 y sd=2")abline(v=0, col="red", lwd=2)

## y ahora el Q-Q plotqqnorm(var.normal, main="variable al azar: media=4 y sd=2")qqline(var.normal, col="red", lwd=2)

5

Page 6: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

TIPOS DE DISTRIBUCIONES DE LA VARIABLE RESPUESTA

Normal (Gausiana)Representamos el histograma y el Q‐Q plot:

6

Page 7: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

TIPOS DE DISTRIBUCIONES DE LA VARIABLE RESPUESTA

Normal (Gausiana)Representamos el histograma y el Q‐Q plot en un solo plot con dos paneles:

c(…) es un argumento usado para combinar “cosas” según una secuencia dada

podemos añadir comentarios en una línea de código con  ## …

par(mfcol=c(1,2)) ## fija los paneles según 1 fila y 2 columnashist(var.normal, density=5, freq=FALSE, main="distribución simulada")curve(dnorm(x, mean=mean(var.normal), sd=sd(var.normal)), col="red", lwd=2,

add=TRUE, yaxt="n")abline(v=0, col="blue", lwd=2) qqnorm(var.normal)qqline(var.normal, col="red", lwd=2)par(mfcol=c(1,1)) ## volvemos a un gráfico con sólo un panel

7

Page 8: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

TIPOS DE DISTRIBUCIONES DE LA VARIABLE RESPUESTA

Normal (Gausiana)Representamos el histograma y el Q‐Q plot en un solo plot con dos paneles:

8

Page 9: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

TIPOS DE DISTRIBUCIONES DE LA VARIABLE RESPUESTA

Normal (Gausiana)Una variable “aislada” sólo se define por una dimensión (e.g., var.normal).var.normal es un vector de longitud 10.000.length(var.normal)> length(var.normal)[1] 10000

El dato 253 será:                                       var.normal[253]Los datos 253 y del 401 al 450 serán:    var.normal[c(253, 401:450)]

Representamos ahora los histogramas de cuatro subconjuntos de datos seleccionados ciegamente dentro de nuestra variable generada al azar. Y los ponemos en una misma figura con cuatro paneles.

par(mfcol=c(2,2)) ## fija los paneles según 2 columnas y 2 filashist(var.normal[c(1:50)])hist(var.normal[c(201:250)])hist(var.normal[c(401:450)])hist(var.normal[c(601:650)])par(mfcol=c(1,1))

9

Page 10: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

TIPOS DE DISTRIBUCIONES DE LA VARIABLE RESPUESTA

Normal (Gausiana)Histogramas de cuatro subconjuntos de datos seleccionados ciegamente

10

Page 11: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

TIPOS DE DISTRIBUCIONES DE LA VARIABLE RESPUESTA

Normal (Gausiana)Y ahora los mismos datos pero con Q‐Q plots:

par(mfcol=c(2,2)) ## fija los paneles según 2 columnas y 2 filasqqnorm(var.normal[c(1:50)])qqline(var.normal, col="red", lwd=2)qqnorm(var.normal[c(201:250)])qqline(var.normal, col="red", lwd=2)qqnorm(var.normal[c(401:450)])qqline(var.normal, col="red", lwd=2)qqnorm(var.normal[c(601:650)])qqline(var.normal, col="red", lwd=2)par(mfcol=c(1,1))

11

Page 12: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

TIPOS DE DISTRIBUCIONES DE LA VARIABLE RESPUESTA

Normal (Gausiana)Y ahora los mismos datos pero con Q‐Q plots:

12

Page 13: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

TIPOS DE DISTRIBUCIONES DE LA VARIABLE RESPUESTA

Normal (Gausiana)Y veamos ahora sus medias y desviaciones para unos datos que vienen de una distribución de media = 4   y  varianza = 4  (sd = 2).

mean(var.normal[c(1:50)]); sd(var.normal[c(1:50)]) mean(var.normal[c(201:250)]); sd(var.normal[c(201:250)])mean(var.normal[c(401:450)]); sd(var.normal[c(401:450)])mean(var.normal[c(601:650)]); sd(var.normal[c(601:650)])

> mean(var.normal[c(1:50)]); sd(var.normal[c(1:50)]) [1] 4.268634 [1] 1.953344 > mean(var.normal[c(201:250)]); sd(var.normal[c(201:250)]) [1] 3.952677 [1] 1.928345 > mean(var.normal[c(401:450)]); sd(var.normal[c(401:450)]) [1] 3.979421 [1] 1.598691 > mean(var.normal[c(601:650)]); sd(var.normal[c(601:650)]) [1] 3.775069 [1] 2.011229

13

Page 14: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

TIPOS DE DISTRIBUCIONES DE LA VARIABLE RESPUESTA

Normal (Gausiana)

El mensaje es obvio:

• una cosa es una distribución teórica derivada de un número enorme de datos (con su geometría y parámetros canónicos)

• y otra lo que representa un subconjunto “modesto” de esos datos

• haremos exploraciones visuales “más atinadas” con Q‐Q plotsque con histogramas

14

Page 15: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

TIPOS DE DISTRIBUCIONES DE LA VARIABLE RESPUESTA

PoissonEs una distribución con las siguientes características:• son números enteros (generalmente conteos)• no puede presentar valores negativos• su distribución se describe por un solo parámetro (lambda), de manera que la media 

es igual a la varianza de la distribución (lambda media = sd2)

## generamos valores aleatorios según una Poisson## 10.000 valores, con media = varianza = 4var.poisson <- rpois(n=10000, lambda=4)#### veamos qué media y varianza han acabado teniendomean(var.poisson)sd(var.poisson)^2> mean(var.poisson)[1] 4.0103> sd(var.poisson)^2[1] 3.986393

15

Page 16: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

TIPOS DE DISTRIBUCIONES DE LA VARIABLE RESPUESTA

PoissonHacemos una exploración visual (asimétricas y truncadas en el cero)No se ajustan a una distribución de campana gausiana

## primero el histograma de la Poissonhist(var.poisson, density=5, freq=FALSE, main="distribución simulada Poisson")curve(dnorm(x, mean=mean(var.poisson), sd=sd(var.poisson)),

col="red", lwd=2, add=TRUE, yaxt="n")

16

Page 17: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

TIPOS DE DISTRIBUCIONES DE LA VARIABLE RESPUESTA

PoissonHacemos una exploración visual (asimétricas y truncadas en el cero)No se ajustan a una distribución de campana gausiana

## luego el Q-Q plot de la Poissonqqnorm(var.poisson, main="distribución simulada Poisson")qqline(var.poisson, col="red", lwd=2)

17

Page 18: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

TIPOS DE DISTRIBUCIONES DE LA VARIABLE RESPUESTA

Poisson … parecida a una gausianaDistribuciones de Poisson con valor de lambda alto (i.e., distante de cero) pueden asemejarse a una gausiana

par(mfcol=c(1,2))hist(rpois(n=10000, lambda=50), main="distribución simulada Poisson")qqnorm(rpois(n=10000, lambda=50), main="distribución simulada Poisson")qqline(rpois(n=10000, lambda=50), col="red", lwd=2)par(mfcol=c(1,1))

18

Page 19: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

TIPOS DE DISTRIBUCIONES DE LA VARIABLE RESPUESTA

Binomial negativaDistribuciones más dispersadas que una Poisson (varianza > media).De nuevo, son distribuciones de números enteros (generalmente conteos),

que carecen de números negativosy se describen por dos parámetros:

uno es la media ("mu")y otro es el inflado de la varianza (denominado "size" en R)

La varianza viene definida por:        mu + mu^2/sizeCuando size es muy grande, 1/size tiende a cero, y la varianza acaba pareciéndose a mu. 

## generamos valores aleatorios según una Binomial Negativa## 10.000 valores, con media = 4 y size = 1var.negbin <- rnbinom(n=10000, size=1, mu=4)#### veamos qué media y varianza han acabado teniendomean(var.negbin)sd(var.negbin)^2> mean(var.negbin)[1] 4.0357> sd(var.negbin)^2[1] 20.88551 19

Page 20: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

TIPOS DE DISTRIBUCIONES DE LA VARIABLE RESPUESTA

Binomial negativaY la representamos:par(mfcol=c(1,2))hist(rnbinom(n=10000, size=1, mu=4), main="simulada Binomial Negativa")qqnorm(rnbinom(n=10000, size=1, mu=4), main="simulada Binomial Negativa")qqline(rnbinom(n=10000, size=1, mu=4), col="red", lwd=2)par(mfcol=c(1,1))

20

Page 21: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

TIPOS DE DISTRIBUCIONES DE LA VARIABLE RESPUESTA

Binomial negativa … aproximada a una PoissonCambiamos ahora el parámetro de sobredispersión size a 1000:par(mfcol=c(1,2))hist(rnbinom(n=10000, size=1000, mu=4), main="simulada Binomial Negativa")qqnorm(rnbinom(n=10000, size=1000, mu=4), main="simulada Binomial Negativa")qqline(rnbinom(n=10000, size=1000, mu=4), col="red", lwd=2)par(mfcol=c(1,1))

21

> mean(rnbinom(n=10000, size=1000, mu=4))[1] 4.0041> sd(rnbinom(n=10000, size=1000, mu=4))^2[1] 4.005399

Page 22: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

TIPOS DE DISTRIBUCIONES DE LA VARIABLE RESPUESTA

Modelos Generales y GeneralizadosDependiendo de qué naturaleza tenga nuestra variable respuesta, trabajaremos con diferentes tipos de modelos en nuestros análisis de diseños factoriales:

Modelos Generales LinealesDistribución Gausiana

Modelos Generalizados LinealesDistribución de PoissonDistribución Binomial NegativaDistribución BinomialDistribución Multinomial (ordinal o no ordinal)

Si la distribución de la variable respuesta no es ni Poisson, ni Binomial Negativa ni Binomial, pero tampoco presenta características de una Gausiana, entonces:transformamos la variable respuesta y aplicamos Modelos Generales Lineales(véase la página 108)

22

Page 23: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

TIPOS DE VARIABLES PREDICTORAS

continuas (covariantes)factores dentro y entre sujetos

factores fijos y aleatoriosfactores anidadosfactores "bloque"

y …offsetsweights

23

Page 24: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOS

n‐way AN(c)OVASgeneralidades

24

Page 25: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASEn estos diseños cada unidad es una réplica independiente de las demás.Sólo se efectúa una medida por sujeto muestral.

Podemos combinar variables predictoras nominales llamadas factores yvariables continuas denominadas covariantes.

No existirán combinaciones de niveles de diferentes factores que carezcan de datos(diseños sin “celdas vacías”).

Vamos a asumir que existen relaciones lineales entre los predictores y la respuesta.

Asumimos que la variable respuesta y sus residuos se ajusta a una distribución normal.

Para diseños en los que la distribución de la respuesta sea distinta utilizaremos Modelos Generalizados Lineales

25

Page 26: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASDefinimos la variable Dependiente (cuyos residuos del modelo se ajustarán a la normal)los Factores Fijos (predictores nominales) y las Covariantes (predictores continuos)Esto es, definimos el Modelo al que le podemos dar un nombre (e.g., eqt).

## CONSTRUIMOS EL MODELO## primero definimos la función de efectos (respuesta ~ predictores)eqt <- as.formula(MUSCULO ~ TARSO + ZONA*SEXO*EDAD)

Las covariantes sólo entran como efectos principales (Main effects) … por ahora.TARSO es la covariante

En esta ocasión tenemos los efectos principales de los factores,y las interacciones bi‐factoriales (All 2‐way) y tri‐factoriales (All 3‐way) entre los factores.ZONA*SEXO*EDAD es equivalente a:

ZONA+SEXO+EDAD + ZONA:SEXO+ZONA:EDAD+SEXO:EDAD + ZONA:SEXO:EDADefectos simples    interacciones dobles           interacción triple

factorA:factorB interacción del factor A con el factor B

26

Page 27: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVAS

¿Qué son las interacciones?Responder a esta pregunta es equivalente a encontrar la respuesta a:

¿cambia el efecto del factorA a través de los niveles del factorB?… y al revés

¿cambia el efecto del factorB a través de los niveles del factorA?

Si NO HAY una interacción  factorA:factorBentonces SÍ puede generalizarse el efecto de un factor a través del otro factor

Si HAY una interacción  factorA:factorBentonces NO puede generalizarse el efecto de un factor a través del otro factor

Error de tipo IV:aceptar como válido y generalizable el efecto principal de un factor (Main effect),cuando de hecho su efecto es cambiante a través de otro factor.

27

Page 28: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVAS

Tipos de sumas de cuadrados

* Si queremos trabajar con efectos parciales (cada predictora controlada por las restantes) utilizaremos el tipo III de Suma de Cuadrados (SS). Es el más utilizado.

* Si queremos efectuar una estima secuencial de efectos (según la ordenación que hemos definido en nuestro modelo –eqt–), utilizaremos el tipo I de SS.En este esquema el primer efecto no se controla por ningún otro

el segundo efecto es controlado por el primeroel tercer efecto es controlado por los dos previosel cuatro efecto es controlado por los tres previos …

El orden de efectos afecta a los resultados, a no ser que todos ellos sean perfectamenteindependientes (i.e., ortogonales).

* El tipo II de SS es uno “mixto” en el que:Primero se aplica el tipo III a todos los efectos principales (de orden‐1; no interacciones)Luego se aplica el tipo III a las interacciones de orden‐2 controlando los efectos de orden‐1Luego se aplica el tipo III a las interacciones de orden‐3 controlando los de orden‐1 y orden‐2…

28

Page 29: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVAS

Otro aspecto muy importante es definir qué TIPOS DE CONTRASTES aplicaremos a los diferentes niveles de los factores, y cuáles serán los niveles de referencia dentro de cada factor.

Esto puede ser interesante en el caso de que los factores tengan tres niveles o más.Podemos contar con varios tipos de contrastes:Desvío: es el más utilizado cuando queremos

comparar todos los niveles entre síPolinomiales: para tablas de contrastes que definen patrones de asociación

lineal (ordenación monotónica)polinomial (de orden 2, 3, …)

Personalizados: las columnas deben sumar "cero"habrá tantas columnas de contrastes como niveles "menos" 1

ejemplos:factor DOMINANCIA con 4 niveles: MD, D, S, MS

contraste               comparar MD+D          contrastede desvío                    vs. S+MS                      lineal

MD 3 -1 -1 1 3D -1 3 -1 1 1S -1 -1 3 -1 -1MS -1 -1 -1 -1 -3 29

Page 30: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVAS

Tablas y tipos de contrastesEste es un aspecto de vital importancia si queremos que nuestros resultados, obtenidos en R, sean idénticos a aquellos que logramos trabajando con STATISTICA, SPSS, SAS, etc.

## antes cargamos la siguiente línea de código para obtener## los mismos resultados que STATISTICA y SPSS## utilizando type III SSoptions(contrasts=c(factor="contr.sum", ordered="contr.poly"))

La línea resaltada en negrita denota que si el factor, o predictora nominal, no tiene sus niveles ordenados según una secuencia predefinida, se aplica el tipo de contraste "contr.sum" (también denominada tabla de contrastes de desvío).

Si los niveles de ese factor están ordenados, entonces se aplican todos los tipos posibles de contrastes lineales, cuadráticos, cúbicos, …

Sobre tablas de contrastes "a priori" daremos más detalles más adelante.Son "a priori" porque antes de que los investigadores veamos qué sale, hemos establecido el tipo de comparaciones (contrastes) que queremos hacer.

No lo confundamos con los tests "a posteriori". 30

Page 31: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVAS

Tablas y tipos de contrastesLos resultados de los contrastes planificados "a priori" no afectan al "efecto global" que tiene el factor en la variable respuesta.

Suponen tests de hipótesis efectuados al margen de lo que define el modelo por defecto.

A través de los contrastes podemos definir el examen de unos efectos concretos que usan una determinada ordenación de los niveles de los factores. Ese orden responde a un esquema asociado a una(s) hipótesis concreta(s).

Para establecer tablas de contrastes utilizamos númeroslos niveles de los factores que queremos reunir tiene asignados un mismo númerolos niveles que queremos comparar tienen diferentes númerosla suma de todos esos números que definen códigos de contraste es CERO

Para saber más acerca de cómo se definen los contrastes en R:consultad la ayuda para contr.treatment {stats}mirad http://www.ats.ucla.edu/stat/r/library/contrast_coding.htm

31

Page 32: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVAS

Tablas y tipos de contrastesEjemplo de tabla de contrastes de desvío.Comparamos todos los niveles del factor entre si.

Sea un factor con cuatro niveles llamado FDOMINANCIA (dentro del data.frame datos)Si queremos ver cómo sería una tabla de contrastes "general" para este caso:contr.sum(4)> contr.sum(4)[,1] [,2] [,3] Un factor con n niveles tiene n‐1 columnas de contrastes

1 1 0 02 0 1 03 0 0 14 -1 -1 -1

Definimos manualmente esta tabla de contrastes (que llamo matdesv)## la secuencia es: los 4 valores de la primera columna,## los otros cuatro de la segunda y los otros cuatro de la terceramatdesv <- matrix(c(1,0,0,-1, 0,1,0,-1, 0,0,1,-1), ncol=3)> matdesv

[,1] [,2] [,3] ¡¡ lo mismo que antes, pero hecho por nosotros !![1,] 1 0 0[2,] 0 1 0[3,] 0 0 1[4,] -1 -1 -1 32

Page 33: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVAS

Tablas y tipos de contrastesEjemplo de tabla de contrastes de desvío.Comparamos todos los niveles del factor entre si.

Y ahora re‐definimos nuestro modelo:## no genero un objeto modelo, sino que sólo quiero ver sus resultados con summarysummary(lm(MUSCULO~FDOMINANCIA, data=datos, contrasts=list(FDOMINANCIA=matdesv)))## esto es lo mismo que si hubiese escritosummary(lm(MUSCULO~FDOMINANCIA, data=datos, contrasts=list(FDOMINANCIA=contr.sum)))## porque es la tabla de contrastes de desvío "estándard"

Creamos ahora otra tabla que compara los dos primeros con los dos últimos niveles(que llamo mat12vs34). Este contraste "funde" los cuatro niveles en dos nuevos ## al definir dos nuevos niveles "fundiendo" los cuatro que tiene el factor## tengo dos "nuevos" niveles, y por tanto 2-1 = 1 columnas de contrastemat12vs34 <- matrix(c(1,1, -1,-1), ncol=1)> mat12vs34

[,1][1,] 1[2,] 1[3,] -1[4,] -1

33

Page 34: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVAS

Tablas y tipos de contrastesEjemplo de tabla de contrastes de desvío.Comparamos los niveles del factor según el esquema de Helmert.

primer nivel vs siguiente, dos primeros niveles vs el siguiente, tres primeros niveles vs el siguiente, ...

contr.helmert(4)> contr.helmert(4)[,1] [,2] [,3]

1 -1 -1 -12 1 -1 -13 0 2 -14 0 0 3

## lo hacemos nosotros manualmentemathelmert <- matrix(c(-1,1,0,0, -1,-1,2,0, -1,-1,-1,3), ncol=3)> mathelmert

[,1] [,2] [,3] ¡¡ lo mismo que antes, pero hecho por nosotros !![1,] -1 -1 -1[2,] 1 -1 -1[3,] 0 2 -1[4,] 0 0 3

34

Page 35: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVAS

Tablas y tipos de contrastesEjemplo de tabla de contrastes ordenados.Comparamos los niveles del factor según un esquema ordenado.

un factor con dos niveles sólo tiene un esquema lineal (.L)un factor con tres niveles, tiene un esquema lineal (.L) y otro cuadrático (.Q)un factor con cuatro niveles, tiene un esquema lineal (.L), otro cuadrático (.Q) y otro cúbico (.C)

contr.poly(4)> contr.poly(4)

.L .Q .C[1,] -0.6708204 0.5 -0.2236068[2,] -0.2236068 -0.5 0.6708204[3,] 0.2236068 -0.5 -0.6708204[4,] 0.6708204 0.5 0.2236068

Esto también puede escribirse como:matordenado <- matrix(c(-3,-1,1,3, 1,-1,-1,1, -1,3,-3,1), ncol=3)> matordenado

[,1] [,2] [,3] numéricamente es distinto de lo anterior[1,] -3 1 -1 ¡¡ pero produce los mismos resultados para la tabla de significación y efectos !![2,] -1 -1 3 sólo los valores de los coeficientes del modelo son diferentes[3,] 1 -1 -3 porque obviamente los "números de contrastes" son distintos[4,] 3 1 1

35

contr.poly(2)> contr.poly(2)

.L[1,] -0.7071068[2,] 0.7071068

contr.poly(3)> contr.poly(3)

.L .Q[1,] -7.071e-01 0.4082[2,] -7.850e-17 -0.8165[3,] 7.071e-01 0.4082

Page 36: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVAS

Veamos cómo trabajar con vectores y factores en R

## me invento una variable (vector); cuatro niveles (1 a 4), ocho datos cada unomivariable <- c(1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4)length(mivariable) ## cuántos datos son> length(mivariable)[1] 32

class(mivariable) ## qué tipo de variable es> class(mivariable)[1] "numeric

## para generar una variable al azar según una distribución determinadavar.uniforme <- runif(n=50, min=1, max=4) ## distribución uniformevar.normal <- rnorm(n=50, mean=2.5, sd=1) ## distribución gausianavar.poison <- rpois(n=50, lambda=2.5) ## distribución Poissonvar.binomial <- rbinom(n=50, prob=0.5, size=1) ## distrib. binomial con 0-1var.binomial <- rbinom(n=50, prob=0.5, size=2) ## distrib. binomial con 0-2

## para ordenar un vector no contenido en un data frame (i.e., variable suelta)var.normal.ordenada <- sort(var.normal)

36

Page 37: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASAhora vamos a correr nuestro modelo:(no sin antes dejar de lado el establecimiento de los contrastes "estándar")

R por defecto usa las tablas de contraste contr.treatment. Y esto no es lo correcto.El la ayuda de R para el comando contr.treatment podemos leer:contr.treatment contrasts each level with the baseline level (specified by base)… Note that this does not produce ‘contrasts’ as defined in the standard theory for linear models as they are not orthogonal to the intercept.

## antes cargamos la siguiente línea de código para obtener## los mismos resultados que STATISTICA y SPSS utilizando type III SSoptions(contrasts=c(factor="contr.sum", ordered="contr.poly"))#### y aquí el modelo:eqt <- as.formula(MUSCULO ~ TARSO + ZONA*SEXO*EDAD)modelo <- lm(eqt, data=datos)#### que también podría haber sido:modelo <- lm(MUSCULO ~ TARSO + ZONA*SEXO*EDAD, data=datos)

Pero … ¿y dónde están mis datos?Nuestros datos (que yo aquí los llamo  datos) los asociamos al modelo a través del argumento data incluido en el comando lm que es el que hace el Modelo General Lineal.

37

Page 38: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVAS¿Cómo importo mis datos al entorno de trabajo R y los uso?Y aquí va la opción más sencilla … "para torpes" o para personas que huyen de complicaciones.

Tenemos nuestros datos en MS‐Excel, u otra hoja de cálculo, en la que los datos estén separados por tabuladores.• la primera fila contendrá los nombres de las variables• evitaremos nombres con caracteres extraños (podemos incluir "puntos" .)• tenemos que tener en cuenta si el separador decimal es "coma ,"  ó "punto ." • seleccionaremos todos los datos, incluyendo los nombres de las variables• copiamos al portapapeles los datos• nos pasamos a RStudio y corremos la siguiente línea de código

## para importar datos, que les llamo "datos" (elegid otro nombre)datos <- read.table("clipboard", header=TRUE, sep="\t", dec=".")## "\t" indica que los separadores son tabuladores## "." denota que los decimales se definen con "puntos"

38

Page 39: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVAS¿Cómo importo mis datos al entorno de trabajo R y los uso?Veamos qué contiene nuestra matriz de datos llamada "datos".

## para saber qué clase de objeto esclass(datos)> class(datos)[1] "data.frame"

## para saber qué variables contienenames(datos)> names(datos)[1] "ZONA" "CODZONA" "SEXO" "EDAD" "DOMINANCIA"[6] "TARSO" "ALA" "PESO" "MUSCULO" "TASAVER"

[11] "TASAINV" "DCRECINV" "PIERDE" "MINCAJA10H" "id"

## para saber la naturaleza de las variables que contienestr(datos)> str(datos)'data.frame': 38 obs. of 15 variables:$ ZONA : Factor w/ 2 levels "SARRIA","VENTOR": 1 1 1 1 1 1 1 1 1 1 ...$ CODZONA : int 1 1 1 1 1 1 1 1 1 1 ...$ SEXO : Factor w/ 2 levels "h","m": 1 1 2 2 2 2 2 1 1 1 ...

……… 39

Page 40: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVAS¿Cómo importo mis datos al entorno de trabajo R y los uso?

## para saber sus dimensionesdim(datos)> dim(datos)[1] 38 15## que significa 38 filas (casos u observaciones) y 15 variables

## para listar o usar la variable (columna) sextadatos[,6]## antes de la coma no hay "nada" indicando "usa todos"

## para saber el nombre de la columna-variable sextanames(datos[6])

## para usar-extraer las columnas 6, 8-a-11 y la 14 y pasarlas## a otro data frame de datos (llamado otros.datos)otros.datos <- datos[,c(6, 8:11, 14)]

## para borrar (remove) el data frame otros.datosrm(otros.datos)

40

Page 41: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVAS¿Cómo importo mis datos al entorno de trabajo R y los uso?## para seleccionar-extraer una parte de mis casos-observaciones## usando todas las variables-columnas generando otro data frame## por ejemplo, las observaciones-filas de la 1 a la 15 y 22 a 30miseleccion.datos <- datos[c(1:15, 22:30),]

## para crear una nueva variable dentro de mis datos (data frame)## como en la nomenclatura lineana … "data frame $ variable"datos$raiz_PESO <- (datos$PESO)^0.5

## para ordenar las filas de un data frame por una de sus variables## … creando un nuevo data framenuevos_datos <- datos[order(datos$DOMINANCIA),]

## para saber cuáles son todos los objetos que tengo en mi entorno## de trabajo (Environment); panel superior derecho de Rstudiols()

## mi consola (Console) o panel inferior izquierdo de Rstudio## se ha llenado de cosas … y lo quiero limpiarEstando posicionados en él, tecleamos simultáneamente [Control]+l  (l es "ele")

41

Page 42: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVAS¿Cómo trabajamos con variables nominales discretas (factores)?## para convertir un vector numérico (mivariable) en un factorfactor.mivariable <- as.factor(mivariable)class(factor.mivariable)> class(factor.mivariable)[1] "factor"

## para definir un factor ordenado a partir de un vectorfactor.ordenado.mivariable <- as.ordered(mivariable)class(factor.ordenado.mivariable)> class(factor.ordenado.mivariable)[1] "ordered" "factor"

## para convertir una variable continua (con valores 1 2 3 y 4) a otra con valores (0 1)## a la condición "<3" se le asigna el valor 0, y a lo demás el valor 1datos$DOMINANCIA2 <- ifelse(datos$DOMINANCIA<3, 0, 1)## y ahora la convertimos en factordatos$DOMINANCIA2 <- as.factor(datos$DOMINANCIA2)

## asignar valores de un vector a códigos-niveles de un factor## considerando los puntos de corte incluidos en c(. . .)## de 0-a-1 (=<1) es "MSUB", de 1-a-2 (=<2) es "SUB", de 2-a-3 (=<3) es "DOM", etcdatos$FDOMINANCIA3 <- cut(datos$DOMINANCIA, c(0,1,2,3,4),labels=c("MSUB", "SUB", "DOM", "MDOM")) ## ¡¡ ojo que son dos líneas !!

42

Page 43: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASVolvamos a nuestro modeloQue era:

## aquí el modelo:options(contrasts=c(factor="contr.sum", ordered="contr.poly"))eqt <- as.formula(MUSCULO ~ TARSO + ZONA*SEXO*EDAD)modelo <- lm(eqt, data=datos)#### que también podría haber sido tras cargar options(……):modelo <- lm(MUSCULO ~ TARSO + ZONA*SEXO*EDAD, data=datos)#### y que también podría haber sido:modelo <- lm(MUSCULO~TARSO+ZONA*SEXO*EDAD, data=datos,

contrasts=list(ZONA=contr.sum, SEXO=contr.sum, EDAD=contr.sum))

## para ver el resultado de nuestro modelosummary(modelo)#### nuestro modelo es un objeto de R con muchas cosas dentro; ¿qué tiene?names(modelo)

43

Page 44: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASVolvamos a nuestro modelo> names(modelo)[1] "coefficients" "residuals" "effects" "rank" [5] "fitted.values" "assign" "qr" "df.residual" [9] "contrasts" "xlevels" "call" "terms"

[13] "model"

model contiene todos los datos de las variables respuesta y predictoras usadas, y es de gran utilidad por si queremos trabajar a posteriori con los datos ya seleccionados para su uso.La primera columna es siempre la variable respuesta.## para ver sus datosmodelo$model## para ver la variable respuesta usadamodelo$model[,1]## y su nombrenames(modelo$model[1])

Los residuos y las predicciones del modelo los podemos sacar, como una variable, de este modo:## para ver los residuos del modelo podemos hacer estas dos cosasmodelo$residualsresiduals(modelo)## para ver las prediccionesmodelo$fitted.values

44

Page 45: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASVolvamos a nuestro modelosummary(mmodelo)> summary(modelo)Call:lm(formula = MUSCULO ~ TARSO + ZONA * SEXO * EDAD, data = datos,

contrasts = list(ZONA = contr.sum, SEXO = contr.sum, EDAD = contr.sum))

Residuals:Min 1Q Median 3Q Max

-0.58050 -0.22168 -0.06063 0.17683 0.82380

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

(Intercept) -2.35435 2.20612 -1.067 0.294689 TARSO 0.26179 0.11316 2.314 0.027983 * ZONA1 -0.24552 0.06461 -3.800 0.000687 ***SEXO1 -0.24987 0.07810 -3.199 0.003323 ** EDAD1 0.10629 0.07120 1.493 0.146297 ZONA1:SEXO1 0.07874 0.06419 1.227 0.229786 ZONA1:EDAD1 -0.04819 0.06632 -0.727 0.473217 SEXO1:EDAD1 -0.08726 0.06511 -1.340 0.190551 ZONA1:SEXO1:EDAD1 0.12454 0.06482 1.921 0.064565 . ---Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.3718 on 29 degrees of freedomMultiple R-squared: 0.7299, Adjusted R-squared: 0.6554 F-statistic: 9.797 on 8 and 29 DF, p-value: 1.781e-06) 45

Page 46: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVAS

Exploración de los supuestos canónicos del "buen" modelo

Realmente esto es lo primero que tendríamos que hacer antes de considerar los resultados de nuestro análisis.

Nos permite conocer cómo nuestro modelo se ajusta a los supuestos canónicos del modelo utilizado (General Lineal)

Este examen de los supuestos canónicos lo efectuamos teniendo en cuenta los residuos del modelo.

NormalidadHeterocedasticidadPuntos influyentes y perdidosHomogeneidad de varianzas a través de los niveles de los factoresIndependencia entre las variables‐factores predictores

46

Page 47: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASExploración de los residuos del modeloNORMALIDAD: los residuos del modelo se deben ajustar a una distribución normal

Exploraciones visuales: histogramapar(mfcol=c(1,2))hist(residuals(modelo), main="residuos del modelo")hist(residuals(modelo), density=5, freq=FALSE, main="residuos del modelo")curve(dnorm(x, mean=mean(residuals(modelo)), sd=sd(residuals(modelo))), col="red",

lwd=2, add=TRUE, yaxt="n")

47

Page 48: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASExploración de los residuos del modeloNORMALIDAD: los residuos del modelo se deben ajustar a una distribución normal

Exploraciones visuales: Q‐Q plots (normal probability plot)par(mfcol=c(1,2))qqnorm(residuals(modelo), main="residuos del modelo") ## el típico de Rqqline(residuals(modelo))## el de otros programas; datax=TRUE para cambiar el orden de los ejesqqnorm(residuals(modelo), main="residuos del modelo", datax=TRUE,

xlab="Expected Normal Value", ylab="Residuals")qqline(residuals(modelo), datax=TRUE, col="red")

48

Page 49: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASExploración de los residuos del modeloNORMALIDAD: los residuos del modelo se deben ajustar a una distribución normal

Globalmente, los tests de la F en modelos Generales y Generalizados son bastante robustos ante las desviaciones de la normalidad.

Exploraciones analíticas: test de Shapiro‐Wilkhttps://en.wikipedia.org/wiki/Shapiro%E2%80%93Wilk_testEn vez del test de Kolmogorov‐Smirnov (que asume que muestra y población son coincidentes)(en la mayoría de los casos tenemos una muestra que no coincide con la población)https://en.wikipedia.org/wiki/Kolmogorov%E2%80%93Smirnov_test

shapiro.test(residuals(modelo))> shapiro.test(residuals(modelo))

Shapiro-Wilk normality test

data: residuals(modelo)W = 0.9618, p-value = 0.2168

49

Page 50: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASExploración de los residuos del modeloNORMALIDAD: los residuos del modelo se deben ajustar a una distribución normal

Exploraciones analíticas: sesgo y kurtosis

KURTOSIS       SESGOpuntiagudez de la distribución (Ho= 3 ó 0)                            simetría de la distribución (Ho= 0)mayor efecto                                                                               poco efecto si K>0 (leptokurtosis) mayor error tipo II                          leve aumento del error de tipo Iaceptar la Ho [nula] cuando de hecho es falsa  rechazar la Ho [nula] cuando es ciertasi K<0 (platikurtosis) mayor error tipo I

library(moments)

50

## kurtosis de Pearson, Ho = 3kurtosis(residuals(modelo))anscombe.test(residuals(modelo))

> kurtosis(residuals(modelo))[1] 2.779232> anscombe.test(residuals(modelo))

Anscombe-Glynn kurtosis testdata: residuals(modelo)kurt = 2.7792, z = 0.1138, p-value = 0.9094alternative hypothesis: kurtosis is not equal to 3

## sesgo Ho = 0skewness(residuals(modelo))agostino.test(residuals(modelo))

> skewness(residuals(modelo))[1] 0.5957432> agostino.test(residuals(modelo))

D'Agostino skewness testdata: residuals(modelo)skew = 0.5957, z = 1.6331, p-value = 0.1024alternative hypothesis: data have a skewness

Page 51: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASExploración de los residuos del modeloHOMOCEDASTICIDAD DE LOS RESIDUOS. * La varianza de los residuos debe ser similar a lo largo de las predicciones del modelo.* Debería aparecer un patrón de dispersión aleatoria de puntos, sin dibujar ningún esquemageométrico (e.g., como muchas bolas repartidas al azar en una mesa de billar).

Situación que no deberíamos tener: violación del supuesto de la homocedasticidad al haber unpatrón triangular indicativo de que hay heterogeneidad en la varianza de los residuos a lo largo delas predicciones del modelo. Hay mayor varianza de los residuos a mayores valores predichos.

51

¡No podemos asumir las estimas de unoserrores estándar (se) generalizables!

Tenemos que re‐estimar los se utilizandoprocedimientos robustos.

Esto modificará la significación de losefectos de las predictoras (las p).

Page 52: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASExploración de los residuos del modeloHOMOCEDASTICIDAD DE LOS RESIDUOS. 

Consecuencias de la violación del supuesto de homocedasticidad.Globalmente, los tests de la F en modelos Generales y Generalizados son bastante robustos antelas desviaciones de la homocedasticidad.

Incluso bajo severas violaciones de este supuesto la alpha se modifica poco, tendiendo aincrementarse la probabilidad de cometer el error de tipo I.

Si no se cumple el requisito de homocedasticidad podemos transformar la respuesta.

El caso más problemático es aquel en el que la varianza de los residuos (diferencia entre valoresobservados y predichos) se asocia con lamedia de las predicciones.* si la relación es positiva, aumenta el error de tipo I* si la relación es negativa, aumenta el error de tipo II

Si hay heterocedasticidad en los residuos del modelo, lo volvemos a rehacer utilizando opcionesrobustas (also called the Huber/White/sandwich estimator … a "corrected" model‐based estimator thatprovides a consistent estimate of the covariance), que utilizan distintas opciones de matrices devarianzas covarianzas (HC0, HC1, HC2, HC3, HC4, HC4m).

52

Page 53: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASExploración de los residuos del modeloHOMOCEDASTICIDAD DE LOS RESIDUOS. 

plot(modelo$fitted.values, residuals(modelo), main="¿HAY HETEROCEDASTICIDAD?")abline(h=0, col="red") ## traza una línea horizontal (h) por el Y=0

53

Page 54: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASExploración de los residuos del modelo… y finalmente exploración gráfica de una sola vez

## lo mismo de antes pero de una sola vez y ... máspar(mfcol=c(1,1)) ## fija un sólo panel gráficopar(mfcol=c(2,2)) ## fija cuatro paneles según 2 columnas y 2 filasplot(modelo)par(mfcol=c(1,1)) ## volvemos al modo gráfico de un solo panel

54

Page 55: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASExploración de los residuos del modeloPUNTOS INFLUYENTES Y PUNTOS PERDIDOSExploración de datos residuales de manera individualizada por cada unidad muestralPara detectar puntos influyentes y perdidos representaremos:el Leverage (e.g., eje X)  frente a la distancia de Cook (CooksDistance; e.g., eje Y). 

Leverage: https://en.wikipedia.org/wiki/Leverage_(statistics)CooksDistance : https://en.wikipedia.org/wiki/Cook%27s_distance

55

Valores críticos "aproximados":

Distancia de Cook:posible problema si > 4/nproblema enorme si >1

Leverage:posible problema si > 2*g.l./n

siendo: g.l. los grados de libertad

del modelon el número de casos.

lo peor sonlos datos que seencuentren aquí

Page 56: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASExploración de los residuos del modeloPUNTOS INFLUYENTES Y PUNTOS PERDIDOSDeleted Residual (qué residuo tendría un dato si no se incluye en el modelo y se predice su valor,

restándole su valor realmente observado) DFFITS (https://en.wikipedia.org/wiki/DFFITS)Es de gran utilidad representar los Residuos frente a los Deleted Residual

56

peor cuanto mayordispersión de puntosexista respecto auna línea

Page 57: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASExploración de los residuos del modeloPUNTOS INFLUYENTES Y PUNTOS PERDIDOS

leverage## niveles críticos 2*(g.l. del modelo)/(Número de datos)library(fit.models)plot(leverage(modelo))abline(h=2*(length(modelo$residuals)-modelo$df.residual-1)/length(modelo$residuals), col="red")

distancia de cook## menor que 4/(número de datos)plot(cooks.distance(modelo))abline(h=4/length(modelo$residuals), col="red")

dffits## niveles críticos 2*raiz((g.l. del modelo)/(Número de datos))plot(dffits(modelo))abline(h=2*((length(modelo$residuals)-modelo$df.residual-1)/length(modelo$residuals))^0.5, col="red")abline(h=-2*((length(modelo$residuals)-modelo$df.residual-1)/length(modelo$residuals))^0.5, col="red")

57

Page 58: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

58

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASExploración de los residuos del modeloPUNTOS INFLUYENTES Y PUNTOS PERDIDOS

indica el orden del caso‐observación en la matriz de datos

Page 59: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

59

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASExploración de los residuos del modeloPUNTOS INFLUYENTES Y PUNTOS PERDIDOS

Page 60: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

60

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASExploración de los residuos del modeloPUNTOS INFLUYENTES Y PUNTOS PERDIDOS

Page 61: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

61

lo "peor"está aquí

datos potencialmenteproblemáticos

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASExploración de los residuos del modeloPUNTOS INFLUYENTES Y PUNTOS PERDIDOS

plot(cooks.distance(modelo) ~ leverage(modelo), col="darkgreen")abline(h=4/length(modelo$residuals), col="red")abline(v=2*(length(modelo$residuals)-modelo$df.residual-1)/length(modelo$residuals), col="red")

identify(cooks.distance(modelo) ~ leverage(modelo)) ## terminar dando clik en Finish (boton sup-decho panel de plots)

Page 62: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

62

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASExploración de los residuos del modeloPUNTOS INFLUYENTES Y PUNTOS PERDIDOSLos residuos studentizados nos pueden dar una indicación de qué datos es probable que no pertenezcan a la población.  El valor crítico lo define la t de Student teniendo en cuenta los g.l. (error) del modelo. Valores mayores o menores de ca. 2.0 (alfa=0.05) o 2.7 (alfa=0.01) son peligrosos

## studres es del paquete MASSlibrary(MASS)plot(studres(modelo) ~ modelo$fitted.values)identify(studres(modelo) ~ modelo$fitted.values) ## terminar dando clik en Finish (boton sup-decho panel de plots)

Page 63: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

63

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASHOMOGENEIDAD DE VARIANZAS A TRAVÉS DE LOS NIVELES DE LOS FACTORES• El test de Levene funciona bien en los modelos AN(c)OVA, asumiendo que haya habido de 

pequeñas a moderadas desviaciones de la normalidad en los residuos. En esta situación, su resultado (capacidad para identificar desvíos de la homogeneidad de varianzas) supera al test de Bartlett. El test de Levene no admite las covariantes del modelo

• El test de Bartlett es muy adecuado en el caso de que los residuos del modelo se ajusten muy bien a la normalidad. Sólo es posible con un único factor.

• El test de Figner‐Killeen es el que debiéramos elegir en el caso de que haya habido importantes desvíos de la normalidad. Sólo es posible con un único factor.

Los AN(c)OVA son bastante robustos a las violaciones del supuesto de homogeneidad de varianzas.Incluso bajo severas violaciones de este supuesto, alfa se modifica poco, tendiendo a incrementarse la probabilidad de cometer el error de tipo I (rechazar la Ho [nula] cuando es cierta).

El caso más problemático aparece cuando la media y la varianza de los distintos niveles de el/los factor(es) están correlacionados.• si la relación es positiva se incrementa el error de tipo I• si la relación es negativa se incrementa el error de tipo II (aceptar la Ho [nula] cuando es falsa)

Page 64: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

64

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASHOMOGENEIDAD DE VARIANZAS A TRAVÉS DE LOS NIVELES DE LOS FACTORES

bartlett.test(MUSCULO~ZONA, data=datos) ## para un solo factor cada vez> bartlett.test(MUSCULO~ZONA, data=datos)

Bartlett test of homogeneity of variancesdata: MUSCULO by ZONABartlett's K-squared = 3.535, df = 1, p-value = 0.06009

fligner.test(MUSCULO~ZONA, data=datos) ## para un solo factor cada vez> fligner.test(MUSCULO~ZONA, data=datos)

Fligner-Killeen test of homogeneity of variancesdata: MUSCULO by ZONAFligner-Killeen:med chi-squared = 3.0102, df = 1, p-value = 0.08274

## para los efectos del modelo pero … sin covariantes## otros programas usan la opción center=mean (e.g., STATISTICA)library(car)leveneTest(MUSCULO~ZONA:SEXO:EDAD, data=datos, center=median)> leveneTest(MUSCULO~ZONA:SEXO:EDAD, data=datos, center=median)Levene's Test for Homogeneity of Variance (center = median)

Df F value Pr(>F)group 7 0.4655 0.8516

30

Page 65: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

65

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASExploración de la colinealidad entre las variables predictoras

Las variables predictoras durante mucho tiempo fueron llamadas "independientes".Era el reconocimiento explícito de que debían no estar correlacionadas entre si.

Si hay dependencia entre las variables predictoras, se dice que entre ellas existe colinealidad.

La colinealidad puede surgir porque:• por definición las predictoras están correlacionadas (e.g., temperatura y altitud)• porque no hay homogeneidad de tamaños muestrales en los diferentes niveles de los factores

El hecho de que las variables predictoras no sean indenpendientes (i.e., ortogonales) conlleva algunos problemas:• las variables se anulan entre si• las estimas de significación se alteran• las magnitudes de efecto se ven modificadas• no hay convergencia entre los resultados de SS (suma de cuadrados) de tipo I y tipo III

Este asunto lo vamos a abordar mediante exploraciones visuales y cuantitativas de la intensidad de relación entre las variables predictoras

Page 66: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

66

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASExploración de la colinealidad entre las variables predictoras

Esta larga secuencia de  líneas de código vale para cualquier situación de análisis.Sólo tendremos que alterar:eqt: la cadena de texto que contiene nuestra ecuación usada en el modelo lm(eqt, data=datos)datos: el origen de los datos de análisis

## comprobad que no haya "missing cells" en los factorespanel.cor <- function(x, y, digits=2, prefix="", cex.cor, ...) {

usr <- par("usr")on.exit(par(usr))par(usr = c(0, 1, 0, 1))r <- abs(cor(x, y, use="complete.obs"))txt <- format(c(r, 0.123456789), digits=digits)[1]txt <- paste(prefix, txt, sep="")if(missing(cex.cor)) cex.cor <- 0.8/strwidth(txt)text(0.5, 0.5, txt, col="blue", cex = cex.cor * (1 + r) / 1)

}pairs(eqt, data=datos, cex.labels=2, pch="o", lower.panel = panel.cor)

Page 67: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

67

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASExploración de la colinealidad entre las variables predictorasel número azul es el valor absoluto de la correlación entre pares de predictores

Page 68: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

68

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASExploración de la colinealidad entre las variables predictoras

Si las variables predictoras no son independientes, existe multicolinealidad.Este aspecto se puede valorar con el índice VIF (variance inflation factor)https://en.wikipedia.org/wiki/Variance_inflation_factor

VIF = 1 / (1 – R2)donde R2 se obtiene regresionando cada variable predictora en función de todas las restantes.

Y = β0 + β1X1 + β2X 2 +  β3X3 +... + βkXk este es nuestro modelo de interésX1 = α2X2+ α3X3+ α4X4+…+ αkXk este es el modelo para calcular VIF

VIF = 1 / (1 – R2) Tolerancia = 1 – R2

siendo R2 el coeficiente de determinación de X1 explicada por las restantes.

Si VIF = 1 entonces cada variable predictora es independiente de las restantes.

La raíz cuadrada del valor VIF es una aproximación a cuántas veces es más grande el error estándarde un coeficiente de regresión respecto a lo que debería ser si no existiese multicolinealidad.

Page 69: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

69

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASExploración de la colinealidad entre las variables predictoras

library(car)vif(modelo)sqrt(vif(modelo))

> vif(modelo)TARSO ZONA1 SEXO1 EDAD1

1.9781 1.1445 1.6766 1.2973 ZONA1:SEXO1 ZONA1:EDAD1 SEXO1:EDAD1 ZONA1:SEXO1:EDAD1

1.1327 1.1788 1.1524 1.1421

> sqrt(vif(modelo))TARSO ZONA1 SEXO1 EDAD1

1.406449 1.069813 1.294836 1.138991 ZONA1:SEXO1 ZONA1:EDAD1 SEXO1:EDAD1 ZONA1:SEXO1:EDAD1

1.064284 1.085726 1.073499 1.068691

… si VIF vale más que cuatro … malo podremos reducir el modeloo utilizar otros tipos de análisis (e.g., PLS; consultad https://goo.gl/CztkHe)

Page 70: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

70

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVAS

después de todas estas exploraciones de los supuestos canónicos de los modelos

ahora ya sí podemos proceder a valorar sus resultados

Aspectos a considerar:Valores medios (ajustados) de las celdas definidas por los factoresTest “post hoc” o a pasteriori.Resumen del modeloSignificación de efectos¿Qué proporción de la variabilidad en la respuesta explica el modelo?

Page 71: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASValores medios (ajustados) de las celdas definidas por los factoresSi queremos conocer los valores medios ajustados y los errores estándar de las diferentes celdas definidas por todos los factores considerados en el modelo, podremos usar un paquete de R y un comando incluido en él.

## primero cargamos (para usarlo) un paquete llamado phia## para tests a posteriori y análisis de interaccioneslibrary(phia)#### corremos esta línea de código## que proporciona los valores controlando por la(s) covariante(s)interactionMeans(modelo)> interactionMeans(modelo)

ZONA SEXO EDAD adjusted mean std. error1 SARRIA h a 2.414856 0.21752922 VENTOR h a 2.595712 0.21471583 SARRIA m a 2.682552 0.23246574 VENTOR m a 3.676535 0.19125835 SARRIA h j 2.224111 0.14211976 VENTOR h j 2.710342 0.18038837 SARRIA m j 2.640899 0.14182918 VENTOR m j 2.943962 0.1859666

71

Page 72: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASValores medios (ajustados) de las celdas definidas por los factores 

## otras opciones, con iguales resultados, son:interactionMeans(modelo, pairwise=c("ZONA", "SEXO", "EDAD"))interactionMeans(modelo, factors=c("ZONA", "SEXO", "EDAD"))

Estos valores medios ajustados por la(s) covariante(s) incluida(s) en el modelo son muy interesantes, ya que suponen una especie de experimento de lo que saldría en nuestro diseño factorial "como si todas las unidades muestrales hubiesen tenido el mismo valor de la(s) covariante(s)"

Esto tiene una enorme utilidad en los diseños factoriales con covariantes, denominados… ANCOVA

Reduzcamos el modelo## veamos el efectos sobre los valores ajustados quitando la covariante## recalculemos el modelo sin la covariantemodelo.sin_tarso <- update(modelo, .~. -TARSO)

Lo que hemos hecho es actualizar (update) nuestro modelo  de interés (modelo), dejando sus elementos originales (.~.), y quitando un término indicado con el signo menos (-TARSO). 72

Page 73: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASValores medios (ajustados) de las celdas definidas por los factoresY aquí está la comparación, para valorar cuál es el efecto de trabajar con o sin covariante(s):

> interactionMeans(modelo)ZONA SEXO EDAD adjusted mean std. error

1 SARRIA h a 2.414856 0.21752922 VENTOR h a 2.595712 0.21471583 SARRIA m a 2.682552 0.23246574 VENTOR m a 3.676535 0.19125835 SARRIA h j 2.224111 0.14211976 VENTOR h j 2.710342 0.18038837 SARRIA m j 2.640899 0.14182918 VENTOR m j 2.943962 0.1859666

> interactionMeans(modelo.sin_tarso)ZONA SEXO EDAD adjusted mean std. error

1 SARRIA h a 2.333333 0.22969982 VENTOR h a 2.584000 0.22969983 SARRIA m a 2.889000 0.22969984 VENTOR m a 3.895200 0.17792475 SARRIA h j 2.175000 0.15037386 VENTOR h j 2.484833 0.16242237 SARRIA m j 2.685286 0.15037388 VENTOR m j 2.932250 0.1989259

73

Page 74: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASValores medios (ajustados) de las celdas definidas por los factoresVeamos algunas figuras

## resultado gráfico con una figura y múltiples paneles; media +/- std_errorplot(interactionMeans(modelo), legend.margin=0.2)

74

Page 75: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASValores medios (ajustados) de las celdas definidas por los factoresVeamos algunas figuras

## no acepta covariantesboxplot(MUSCULO ~ ZONA * SEXO * EDAD, data=datos)

75

Page 76: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASValores medios (ajustados) de las celdas definidas por los factoresVeamos algunas figuras

## en la forma de (un factor, otro factor, variable respuesta)interaction.plot(datos$ZONA,datos$EDAD,datos$MUSCULO)

76

Page 77: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASValores medios (ajustados) de las celdas definidas por los factoresVeamos algunas figurasLos efectos parciales también se pueden representar utilizando los "partial residual plots"Para ello utilizaremos el comando crPlots del paquete {car}.Este comando NO ACEPTA MODELOS CON INTERACCIONES, con lo que de existir las eliminaremos.

## en la forma de (un factor, otro factor, variable respuesta)modelo.noint <- lm(MUSCULO~TARSO+ZONA+SEXO+EDAD, data=datos, contrasts=c(factor="contr.sum"))

## la segunda línea presenta los plots de uno en unocrPlots(modelo.noint, smooth=FALSE, pch=15, lwd=2, col.lines="blue", grid=FALSE,

ylab="partial residuals", main="TITULA COMO QUIERAS")crPlots(modelo.noint, smooth=FALSE, pch=15, lwd=2, col.lines="blue", grid=FALSE,

ylab="partial residuals", main="TITULA COMO QUIERAS", layout=c(1, 1))

## en esta otra versión, más sencilla, podemos identificar posibles## desvíos de los efectos lienalescrPlots(modelo.noint)

77

Page 78: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASValores medios (ajustados) de las celdas definidas por los factoresVeamos algunas figuras> crPlots(modelo.noint, smooth=FALSE, pch=15, lwd=2, col.lines="blue", grid=FALSE, ylab="partial residuals", main="TITULA COMO QUIERAS")

78

Page 79: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASValores medios (ajustados) de las celdas definidas por los factoresVeamos algunas figuras> crPlots(modelo.noint)

79

Page 80: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASTest “post hoc” o a pasteriori.Son “excursiones de pesca” en nuestros datos para saber entre qué pares concretos de niveles de los factores existen diferencias significativas.

Al efectuar numerosos tests a posteriori, se infla la probabilidad de cometer el error de tipo I (rechazar la hipótesis nula cuando de hecho es cierta).

En un factor con seis niveles hay C(6,2) [combinaciones de seis elementos tomados de dos‐en‐dos]C(6,2) = (6*5)/(2*1) = 15 tests a posteriori

En un diseño con dos factores, uno con seis niveles y otro con tres niveles, hay 18 celdas de interacción.C(18,2= (18*17)/(2*1) = 153 tests a posteriori

por puro azar pueden surgir 153 * 0.05 = 7‐8 tests significativos a alfa=0.05

Los tests a posteriori controlan este inflado de probabilidad de cometer el error de tipo I.

No los deberíamos utilizar si el resultado del AN(c)OVA para ese factor (o interacción de factores) no ha alcanzado el nivel de significación.

Podemos contar con varios tipos de tests a posteriori.https://en.wikipedia.org/wiki/Post_hoc_analysis

80

Page 81: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASTest “post hoc” o a pasteriori.

Tukey Honest Significant Differencesel más adecuado y generalizable en su usopuede trabajar con tamaños muestrales diferentes en los diferentes niveles de los factores

En R, construimos antes un modelo [aov] que incluimos en el comando TukeyHSD.sólo es para factores; quitar las covariantes si el modelo las tieneintroducir la fórmula tras el paréntesis de aov(respuesta ~ factores)

pairwise t‐testotra versión más complicada, pero más flexible (con correcciones de significación)podemos utilizar diferentes opciones de ajuste de significación (corrección del error de tipo I)"holm", "hommel", "hochberg", "bonferroni", "none", ...  (e.g., p.adj="holm")

mirad la ayuda de "p.adjust {stats}"el comando a utilizar es:

pairwise.t.test {stats}

81

Page 82: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASTest “post hoc” o a pasteriori.Tukey Honest Significant Differences

TukeyHSD(aov(MUSCULO ~ SEXO * EDAD, data=datos))

> TukeyHSD(aov(MUSCULO ~ SEXO * EDAD, data=datos))Tukey multiple comparisons of means

95% family-wise confidence level

Fit: aov(formula = MUSCULO ~ SEXO * EDAD, data = datos)

$SEXOdiff lwr upr p adj

m-h 0.7254211 0.4218654 1.028977 2.63e-05

$EDADdiff lwr upr p adj

j-a -0.4543869 -0.7690329 -0.1397409 0.0059437

$`SEXO:EDAD`diff lwr upr p adj

m:a-h:a 1.0592083 0.38768611 1.7307306 0.0008430h:j-h:a -0.1406667 -0.75435305 0.4730197 0.9252760m:j-h:a 0.3164242 -0.31463406 0.9474825 0.5358929h:j-m:a -1.1998750 -1.75861526 -0.6411347 0.0000091m:j-m:a -0.7427841 -1.32055072 -0.1650175 0.0074261m:j-h:j 0.4570909 -0.05230399 0.9664858 0.0916545

82

Page 83: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASTest “post hoc” o a pasteriori.pairwise t‐test ‐ Holm

primero definimos la variable respuesta en x, y luego los factores en g

## para la interacción de tres factorespairwise.t.test(x=datos$MUSCULO, g=datos$ZONA:datos$EDAD:datos$SEXO, p.adj="holm")

> pairwise.t.test(x=datos$MUSCULO, g=datos$ZONA:datos$EDAD:datos$SEXO, p.adj="holm")

Pairwise comparisons using t tests with pooled SD

data: datos$MUSCULO and datos$ZONA:datos$EDAD:datos$SEXO

SARRIA:a:h SARRIA:a:m SARRIA:j:h SARRIA:j:m VENTOR:a:h VENTOR:a:m VENTOR:j:hSARRIA:a:m 1.00000 - - - - - -SARRIA:j:h 1.00000 0.28609 - - - - -SARRIA:j:m 1.00000 1.00000 0.43379 - - - -VENTOR:a:h 1.00000 1.00000 1.00000 1.00000 - - -VENTOR:a:m 0.00021 0.03583 8.8e-07 0.00034 0.00220 - -VENTOR:j:h 1.00000 1.00000 1.00000 1.00000 1.00000 5.7e-05 -VENTOR:j:m 1.00000 1.00000 0.10319 1.00000 1.00000 0.02546 1.00000

P value adjustment method: holm

83

Page 84: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASTest “post hoc” o a pasteriori.pairwise t‐test ‐ Bonferroni

primero definimos la variable respuesta en x, y luego los factores en g

## para la interacción de tres factorespairwise.t.test(x=datos$MUSCULO, g=datos$ZONA:datos$EDAD:datos$SEXO, p.adj="bonferroni")

> pairwise.t.test(x=datos$MUSCULO, g=datos$ZONA:datos$EDAD:datos$SEXO, p.adj="bonferroni")

Pairwise comparisons using t tests with pooled SD

data: datos$MUSCULO and datos$ZONA:datos$EDAD:datos$SEXO

SARRIA:a:h SARRIA:a:m SARRIA:j:h SARRIA:j:m VENTOR:a:h VENTOR:a:m VENTOR:j:hSARRIA:a:m 1.00000 - - - - - -SARRIA:j:h 1.00000 0.40052 - - - - -SARRIA:j:m 1.00000 1.00000 0.63927 - - - -VENTOR:a:h 1.00000 1.00000 1.00000 1.00000 - - -VENTOR:a:m 0.00023 0.04560 8.8e-07 0.00038 0.00257 - -VENTOR:j:h 1.00000 1.00000 1.00000 1.00000 1.00000 5.9e-05 -VENTOR:j:m 1.00000 1.00000 0.13758 1.00000 1.00000 0.03099 1.00000

P value adjustment method: bonferroni

Es mucho más “conservadora”;   infla más el error de tipo II (aceptar la nula cuando es falsa)84

Page 85: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASTest “post hoc” o a pasteriori.pairwise t‐test ‐ none

primero definimos la variable respuesta en x, y luego los factores en g

## para la interacción de tres factorespairwise.t.test(x=datos$MUSCULO, g=datos$ZONA:datos$EDAD:datos$SEXO, p.adj=“none")

> pairwise.t.test(x=datos$MUSCULO, g=datos$ZONA:datos$EDAD:datos$SEXO, p.adj=“none")

Pairwise comparisons using t tests with pooled SD

data: datos$MUSCULO and datos$ZONA:datos$EDAD:datos$SEXO

SARRIA:a:h SARRIA:a:m SARRIA:j:h SARRIA:j:m VENTOR:a:h VENTOR:a:m VENTOR:j:hSARRIA:a:m 0.0975 - - - - - -SARRIA:j:h 0.5684 0.0143 - - - - -SARRIA:j:m 0.2097 0.4639 0.0228 - - - -VENTOR:a:h 0.4464 0.3553 0.1467 0.7148 - - -VENTOR:a:m 8.1e-06 0.0016 3.2e-08 1.3e-05 9.2e-05 - -VENTOR:j:h 0.5942 0.1612 0.1718 0.3724 0.7269 2.1e-06 -VENTOR:j:m 0.0580 0.8878 0.0049 0.3299 0.2608 0.0011 0.0917

P value adjustment method: none

Muy “optimista”;   infla más el error de tipo I (rechazar la nula cuando es cierta)85

Page 86: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASVolvamos a nuestro modelosummary(modelo)> summary(modelo)Call:lm(formula = MUSCULO ~ TARSO + ZONA * SEXO * EDAD, data = datos,

contrasts = list(ZONA = contr.sum, SEXO = contr.sum, EDAD = contr.sum))

Residuals:Min 1Q Median 3Q Max

-0.58050 -0.22168 -0.06063 0.17683 0.82380

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

(Intercept) -2.35435 2.20612 -1.067 0.294689 TARSO 0.26179 0.11316 2.314 0.027983 * ZONA1 -0.24552 0.06461 -3.800 0.000687 ***SEXO1 -0.24987 0.07810 -3.199 0.003323 ** EDAD1 0.10629 0.07120 1.493 0.146297 ZONA1:SEXO1 0.07874 0.06419 1.227 0.229786 ZONA1:EDAD1 -0.04819 0.06632 -0.727 0.473217 SEXO1:EDAD1 -0.08726 0.06511 -1.340 0.190551 ZONA1:SEXO1:EDAD1 0.12454 0.06482 1.921 0.064565 .---Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.3718 on 29 degrees of freedomMultiple R-squared: 0.7299, Adjusted R-squared: 0.6554 F-statistic: 9.797 on 8 and 29 DF, p-value: 1.781e-06) 86

estos coeficientes secorresponden a los asociadosa las columnas de contraste

Page 87: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASSignificación de efectosEn  summary(modelo) lo que hemos visto son los coeficientes de regresión del modelo.Y esto es de fácil interpretación y lectura para las predictoras continuas (covariantes) pero no para los factores.

Para valorar mejor la magnitud de efectos y su significación, utilizando  diferentes tipos deSumas de Cuadrados (SS) definidas … y que queramos.

library(car) ## cargamos este paquete de enorme utilidad

TIPO III de SS (el que más vamos a utilizar y el de más fácil interpretación)Anova(modelo, type=3, test="F")

TIPO II de SSAnova(modelo, type=2, test="F")

TIPO I de SSanova(modelo)

87

Page 88: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASSignificación de efectos

> Anova(modelo, type=3, test="F")Anova Table (Type III tests)

Response: MUSCULOSum Sq Df F value Pr(>F)

(Intercept) 0.1574 1 1.1389 0.2946890 TARSO 0.7399 1 5.3523 0.0279834 * ZONA 1.9958 1 14.4380 0.0006872 ***SEXO 1.4150 1 10.2367 0.0033228 ** EDAD 0.3080 1 2.2284 0.1462973 ZONA:SEXO 0.2080 1 1.5049 0.2297859 ZONA:EDAD 0.0730 1 0.5281 0.4732175 SEXO:EDAD 0.2483 1 1.7964 0.1905510 ZONA:SEXO:EDAD 0.5103 1 3.6916 0.0645648 . Residuals 4.0087 29 ---Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

88

Page 89: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASSignificación de efectos

> Anova(modelo, type=2, test="F")Anova Table (Type II tests)

Response: MUSCULOSum Sq Df F value Pr(>F)

TARSO 0.7399 1 5.3523 0.0279834 * ZONA 2.0999 1 15.1914 0.0005279 ***SEXO 1.4960 1 10.8227 0.0026354 ** EDAD 0.3200 1 2.3151 0.1389535 ZONA:SEXO 0.0820 1 0.5929 0.4475280 ZONA:EDAD 0.0998 1 0.7220 0.4024473 SEXO:EDAD 0.2683 1 1.9406 0.1741861 ZONA:SEXO:EDAD 0.5103 1 3.6916 0.0645648 . Residuals 4.0087 29 ---Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

89

Page 90: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASSignificación de efectos

## Anova Table (Type I tests)> anova(modelo)Analysis of Variance Table

Response: MUSCULODf Sum Sq Mean Sq F value Pr(>F)

TARSO 1 5.0314 5.0314 36.3986 1.454e-06 ***ZONA 1 3.1587 3.1587 22.8505 4.671e-05 ***SEXO 1 1.2862 1.2862 9.3044 0.004849 ** EDAD 1 0.3406 0.3406 2.4638 0.127347 ZONA:SEXO 1 0.1443 0.1443 1.0440 0.315337 ZONA:EDAD 1 0.0940 0.0940 0.6798 0.416388 SEXO:EDAD 1 0.2683 0.2683 1.9406 0.174186 ZONA:SEXO:EDAD 1 0.5103 0.5103 3.6916 0.064565 . Residuals 29 4.0087 0.1382 ---Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

90

Page 91: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASSignificación de efectosEn los modelos de SS de tipo I los resultados obtenidos son dependientes del orden de entrada de las variables.

¡¡¡ cuidado!!! En caso de duda ¡¡NO USARLO JAMÁS!!

anova(lm(formula = MUSCULO ~ SEXO * EDAD * ZONA + TARSO, data = datos))> anova(lm(formula = MUSCULO ~ SEXO * EDAD * ZONA + TARSO, data = datos))

91

Analysis of Variance Table

Response: MUSCULODf Sum Sq Mean Sq F value Pr(>F)

SEXO 1 4.9992 4.9992 36.1656 1.534e-06 ***EDAD 1 1.8476 1.8476 13.3660 0.0010092 ** ZONA 1 1.8909 1.8909 13.6794 0.0009009 ***TARSO 1 1.0791 1.0791 7.8062 0.0091314 ** SEXO:EDAD 1 0.3083 0.3083 2.2304 0.1461186 SEXO:ZONA 1 0.0984 0.0984 0.7120 0.4056765 EDAD:ZONA 1 0.0998 0.0998 0.7220 0.4024473 SEXO:EDAD:ZONA 1 0.5103 0.5103 3.6916 0.0645648 . Residuals 29 4.0087 0.1382 ---Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Analysis of Variance Table

Response: MUSCULODf Sum Sq Mean Sq F value Pr(>F)

TARSO 1 5.0314 5.0314 36.3986 1.454e-06 ***ZONA 1 3.1587 3.1587 22.8505 4.671e-05 ***SEXO 1 1.2862 1.2862 9.3044 0.004849 ** EDAD 1 0.3406 0.3406 2.4638 0.127347 ZONA:SEXO 1 0.1443 0.1443 1.0440 0.315337 ZONA:EDAD 1 0.0940 0.0940 0.6798 0.416388 SEXO:EDAD 1 0.2683 0.2683 1.9406 0.174186 ZONA:SEXO:EDAD 1 0.5103 0.5103 3.6916 0.064565 . Residuals 29 4.0087 0.1382 ---Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Page 92: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

92

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVAS¿Qué proporción de la variabilidad en la respuesta explica el modelo?RELACIÓN ENTRE VALORES OBSERVADOS Y PREDICHOS

R2 <- summary(modelo)$r.squaredtitulo <- paste("R2 (%) =",round(R2*100,1))## modelo$model[,1] es la variable respuesta originalplot(fitted(modelo), modelo$model[,1] , main=titulo,

xlab="PREDICHO POR EL MODELO", ylab="VARIABLE RESPUESTA")abline(lm(modelo$model[,1]~fitted(modelo)), col="red", lwd=2)

Page 93: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

93

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVAS¿Qué proporción de la variabilidad en la respuesta explica el modelo?RELACIÓN ENTRE VALORES OBSERVADOS Y PREDICHOS> summary(modelo)Call:lm(formula = MUSCULO ~ TARSO + ZONA * SEXO * EDAD, data = datos,

contrasts = list(ZONA = contr.sum, SEXO = contr.sum, EDAD = contr.sum))

Residuals:Min 1Q Median 3Q Max

-0.58050 -0.22168 -0.06063 0.17683 0.82380

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

(Intercept) -2.35435 2.20612 -1.067 0.294689 TARSO 0.26179 0.11316 2.314 0.027983 * ZONA1 -0.24552 0.06461 -3.800 0.000687 ***SEXO1 -0.24987 0.07810 -3.199 0.003323 ** EDAD1 0.10629 0.07120 1.493 0.146297 ZONA1:SEXO1 0.07874 0.06419 1.227 0.229786 ZONA1:EDAD1 -0.04819 0.06632 -0.727 0.473217 SEXO1:EDAD1 -0.08726 0.06511 -1.340 0.190551 ZONA1:SEXO1:EDAD1 0.12454 0.06482 1.921 0.064565 . ---Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.3718 on 29 degrees of freedomMultiple R-squared: 0.7299, Adjusted R-squared: 0.6554F-statistic: 9.797 on 8 and 29 DF, p-value: 1.781e-06)

Page 94: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

Sum Sq(Intercept) 0.1574 TARSO 0.7399ZONA 1.9958 SEXO 1.4150EDAD 0.3080ZONA:SEXO 0.2080ZONA:EDAD 0.0730SEXO:EDAD 0.2483ZONA:SEXO:EDAD 0.5103

Residuals 4.0087SSerror

SStotal 14.8424

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASPARTICIÓN DE LA VARIANZA

94

Sumas de cuadrados (SS) respecto a "cero"

Sumas de cuadrados (SS) TOTAL respecto ala media de la variable respuesta

Sumas de cuadrados (SS) de losefectos incluidos en el modelo

(no consideramos el intercepto)

Sumas de cuadrados (SS) ERROR

R2 del modelo:SSTOTAL – SSERROR

SSTOTAL

Sumas de cuadrados (SS) del Modelo:SSMODELO = SSTOTAL – SSERROR

Page 95: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

Sum Sq(Intercept) 0.1574 TARSO 0.7399ZONA 1.9958 SEXO 1.4150EDAD 0.3080ZONA:SEXO 0.2080ZONA:EDAD 0.0730SEXO:EDAD 0.2483ZONA:SEXO:EDAD 0.5103

Residuals 4.0087SSerror

SStotal 14.8424

SourceType III Sum of 

Squares % varianzaTARSO 0.740 5.0ZONA 1.996 13.4SEXO 1.415 9.5EDAD 0.308 2.1ZONA : SEXO 0.208 1.4ZONA : EDAD 0.073 0.5SEXO : EDAD 0.248 1.7ZONA : SEXO : EDAD 0.510 3.4Error 4.009 27.0MODELO 14.842  ‐ 4.009 73.0Total 14.842 100.0

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASPARTICIÓN DE LA VARIANZA

95

Utilizamos como denominador lasuma de cuadrados total (SS Total)

Si los efectos no son independientes, su suma(%varianza) no será igual a la R2 del modelo.

Page 96: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

96

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVAS¿Qué proporción de la variabilidad en la respuesta explica el modelo?PARTICIÓN DE LA VARIANZA

## algunos parámetros globales del modelo relacionados con## la varianza (sumas de cuadrados, SS)## suma de cuadrados (SStotal) de la variable respuesta (varianza original)SStotal <- sum((modelo$model[,1]-mean(modelo$model[,1]))^2)#### suma de cuadrados error (SSerror) o residual del modeloSSerror <- sum(residuals(modelo)^2)#### suma de cuadrados del modelo (SSmodelo)SSmodelo <- SStotal-Sserror#### R2 del modeloR2 <- summary(modelo)$r.squared## que es lo mismo que calcular SSmodelo/SStotalprint(c(SStotal, SSmodelo, SSerror, R2), digits=4)print(c("R2 % =",round(R2*100, 2)), quote=FALSE)

> print(c(SStotal, SSmodelo, SSerror, R2), digits=4)[1] 14.8424 10.8337 4.0087 0.7299> print(c("R2 % =",round(R2*100, 2)), quote=FALSE)[1] R2 % = 72.99

Page 97: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

97

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVAS¿Qué proporción de la variabilidad en la respuesta explica el modelo?PARTICIÓN DE LA VARIANZAIMPORTANCIA DE LOS EFECTOS EN EL MODELO (EFFECT SIZES)

Partial eta squared: magnitud relativa del efecto:  SSefecto / (SSefecto+ SSerror)

## con SS de tipo III; no considerar la última fila de "Residuals"SSerror <- sum(residuals(modelo)^2)SStotal <- sum((modelo$model[,1]-mean(modelo$model[,1]))^2)tabla.ss <- as.data.frame(Anova(modelo, type=3, test="F"))tabla.ss <- tabla.ss[-1,]## proporción de la varianza explicada por los efectoseta2 <- tabla.ss[,1]/SStotalpartialeta2 <- tabla.ss[,1]/(tabla.ss[,1]+SSerror)tabla.ss <- data.frame(eta2, partialeta2, tabla.ss)round(tabla.ss, 4)###### … y un gráfico para ver cómo se asocian eta2 y partial eta2plot(tabla.ss$eta2, tabla.ss$partialeta2,

xlab="eta2 (% de SS)", ylab="eta2 parcial")abline(a=0, b=1, col="red")

Page 98: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

98

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVAS¿Qué proporción de la variabilidad en la respuesta explica el modelo?PARTICIÓN DE LA VARIANZAIMPORTANCIA DE LOS EFECTOS EN EL MODELO (EFFECT SIZES)

> round(tabla.ss, 4)eta2 partialeta2 Sum.Sq Df F.value Pr..F.

TARSO 0.0498 0.1558 0.7399 1 5.3523 0.0280ZONA 0.1345 0.3324 1.9958 1 14.4380 0.0007SEXO 0.0953 0.2609 1.4150 1 10.2367 0.0033EDAD 0.0208 0.0714 0.3080 1 2.2284 0.1463ZONA:SEXO 0.0140 0.0493 0.2080 1 1.5049 0.2298ZONA:EDAD 0.0049 0.0179 0.0730 1 0.5281 0.4732SEXO:EDAD 0.0167 0.0583 0.2483 1 1.7964 0.1906ZONA:SEXO:EDAD 0.0344 0.1129 0.5103 1 3.6916 0.0646Residuals 0.2701 0.5000 4.0087 29 NA NA

Page 99: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

99

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVAS¿Qué proporción de la variabilidad en la respuesta explica el modelo?PARTICIÓN DE LA VARIANZAIMPORTANCIA DE LOS EFECTOS EN EL MODELO (EFFECT SIZES)

Page 100: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

100

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVAS¿Cuál es el poder predictivo del modelo?

Bueno … es un asunto engorroso. ¡Reconozcámoslo! Una cosa es cómo explico mis datos con un modeloY otra es cómo un modelo explica los datos … que no sólo son los míos(esto es “tabú”, por incómodo, en algunas disciplinas de investigación)

Asumir este reto, implica dar el salto de (auto)explicar a predecir.

Podríamos repetir de nuevo nuestro experimento, toma de datos, etc.Esto es muy costoso (en tiempo, dinero, personal) y no es manejable en la práctica de investigación.

Un “atajo” es cros‐validar nuestros datos (cross‐validation).Este procedimiento consiste en dividir nuestros datos, al azar, en grupos de datos (v‐fold)Hacemos v número de modelos, cada uno con v‐1 gruposY con ese modelo predecimos el grupo de datos no considerado en la construcción del modelo

estimamos las predicciones de ese modelo para el conjunto de datos no utilizado enfunción de los valores que toman sus unidades muestrales en los factores y covariantes

Juntamos todas las predicciones de los v grupos … cuando no se han considerado sus datosY ahora … el drama: correlacionamos los valores observados con los predichos

cuando los datos no han sido utilizados en los vmodelos.

Page 101: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

101

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVAS¿Cuál es el poder predictivo del modelo?

Veámoslo gráficamente:hacemos los modelos con los grupos de datos verdesy predecimos los datos amarillos que no hemos utilizadohay tantos modelos como grupos de datos v hemos creadocada modelo se realiza con los datos contenidos en los v‐1 grupos

Page 102: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

102

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVAS¿Cuál es el poder predictivo del modelo?

Para realizar estos cálculos intesivos contamos con un conjunto de comandos complejo que se combinan en una función y un bucle. Utilizaremos el comando cv.lm del paquete DAAG.Estas líneas de código funcionan con modelos lm, una vez que hemos establecido:el parámetro m: se refiere al número de grupos de datos (v‐fold); ahora está puesto en 5.nuestro modelo de interés que llamo modeloy los datos de análisis contenidos en un data frame denominado datos

salida.cv <- function(x){cv.linmod <- cv.lm(datos, modelo, m=5, seed=x, plotit=FALSE) R2cvmod <- cor(cv.linmod$cvpred, cv.linmod$Predicted)^2R2obscv <- cor(cv.linmod$cvpred, modelo$model[,1])^2encabezado <- paste("R2 model-crossval =", round(R2cvmod*100, 2)," %")Pobscv <- round(cor.test(cv.linmod$cvpred, modelo$model[,1], alternative="greater")$p.value, 5)encabezados <- paste("R2 observed-crossval =", round(R2obscv*100, 2)," % ; P = ", Pobscv)plot(cv.linmod$cvpred, modelo$model[,1], main=encabezados, xlab="PREDICHOS POR CROSSVALIDATION",

ylab="VALORES OBSERVADOS", col="blue")abline(a=0, b=1, col="red", lwd=2)

}#### correr este bucle con valores de seed de 1 a 10; otros podrían ser "(i in 23:32)"for (i in 1:10) {

salida.cv(i) ## o correr sólo esta línea modificando cada vez el número en (i)}

Page 103: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

103

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVAS¿Cuál es el poder predictivo del modelo?Vamos a descartar las salidas numéricas que aparecen en la consola.

realmente hacen referencia a modelos de suma de cuadrados (SS) de tipo I que no nos interesan.Sólo nos fijaremos en las salidas gráficas que contienen las R2 (en %) de la asociación entre

los valores predichos y valores observados  poder predictivo de nuestro modelo

Page 104: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

104

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASEXAMEN DEL EFECTO DE LA VIOLACIÓN DEL SUPUESTO DE HOMOCEDASTICIDADHasta ahora hemos efectuado el examen de la significación de los efectos asumendo que ha existido homocedasticidad de los residuos. Si hubiésemos violado este supuesto, deberíamos efectuar nuevas estimas de significación teniendo en cuenta esos desvíos de la homocedasticidad.

Al recalcular las significaciones de los efectos del modelo teniendo en cuenta distintas estructuras de matrices de varianza‐covarianza (vcov), sólo van a cambiar los errores estándar de los parámetros (coeficientes) del modelo y sus significaciones.

Para ello podemos usar el comando coeftest, definiendo diferentes tipos de estructuras vcov.const:  constante u homogénea; no se ha violado el supuesto de homocedasticidadHC0:      sandwichHC3:      la mejor corrección para pequeñas muestras, dando menos peso a los datos influeyenteHC4:      mejora HC3 , especialmente en el caso de datos muy influyentes (alto leverage)HC4m:   mejora HC4, tanto con residuos del modelo normales, como "menos" normales (gausianos)

La limitación que tiene es que estima la significación de coeficientes “dummy” y no el efecto en sí.

El uso del comando es (en "modelo" incluimos el nombre de nuestro modelo lm o glm:coeftest(modelo, vcovHC(modelo, type="HC4m"))

Page 105: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

105

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASEXAMEN DEL EFECTO DE LA VIOLACIÓN DEL SUPUESTO DE HOMOCEDASTICIDAD

> coeftest(modelo, vcovHC(modelo, type="const"))

Estimate Std. Error t value Pr(>|t|) (Intercept) -2.354350 2.206116 -1.0672 0.2946890 TARSO 0.261792 0.113158 2.3135 0.0279834 * ZONA1 -0.245517 0.064614 -3.7997 0.0006872 ***SEXO1 -0.249866 0.078096 -3.1995 0.0033228 ** EDAD1 0.106293 0.071205 1.4928 0.1462973 ZONA1:SEXO1 0.078745 0.064190 1.2267 0.2297859 ZONA1:EDAD1 -0.048193 0.066315 -0.7267 0.4732175 SEXO1:EDAD1 -0.087264 0.065107 -1.3403 0.1905510 ZONA1:SEXO1:EDAD1 0.124537 0.064817 1.9214 0.0645648 . ---Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

> coeftest(modelo, vcovHC(modelo, type="HC4m"))

Estimate Std. Error t value Pr(>|t|) (Intercept) -2.354350 2.296110 -1.0254 0.313668 TARSO 0.261792 0.118933 2.2012 0.035835 * ZONA1 -0.245517 0.083580 -2.9375 0.006423 **SEXO1 -0.249866 0.098560 -2.5352 0.016891 * EDAD1 0.106293 0.080506 1.3203 0.197061 ZONA1:SEXO1 0.078745 0.083679 0.9410 0.354460 ZONA1:EDAD1 -0.048193 0.091346 -0.5276 0.601797 SEXO1:EDAD1 -0.087264 0.085574 -1.0197 0.316283 ZONA1:SEXO1:EDAD1 0.124537 0.085640 1.4542 0.156630 ---Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

los coeficientes no cambian

las significaciones sí cambian(y sus valores asociados de se y t)

Page 106: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

106

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASEXAMEN DEL EFECTO DE LA VIOLACIÓN DEL SUPUESTO DE HOMOCEDASTICIDADOtra posibilidad de corregir las estimas de significación en diseños factoriales, incidiendo en los efectos incluidos en el modelo y no en sus coefcientes o errores estándar, es mediante el argumento white.adjust dentro del comando Anova(…).

white.adjust puede tomar los valores FALSE (en cuyo caso no se efectúa ningún ajuste por heterocedastcidad), o "hc0", "hc1", "hc2", "hc3", "hc4"(consultad http://ftp.auckland.ac.nz/software/CRAN/doc/vignettes/sandwich/sandwich.pdf)

Mediante las siguientes líneas de código podemos crear una tabla ANOVA de resultados, mostrando los valores de F y P sin corregir y corregidos:

tmp1 <- Anova(modelo, type=3, test="F", white.adjust=FALSE)tmp2 <- Anova(modelo, type=3, test="F", white.adjust="hc4")tmp1[5] <- tmp2[2]; tmp1[6] <- tmp2[3]colnames(tmp1) <- c("SS", "Df", "F", "P", "F_hc4", "P_hc4")tabla.efecto.heterocedst <- tmp1round(tabla.efecto.heterocedst, 5)

Page 107: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

107

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASEXAMEN DEL EFECTO DE LA VIOLACIÓN DEL SUPUESTO DE HOMOCEDASTICIDADEn F_hc4 y P_hc4 podemos ver los resultados de F y P corregidos teniendo en cuenta el desvío de la homocedasticidad en los residuos, respecto a los valores originales F y P sin corregir.

A más diferencia entre esos valores, más efecto tiene la violación del supuesto de la homocedasticidad de los residuos, y más influencia tienen observaciones con alto leverage.

> round(tabla.efecto.heterocedst, 5)Anova Table (Type III tests)Response: MUSCULO

SS Df F P F_hc4 P_hc4(Intercept) 0.1574 1 1.1389 0.29469 1.4593 0.23680TARSO 0.7399 1 5.3523 0.02798 6.7331 0.01469ZONA 1.9958 1 14.4380 0.00069 12.1579 0.00158SEXO 1.4150 1 10.2367 0.00332 9.2332 0.00499EDAD 0.3080 1 2.2284 0.14630 2.4217 0.13052ZONA:SEXO 0.2080 1 1.5049 0.22979 1.2535 0.27207ZONA:EDAD 0.0730 1 0.5281 0.47322 0.3975 0.53334SEXO:EDAD 0.2483 1 1.7964 0.19055 1.4739 0.23453ZONA:SEXO:EDAD 0.5103 1 3.6916 0.06456 2.9913 0.09435Residuals 4.0087 29

Page 108: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASIntentando salvar el modelo General Lineal con residuos … no "buenos"Antes de pasar a utilizar otros modelos que no hacen uso de la Normal – Gausiana (e.g., usando modelos Generalizados) podemos llevar la variable respuesta a una nueva escala de medida.

Esto equivale a transformar la variable respuesta.De hecho, los fenómenos de asociación entre variables no tienen por qué ajustarse a lo lineal.

Es más, por su naturaleza, las variables respuestas no tienen porqué ajustarse ni a una Poisson ni a una binomial ni a una binomial negativa, gamma, etc.

En estos casos, ni siquiera los Modelos Generalizados con otras distribucionesque no sean la normal son adecuados.

Las transformaciones más clásicas son:logarítmica          Y' = log(Y+1)         +1 para el caso de que Y contenga "ceros"raíz cuadrada      Y' = (Y+a)^0.5       a suele ser 0.5 ó 1 (para el caso de que Y contenga "ceros")rangos                  Y es llevada a una escala ordinal Y' (1 para el valor más pequeño)

equivale a utilizar estadística no paramátrica usando la paramétrica de lmse pierde, o se puede perder, el significado "métrico" de las interacciones

por tanto, es mejor, para los modelos de efectos principales.arcoseno para proporciones p acotadas entre 0‐y‐1:    Y' = arcseno(p^0.5)

hoy ya está descartada porque podemos contar con modelos logit 108

Page 109: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASIntentando salvar el modelo General Lineal con residuos … no "buenos"Si estas transformaciones no funcionan, podemos contar con la transformación de Box‐Cox. 

http://onlinestatbook.com/2/transformations/box‐cox.html

Es una transformación potencial:Y' = (Y^λ ‐ 1)/λ (Y^λ es  "Y elevado a λ")

Cuando lambda (λ) es cero, la transformación Box‐Cox converge con la logarítmica.

En R podemos contar con procesos automatizados que buscan la λ óptima que minimiza los desvíos de los supuestos canónicos de los modelos lm.

Es una transformación muy adecuada para:• conseguir que los residuos se desvíen menos de la normal• se reduzca la heterocedasticidad de los residuos• disminuya la heterogeneidad de la varianza a través de los niveles de los factores

Pero tiene como pega la "interpretación" de los valores de la respuesta, ya que su nueva escala de medida es compleja.

109

Page 110: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASIntentando salvar el modelo General Lineal con residuos … no "buenos"TRANSFORMACIÓN BOX‐COX en Rdeberemos añadir +1 a la variable respuesta si tiene cerosla transformación es:  Y' = (Y^lambda ‐ 1)/lambda      ,ó,     

Y' = ((Y+1)^lambda ‐ 1)/lambda 

## la siguiente línea de código SÓLO TRANSFORMA la respuesta de nuestra ecuación eqt## podemos afinar y restringir aun más el rango de lambda## por ejemplo: lambda=seq(0,1, 1/1000))

print(boxCox(modelo, lambda=seq(-2,2, 1/100)))

lambda.bc <- with(boxCox(modelo, lambda=seq(-2,2, 1/1000)), x[which.max(y)])print(c("parámetro lambda de Box-Cox =",round(lambda.bc, 3)), quote=FALSE)> print(c("parámetro lambda de Box-Cox =",round(lambda.bc, 3)), quote=FALSE)[1] parámetro lambda de Box-Cox = -0.196

## transformamos la variable a continuación ... que llamamos respuesta.bc

respuesta.bc <- ((modelo$model[,1]^lambda.bc)-1)/(lambda.bc)## para explorar la relación entre la respuesta original y su transformación Box-Cox

plot(respuesta.bc, modelo$model[,1], xlab="variable respuesta transformada", ylab="variable respuesta original")

110

Page 111: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

111

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASIntentando salvar el modelo General Lineal con residuos … no "buenos"> print(boxCox(modelo, lambda=seq(-2,2, 1/100)))

Page 112: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

112

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASIntentando salvar el modelo General Lineal con residuos … no "buenos"> plot(respuesta.bc, modelo$model[,1], xlab="variable respuesta transformada", ylab="variable respuesta original")

Page 113: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASIntentando salvar el modelo General Lineal con residuos … no "buenos"Ahora rehacemos el modelo sustituyendo la variable respuesta del modelo por respuesta.bc

## capturamos en un nuevo data-frame los datos de trabajo de nuestro "modelo"

datos.bc <- modelo$model

## asignamos a la primera variable (¡la respuesta!) el valor de su transformada Box-Cox

datos.bc[,1] <- respuesta.bc

## corremos el mismo modelo pero con la respuesta transformada

modelo.bc <- lm(eqt, data=datos.bc)

## sus resultados son:

summary(modelo.bc)Anova(modelo.bc, type=3, test="F")

A este nuevo modelo le podemos aplicar todo el resto de las cosas vistas hasta este momento.

113

Page 114: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVAS¿Hay homogeneidad de pendientes en el modelo ANCOVA?En los modelos ANCOVA se asume que el efecto de la covariante es homogéneo a través de los niveles del factor o los factores que estamos considerando.

Si tenemos un solo factor con dos niveles Fa y Fb (e.g., machos vs. hembras)la pendiente de la covariante (predictora continua) en su asociación con la respuesta debe de sersimilar en los subconjuntos de datos vinculados a Fa y Fb (e.g., machos y hembras)

Si tenemos varios factores con varios niveles (un factor con 3 niveles y otro factor con 4 niveles)similar pendiente en las 3 x 4 = 12 celdas de interacción de los dos factores

Si esto no se cumple, no se "controla" correctamente el efecto de la covariante sobre la respuesta para estimar los efectos de los factores y sus interacciones.

Para ello construiremos otro modelo de control de esta prueba canónica (i.e., paralelismo).Este nuevo modelo, además de los efectos de interés, incluirá la interacción covariante x factoresEste nuevo modelo sólo lo utilizaremos para el examinar esa interacción covariante x factoresSi esa interacción es significativa el modelo original no será válido y habrá que construir otro

Este otro modelo incluirá a la covariante "anidada" o "encajada" dentro de los factoresTambién se denomina: different slopes ANCOVA (regression) model

114

Page 115: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVAS¿Hay homogeneidad de pendientes en el modelo ANCOVA?Veámoslo en R

## nuestro modelo originalmodelo <- lm(MUSCULO ~ TARSO + ZONA*SEXO*EDAD, data=datos)## el modelo para el test de paralelismomodelo.testparal <- lm(MUSCULO ~ TARSO*ZONA*SEXO*EDAD, data=datos)

## comparamos dos modelos mediante el comando anova## para examinar la interacción de los factores y la covarianteanova(modelo, modelo.testparal)

## si el anterior test no dió significativo## no deberíamos mirar los resultados de modelo.testparal## si sí da significativo, entonces hacemos lo siguienteAnova(modelo.testparal, test="F", type=3)

115

Page 116: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVAS¿Hay homogeneidad de pendientes en el modelo ANCOVA?> anova(modelo, modelo.testparal)Analysis of Variance Table

Model 1: MUSCULO ~ TARSO + ZONA * SEXO * EDAD sumaModel 2: MUSCULO ~ TARSO * ZONA * SEXO * EDAD interacciónRes.Df RSS Df Sum of Sq F Pr(>F)

1 29 4.0087 2 22 2.7940 7 1.2147 1.3663 0.2681

## para hacer un test global de las diferencias en las pendientes## usamos el paquete "phia"testInteractions(modelo.testparal, pairwise=c("ZONA", "SEXO", "EDAD"), slope="TARSO")

## examen de las interacciones concretaslibrary(phia)## cuantificación de las pendientes en todas las celdas del diseño factorial deseado:

interactionMeans(modelo.testparal, slope="TARSO")

## lo anterior es lo mismo que esta otra línea:interactionMeans(modelo.testparal, pairwise=c("ZONA", "SEXO", "EDAD"), slope="TARSO")

116

Page 117: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVAS¿Hay homogeneidad de pendientes en el modelo ANCOVA?> testInteractions(modelo.testparal, pairwise=c("ZONA", "SEXO", "EDAD"), slope="TARSO")Adjusted slope for TARSO F Test: P-value adjustment method: holm

Value Df Sum of Sq F Pr(>F)SARRIA-VENTOR : h-m : a-j -1.0881 1 0.01875 0.1476 0.7045Residuals 22 2.79405

> interactionMeans(modelo.testparal, slope="TARSO")ZONA SEXO EDAD TARSO std. error

1 SARRIA h a -0.41118421 0.50066162 VENTOR h a 0.58500000 2.51994143 SARRIA m a 1.58564516 0.78391734 VENTOR m a 1.18830247 0.44270865 SARRIA h j 0.07127427 0.32846636 VENTOR h j 0.20324108 0.23558407 SARRIA m j 0.24007334 0.14994648 VENTOR m j 0.06666667 0.6506461

117

Page 118: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVAS¿Hay homogeneidad de pendientes en el modelo ANCOVA?Si existe ausencia de paralelismo debemos utilizar un MODELO DE DIFERENTES PENDIENTES/TARSO denota que el efecto de la covariante TARSO se anida dentro de las celdas de las interacciones de todos los factores

modelo.difpend <- lm(MUSCULO~ZONA*SEXO*EDAD/TARSO, data=datos)

## miramos las últimas líneas que valoran el efecto## de las diferentes regresiones con la covariantesummary(modelo.difpend)

## para valorar el efecto global del efecto de la covarianteAnova(modelo.difpend, type=3, test="F")

118

Page 119: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASESTIMAS ROBUSTAS¿Qué hacer cuando …? nuestros datos presentan observaciones – casos con valoresperdidos (outliers) valorado con dffits, residuos studentizados, distancias de Cookinfluyentes valorado con el Leverage

Bien, esto es incómodo … ¡quitarlos! de nuestro análisisEsta opción es válida si tenemos criterios objetivos para hacerlo

(confusiones, el dato deriva de una unidad muestral que no pertenece a la población, etc)Si no tenemos estos criterios objetivos y de "honestidad profesional" esto es una ¡¡ chapuza !!

Alternativamente:Podemos dar unos pesos a esas observaciones perdidas o influyentes proporcionalmente inversosa lo "aberrantes" o sesgados que son en nuestro modelo de análisis.

Un dato con un residuo "anormalmente" positivo o negativo o con una distancia de Cook grande …se lo deja en el análisis, pero dándole menos pesoque será tanto menor cuanto mayor es su distancia de Cook

Un dato con un con un valor de influencia muy grande (gran valor de Leverage)se lo deja en el análisis, pero dándole menos pesoque será tanto menor cuanto mayor es su Leverage

Esto lo podemos abordar con el recálculo de nuestro modelo utilizando estimas robustas… frente a la influencia distorsionadora de esas observaciones muy influyentes o aberrantes  119

Page 120: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASEstimas robustasSe ajusta el modelo de interés, no por el procedimiento de OLS clásico (ordinary least squares), sino con otro denominado "iterated re‐weighted least squares" (IWLS or IRwLS).

Os recomiendo la consulta – estudio de:https://en.wikipedia.org/wiki/Iteratively_reweighted_least_squareshttp://www.ats.ucla.edu/stat/r/dae/rreg.htmhttp://www.dst.unive.it/rsr/BelVenTutorial.pdf

La matemática subyacente es compleja, pero en esencia consiste en la búsqueda iterativa de unos "pesos" que, teniendo en cuenta el leverage y la distancia de Cook de las observaciones – casos, consiga que esas observaciones tengan menos influencia distorsionadora de los resultados del modelo pero … ¡sin quitarlos!

Existen varios paquetes en R para poder abordar estimas robustas.Y cada uno de ellos llevan implícitos diferentes algoritmos de cálculo que podemos elegir.Nos vamos a centrar en dos paquetes:library(MASS) ## para rlmlibrary(robustbase) ## para lmrob

120

Page 121: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASEstimas robustasPodemos contar con varios procedimientos para encontrar esos "pesos" de cada observación.En OLS (panel superior izquierdo) todas las observaciones pesan igual: 1En los otros, procedimientos se decide pesarlos de manera diferente (e.g., M‐estimation, Huber).El eje X (denominado E en la figura) representa los residuos de las observaciones

121

Page 122: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASEstimas robustas

Con MASS : rlm podemos operar del modo siguiente.Tengamos en cuenta que:• el método MM suele ser el más equilibrado (no disminuye de 1 los pesos de las observaciones más 

"centradas" en el modelo, y no infrapesa hasta casi cero a las más influyentes o perdidas• el método de Huber puede tener dificultades con outliers severos, no pesándolos muy bajo• el método bisquare de Tukey soluciona el problema de Huber, pero a veces la solución no converge al 

proporcionar múltiples soluciones (podemos modificar el número de iteraciones en maxit)• en la mayoría de los casos, todos dan resultados similares.

modelo.rMM <- rlm(eqt, data=datos, method="MM", maxit=100)modelo.rHUBER <- rlm(eqt, data=datos, scale.est="Huber", maxit=100)modelo.rTUKEY <- rlm(eqt, data=datos, psi=psi.bisquare, maxit=100)#### y sus resultados (para uno de ellos)summary(modelo.rMM)Anova(modelo.rMM, type=3, test="F")R2.r <- cor(modelo.rMM$model[,1],modelo.rMM$fitted.values)^2print(c("R2 del modelo robusto =", round(R2.r,3)), quote="FALSE")coeftest(modelo.rMM, vcovHC(modelo.rMM, type="HC4m"))## los pesos de los casos están contenidos en: modelo.rMM$w

122

Page 123: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASEstimas robustas

Con robustbase : lmrob podemos operar del modo siguiente.• lmrob utiliza estimas de errores estándard corregidas por la heterocedasticidad• el método MM genera pesos (weights) más pequeños para más observaciones• el método SMDM principalmente penaliza a las observaciones que son más "outliers"

modelo.lmrob <- lmrob(eqt, data=datos, method="SMDM", setting = "KS2014")summary(modelo.lmrob)Anova(modelo.lmrob, type=3, test="F")R2.r <- cor(modelo.lmrob$model[,1],modelo.lmrob$fitted.values)^2print(c("R2 del modelo robusto =", round(R2.r, 3)), quote="FALSE")## los pesos de los casos están contenidos en: modelo.lmrob$weights

Si quisiéramos identificar a aquellas observaciones más problemáticas y qué pesos tienen:## relación de los pesos del modelo.r con la distancia de Cook del modelo original## el modelo original es: modelo <- lm(eqt, data=datos)

plot(cooks.distance(modelo)~modelo.lmrob$rweights)identify(cooks.distance(modelo)~modelo.lmrob$rweights)## dad clik a las bolitas de la figura que queráis## terminad cerrando la identificación de puntos en el botón [Finish]

123

Page 124: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASEstimas robustasEjemplo de los resultados que se obtienen con lmrob.> summary(modelo.lmrob)

… salen muchas cosas que no muestroRobust residual standard error: 0.3755 Multiple R-squared: 0.7132, Adjusted R-squared: 0.634 Convergence in 9 IRWLS iterations

Robustness weights: 30 weights are ~= 1. The remaining 8 ones are

1 5 10 12 22 30 33 37 0.8764 0.9909 0.9637 0.9349 0.7725 0.9784 0.9863 0.5931

> Anova(modelo.lmrob, type=3, test="F")Analysis of Deviance Table (Type III tests)Response: MUSCULO

Df F Pr(>F) (Intercept) 1 0.9991 0.325805 TARSO 1 4.8406 0.035917 * ZONA 1 11.9548 0.001704 **SEXO 1 9.5826 0.004326 **EDAD 1 2.3445 0.136559 ZONA:SEXO 1 1.6930 0.203445 ZONA:EDAD 1 0.5288 0.472953 SEXO:EDAD 1 1.1086 0.301073 ZONA:SEXO:EDAD 1 3.0172 0.092998 . Residuals 29 124

Page 125: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASEstimas robustasEjemplo de los resultados que se obtienen con lmrob.> plot(cooks.distance(modelo)~modelo.lmrob$rweights)> identify(cooks.distance(modelo)~modelo.lmrob$rweights)

125

Page 126: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASEstimas robustasY ahora veamos cómo se relacionan los residuos de las observaciones del modelo original inicialcon los pesos de los cuatro modelos que hemos definido 

## gráfico de relaciones entre weights## cambiar el tamaño de la letra modificando "1" en ## el denominador de "cex = cex.cor * (1 + r) / 1"panel.cor <- function(x, y, digits=2, prefix="", cex.cor, ...) {

usr <- par("usr")on.exit(par(usr))par(usr = c(0, 1, 0, 1))r <- abs(cor(x, y, use="complete.obs"))txt <- format(c(r, 0.123456789), digits=digits)[1]txt <- paste(prefix, txt, sep="")if(missing(cex.cor)) cex.cor <- 0.8/strwidth(txt)text(0.5, 0.5, txt, col="blue", cex = cex.cor * (1 + r) / 1)

}## ampliarla con Zoom dentro de la solapa Plotspairs(residuals(modelo)~ modelo.rMM$w + modelo.rHUBER$w +modelo.rTUKEY$w + modelo.lmrob$rweights, data=datos, cex.labels=2, pch="o", lower.panel = panel.cor)

126

Page 127: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASEstimas robustasPatrón de relación entre pesos y residuos. Las correlaciones entre ellos en números azules.

127

Page 128: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASReducción de modelosEn modelos n‐factoriales muy complejos, la consideración de numerosas interacciones hace que perdamos grados de libertad; y tanto más, cuantos más niveles tengan los factores.

En este escenario “complejo” de análisis podemos perder potencia para estimar la significación y magnitud de efectos de los efectos principales o de las interacciones más sencillas.

Por ejemplo, un modelo con cuatro factores genera:4 efectos principales6 interacciones de pares de factores12 interacciones de tríos de factores1 interacción de los cuatro factores

… en este escenario, la enorme cantidad de interacciones “consumen” muchos grados de libertady pueden reducir la posibilidad de que emerja la importancia de los efectos principales.

Dicho de otro modo, podemos inflar el error de tipo II (aceptar la Ho nula cuando de hecho es falsa).

Es conveniente, pues, reducir nuestro modelo inicial a uno más parsimonioso. Podemos contar con:las estrategias stepwise (… las vamos a dejar de lado)la reducción del modelo utilizando criterios de parsimonia usando AIC de Akaike

comparando modelos entre si. 128

Page 129: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

COMPARACIÓN DE MODELOS utilizando Akaike Information Criteria

129

En vez de obtener la diferencia entre dos modelos, se obtiene una estima de la distancia relativa esperada entre cada modelo estimado y los verdaderos mecanismos que realmente han generado los datos observados (posiblemente de una dimensionalidad muy alta).

AIC sirve para seleccionar el mejor modelo dentro de un conjunto de estos obtenidos con los mismos datos. Debemos hacer un esfuerzo por asegurarnos de que el conjunto de modelos de trabajo sea sólido y esté bien apoyado.

AIC sirve para medir la distancia de cada modelo bajo comparación respecto a la “verdad” representada por los datos. Lo único verdadero son los datos; nuestros modelos pretenden representar esa realidad.

Consultad:• https://en.wikipedia.org/wiki/Akaike_information_criterion• "PROCEDIMIENTOS DE SIMPLIFICACIÓN DE MODELOS" en:• http://www.lmcarrascal.eu/regrmult.html

Page 130: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

COMPARACIÓN DE MODELOS utilizando Akaike Information Criteria

130

En el caso de modelos GeneralizadosAIC = 2·K – 2·ln(L)

donde L es la estima de “maximum likelihood”y K el número de parámetros del modelo de regresión.

Lo importante no es el valor absoluto de AIC, sino las diferencias entre los valores AICi de i modelos (desde i=1 a i=R, siendo R modelos = comparados)

AIC se recomienda cuando n/K es mayor de 40.siendo n el número de observaciones (tamaño muestral)

Si este no es el caso, deberíamos utilizar:Akaike’s second order information criterion (AICc):

AICc = AIC + (2·K·(K+1))/(n-K-1)

En el caso de modelos GLM, AIC se calcula del siguiente modo:AIC = n·[ln(2·π)+1] + n·ln(SSerror/n) + 2·K

donde n es el tamaño muestral,SSerror/n es la varianza residual (SSerror es la suma de cuadrados error del modelo)y K es el número de parámetros del modelo de regresión (intercepto + predictores + error).

Otra expresión simplificada, a efectos comparativos, es AIC = n·ln(SSerror/n) + 2k

Page 131: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

COMPARACIÓN DE MODELOS utilizando Akaike Information Criteria

131

Trabajaremos, por tanto, con diferencias en una serie de valores AIC.

Para ello seleccionaremos el menor valor AIC dentro de nuestro subconjunto de modelos (AICmin), para a continuación calcular incrementos de AIC sobre ese valor mínimo.

Δi =AICi – AICmin

No son los valores absolutos de AICi lo importante, sino las …diferencias relativas entre los AICi (Δi) de diferentes modelos.

Escala relativa de plausibilidad de modelos:Δi Plausibilidad0 – 2 Similar4 – 7 Menor> 10 Mucho menor

Page 132: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

COMPARACIÓN DE MODELOS utilizando Akaike Information Criteria

132

La verosimilitud relativa de un modelo se calcula mediante exp(-0.5·Δi).

Pesos Akaike (wi)Se utilizan para una mejor interpretación de la plausibilidad de los modelos cuando estos se comparan.

Sean R modelos seleccionados, entonces el peso relativo del modelo i (wi) es:

wi = exp(-0.5·Δi) / Σ(exp(-0.5·Δi))

con la suma (Σ) de modelos de i=1 a i=R

wi se interpreta como el peso de la evidencia de que el modelo i sea el mejor dentro del conjunto de los modelos candidatos a representar la realidad contenida en los datos.

También puede interpretarse wi como la probabilidad de que ese modelo isea el mejor modelo dentro del conjunto de modelos que se están comparando.

Page 133: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

COMPARACIÓN DE MODELOS utilizando Akaike Information Criteria

133

Con estos pesos relativos se estiman los coeficientes de evidencia,

… para comparar la plausibilidad de modelos sometidos a comparación,

peso relativo mayor / peso relativo menor

Estos coeficientes de evidencia son invariantes respecto al número de modelosque hemos considerado en el análisis.

Δi Plausibilidad Coef. evidencia0 – 2 Similar 1 – 2,74 – 7 Menor 7,4 – 33,1> 10 Mucho menor >148

Los pesos wi también pueden ser utilizados para calcular la importancia de los parámetros individuales incluidos en los diferentes modelos.

Para ello se suman los pesos de los modelos en los que han entrado cada una de las variables que están siendo analizadas para explicar la variable respuesta.

Page 134: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

COMPARACIÓN DE MODELOS utilizando Akaike Information Criteria

134

Ambivalencia.Es la falta de habilidad para poder identificar el mejor modelo recurriendo a

criterios AIC.No es indicativo de un defecto en las estimas de AIC, sino de que los datos

son simplemente inadecuados para alcanzar una inferencia fuerte.En tales casos, varios modelos pueden ser utilizados con el objetivo de

hacer inferencias.

Usos de los pesos:Estos pesos podemos utilizarlos para estimar el valor medio ponderado de

cada variable predictora, usando los coeficientes de regresión y sus errores estándar en los modelos en que entran esas variables, y los pesos wi de esos modelos.

También los podemos utilizar para efectuar medias ponderadas de valores predichos por una serie de modelos.

Page 135: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

COMPARACIÓN DE MODELOS utilizando Akaike Information Criteria

135

Detalles importantes … aunque discutibles:

1) Los valores AIC no pueden ser comparados utilizando diferentes juegos de datos(los datos deben ser fijos)

2) Todos los modelos deben ser calculados utilizando la misma variable dependiente, o la misma transformación de ésta.

3) “Information‐Theoretic Criteria” no es un test. Establece criterios para seleccionar modelos. Es una herramienta exploratoria, no de contraste de hipótesis. 

4) No se deben utilizar los valores Δi, wi, o cocientes wi/wj para hablar de diferencias significativas entre modelos.

5) AIC y AICc son sensibles a la presencia de sobredispesión en los datos (ĉ).Dicho aspecto se puede:

• valorar con dicho parámetro de sobredispersión, o,• contemplar con la estima de los coeficientes QAIC y QAICc.

6) Podemos comparar modelos con diferentes distribuciones canónicas, funciones de vínculo, estructura de errores siempre y cuando se efectúen con la misma variable respuesta y el mismo conjunto de datos.

Page 136: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASReducción de modelosConstruimos varios modelos. Por ejemplo:

eqt0 <- as.formula(MUSCULO ~ 1)eqt <- as.formula(MUSCULO ~ TARSO+ZONA*SEXO*EDAD)eqt2 <- as.formula(MUSCULO ~ TARSO+ZONA+SEXO+EDAD+ZONA:SEXO+ZONA:EDAD+SEXO:EDAD)eqt3 <- as.formula(MUSCULO ~ TARSO+ZONA+SEXO+EDAD)

modelo0 <- lm(eqt0, data=datos)modelo <- lm(eqt, data=datos)modelo2 <- lm(eqt2, data=datos)modelo3 <- lm(eqt3, data=datos)

Cargamos el paquete MuMIn que contiene el comando AICc (AIC corregido para pequeños tamaños muestrales)library(MuMIn)

AICc(modelo0, modelo, modelo2, modelo3)> AICc(modelo0, modelo, modelo2, modelo3)

df AICcmodelo0 2 76.45843 ¿cuántas veces es mejor modelo que modelo0?modelo 10 50.52114 exp(-0.5*(50.521-76.458)) = 428 695 vecesmodelo2 9 51.35482 ¿cuántas veces es mejor modelo3 que modelo?modelo3 6 45.67314 exp(-0.5*(45.673-50.521)) = 11.29 veces136

Page 137: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASReducción de modelosOtra posibilidad es ordenar los posibles modelos atendiendo a los valores de AICc, teniendo en cuenta la combinación de diferentes términos.

Esto podemos efectuarlo con el comando dredge del paquete MuMIn.Utilizaremos la versión de los coeficientes de regresión estandarizados (betas) con beta="sd"que es la más recomendada (http://onlinelibrary.wiley.com/doi/10.1890/14‐1639.1/abstract).

options(na.action = "na.fail")dredge.modelo <- dredge(modelo, beta="sd", rank="AICc", extra=c("R^2", "adjR^2"))

El resumen del modelo lo obtendremos llamando al objeto dredge que hemos creado:dredge.modelo

Los coeficientes (y sus errores estándard) de todos los modelos posibles (ordenados por valores de AICc) los obtendremos mediante:coefTable(dredge.modelo)

137

Page 138: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASReducción de modelos

138

los modelos se ordenan demenor a mayor AICc

para las covariantesse proporciona la beta

+ denota que el efectode ese factor o interacción

entra en el modelo

R^2 es la varianza explicadapor ese modelo

modelo nulo sin ningúnefecto

Page 139: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASReducción de modelos> coefTable(dredge.modelo)$`15`

Estimate* Std. Error* df(Intercept) 0.00000 0.00000 34SEXO1 -0.34774 0.12181 34TARSO 0.43885 0.12233 34ZONA1 -0.44621 0.10373 34

$`16`Estimate* Std. Error* df

(Intercept) 0.00000 0.00000 33EDAD1 0.17052 0.11403 33SEXO1 -0.37419 0.12096 33TARSO 0.35384 0.13293 33ZONA1 -0.41292 0.10430 33

$`32`Estimate* Std. Error* df

(Intercept) 0.00000 0.00000 32EDAD1 0.17754 0.11229 32SEXO1 -0.43361 0.12590 32TARSO 0.31692 0.13325 32ZONA1 -0.39136 0.10369 32EDAD1:SEXO1 -0.15345 0.10611 32

... y hasta el final de todos los modelos139

$`15` denota el número del modelo en la tabla previa de resultados dredge.modelo

Para los factores, las variables mostradas (e.g., SEXO1, EDAD1, ZONA1) son los vectores de las tablas de contrastes.

Para la interpretación de los vectores de contrastes tenemos que saber cómo se ordenaron y contrastaron los niveles de los factores

Page 140: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASReducción de modelos –Model averagingTambién podemos obtener el promedio de los coeficientes de regresión de las covariantes y los vectores de contrastes para TODOS o un SUBCONJUNTO PREDEFINIDO de modelos.

Std. Error son los "unconditional standard errors".Adjusted SE es la versión revisada de los "inflated standard errors".'conditional average' son los promedios utilizando sólo aquellos modelos en los cuales entra el efecto'full average' asume que el efecto ha entrado en todos los modelos;

cuando no "entra" se asume un coeficiente con valor 0‐cero.esta opción reduce la influencia del efecto de escasa "significación" o importancia real.

Si lo queremos hacer para todos los modelos posibles:summary(model.avg(dredge.modelo))

Si lo queremos efectuar con un subconjunto de modelos podemos restringirlos según criterios de: ΔAICc (delta) summary(model.avg(dredge.modelo, subset=delta<4))

para los modelos cuya suma de pesos (weight) sea menor que una cierta cantidad (con máximo en 1)summary(model.avg(dredge.modelo, cumsum(weight)<=0.90))

140

Page 141: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASReducción de modelos –Model averaging

> summary(model.avg(dredge.modelo, subset=delta<4))

Call:model.avg(object = dredge.modelo, subset = delta < 4)

Component model call: lm(formula = MUSCULO ~ <8 unique rhs>, data = datos, contrasts = list(ZONA = contr.sum, SEXO = contr.sum, EDAD = contr.sum))

Component models: df logLik AICc delta weight

234 5 -16.73 45.33 0.00 0.26 234 indica que entran los efectos 2, 3 y 41234 6 -15.48 45.67 0.34 0.2212345 7 -14.28 46.29 0.96 0.162347 6 -16.13 46.98 1.65 0.1112347 7 -14.93 47.59 2.26 0.0812346 7 -15.05 47.83 2.50 0.07123456 8 -13.80 48.57 3.24 0.05123457 8 -13.88 48.72 3.39 0.05

Term codes: EDAD SEXO TARSO ZONA EDAD:SEXO EDAD:ZONA SEXO:ZONA

1 2 3 4 5 6 7

… siguen más resultados a continuación141

Page 142: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASReducción de modelos –Model averaging> summary(model.avg(dredge.modelo, subset=delta<4))… seguimos

Model-averaged coefficients: (full average)

Estimate Std. Error Adjusted SE z value Pr(>|z|) (Intercept) 0.00000 0.00000 0.00000 NA NASEXO1 -0.38410 0.12736 0.13192 2.912 0.003596 ** TARSO 0.36713 0.14062 0.14528 2.527 0.011502 * ZONA1 -0.42191 0.10641 0.11034 3.824 0.000131 ***EDAD1 0.10987 0.12345 0.12605 0.872 0.383389 EDAD1:SEXO1 -0.03895 0.08546 0.08683 0.449 0.653713 SEXO1:ZONA1 0.02438 0.06706 0.06859 0.355 0.722252 EDAD1:ZONA1 -0.01180 0.04959 0.05079 0.232 0.816311

(conditional average) Estimate Std. Error Adjusted SE z value Pr(>|z|)

(Intercept) 0.00000 0.00000 0.00000 NA NASEXO1 -0.38410 0.12736 0.13192 2.912 0.003596 ** TARSO 0.36713 0.14062 0.14528 2.527 0.011502 * ZONA1 -0.42191 0.10641 0.11034 3.824 0.000131 ***EDAD1 0.17434 0.11377 0.11820 1.475 0.140205 EDAD1:SEXO1 -0.15162 0.10652 0.11075 1.369 0.170998 SEXO1:ZONA1 0.10036 0.10432 0.10836 0.926 0.354368 EDAD1:ZONA1 -0.09484 0.10907 0.11341 0.836 0.403001 ---Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Relative variable importance: SEXO TARSO ZONA EDAD EDAD:SEXO SEXO:ZONA EDAD:ZONA

Importance: 1.00 1.00 1.00 0.63 0.26 0.24 0.12N containing models: 8 8 8 6 3 3 2 142

de interés al mostrar cuál es la suma de los pesos(relative importance)

de los diferentes efectosteniendo en cuenta los

modelos en los que entran

los valores de Z y Pr(>|z|)se calculan conAdjusted SE

Page 143: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASReducción de modelos –Model averagingDe las tablas previas conditional y full average podemos quedarnos solamente con los coeficientes (Estimate) y los errores estándard (Std. Error ó Adjusted SE), prescindiendo del valor de Z y su significación asociada (Pr(>|z|)). Algunos estadísticos recomiendan "no mezclar" valores de AICc, weights, etc con "significaciones" frecuentistas que recurren a P's.

En vez de los valores de Pr(>|z|) podríamos obtener los intervalos de confianza de los coeficientesconsiderando determinados niveles de probabilidad (asintótica; e.g. 95% ó 0.95). Para ello:

confint(model.avg(dredge.modelo, subset=delta<4), level=0.95)

> confint(model.avg(dredge.modelo, subset=delta<4), level=0.95)2.5 % 97.5 %

(Intercept) 0.00000000 0.00000000SEXO1 -0.64266164 -0.12553966TARSO 0.08238811 0.65186626ZONA1 -0.63815925 -0.20565317EDAD1 -0.05731811 0.40600618EDAD1:SEXO1 -0.36868737 0.06544943SEXO1:ZONA1 -0.11202154 0.31273192EDAD1:ZONA1 -0.31711149 0.12743373

143

Page 144: GLM factoriales en R - lmcarrascal.eulmcarrascal.eu/cursos/pres1.pdf · Tipos de distribuciones de la variable respuesta (pág ... Transformaciones para "salvar" el modelo General

DISEÑOS n‐FACTORIALES DE EFECTOS “ENTRE” SUJETOSn‐way AN(c)OVASReducción de modelos –Model averagingY para terminar, podríamos obtener una tabla combinada seleccionando 'full average' (que asumeque el efecto ha entrado en todos los modelos) con las siguientes líneas de código:

dredge.tabla <- data.frame(summary(model.avg(dredge.modelo, subset=delta<4))$coefmat.full,confint(model.avg(dredge.modelo, subset=delta<4), level=0.95))

colnames(dredge.tabla)[5] <- "signif_P"colnames(dredge.tabla)[2] <- "Uncondit.SE"colnames(dredge.tabla)[6] <- "ICinf95%"colnames(dredge.tabla)[7] <- "ICsup95%"print(dredge.tabla[c(-4,-5)], digits=3)

> print(dredge.tabla[c(-4,-5)], digits=3)Estimate Uncondit.SE Adjusted.SE ICinf95% ICsup95%

(Intercept) 0.0000 0.0000 0.0000 0.0000 0.0000SEXO1 -0.3841 0.1274 0.1319 -0.6427 -0.1255TARSO 0.3671 0.1406 0.1453 0.0824 0.6519ZONA1 -0.4219 0.1064 0.1103 -0.6382 -0.2057EDAD1 0.1099 0.1235 0.1260 -0.0573 0.4060EDAD1:SEXO1 -0.0390 0.0855 0.0868 -0.3687 0.0654SEXO1:ZONA1 0.0244 0.0671 0.0686 -0.1120 0.3127EDAD1:ZONA1 -0.0118 0.0496 0.0508 -0.3171 0.1274

144