Uno de los objetivos de este curso es el evitar en la medida de lo posible el adentrarnos en teoría estadística. Entre los temas que dejaremos de lado están:
Teoría de la probabilidad básica
Ley de los números grandes
Distribución muestral (o de muestreo)
Teorema del límite central
Descripción a detalle de la distribución normal
Descripción a detalle de otras distribuciones
Análisis de poder
Pruebas para valores discretos univariados
Prueba de bondad de ajuste de \(\chi^2\)
Pruebas para valores discretos bivariados
Prueba de independencia de \(\chi^2\)
Prueba exacta de Fisher
Sin embargo, es preciso el comenzar por algunas definiciones que inevitablemente serán necesarias para entender de mejor manera el resto del mismo.
Para esta sesión vamos a instalar nuevos paquetes: "UsingR", "datarium", "rstatix", "car", "ggeffects", "emmeans", "multcomp", "multcompView", "olsrr", "ggpubr"
¿Cuál es la pregunta qué deseo contestar? ¿cuál es mi objetivo?
Superioridad de mi tratamiento vs. un control
No existe diferencia de mi tratamiento vs. un control
Equivalencia de mi tratamiento vs. una referencia
Asociación/dependencia/correlación entre una o más variables
¿Qué tipo de estudio voy a llevar a cabo?
Experimental
Observacional (*)
¿Qué tipo de variables voy a medir?
Es mi respuesta continua o discreta
¿Cuál es el dominio de esas variables?
Mi respuesta puede tomar cualquier valor real (positivo la mayor parte del tiempo)
Pasos en una investigación
¿Cuál es el dominio de esas variables? (continuación)
Mi respuesta es un porcentaje (entre 0 y 100)
Mi respuesta es dicotómica (si/no)
Mi respuesta es un conteo (puede ser descrita con números enteros únicamente)
Mi respuesta es una proporción (valores entre 0 y 1)
Mi respuesta es categórica y representa un orden
Mi respuesta es categórica pero no representa un orden
Si mi estudio es experimental, ¿qué diseño experimental voy a utilizar para levantar mis datos?
Diseño completamente al azar (DCA)
Diseño de bloques completamente al azar (DBCA)
Diseño factorial completo (DFC)
Diseño cuadrado latino (DCL)
Pasos en una investigación
Si mi estudio es observacional, ¿qué tipo de muestreo voy a llevar a cabo?
Simple
Estratificado
¿Cuál debería ser el tamaño de mi muestra?
¿Qué método(s) estadístico(s) voy a utilizar para analizar mis datos?
¿Qué No debería hacer antes de realizar una investigación?
Empezarla sin haber pensado en todas las preguntas anteriores y esperar tener resultados estadísticamente válidos.
Un principio básico del método científico es el analizar los datos en base a un protocolo pre-establecido, y NO a decidir qué análisis llevar a cabo una vez que se ven los datos.
Pilares de la inferencia estadística (Diseño de experimentos)
Repetición/Replicación: es la aplicación de los tratamientos a un determinado número de unidades experimentales (al menos 3). Puede ser igual al tamaño de muestra en ciertos casos.
Aleatoriedad/Randomización: la asignación de unidades experimentales a un tratamiento debe realizarse al azar. Esto evita sesgos en las inferencias estadísticas al precautelar la independencia de los datos recolectados.
Balance: se refiere al intentar el siempre tener un número igual de unidades experimentales en los tratamientos de interés. Datos no balanceados requieren de métodos estadísticos corregidos.
Sobre las repeticiones
A veces los recursos para llevar a cabo un estudio son limitados y recurrimos a una de estas prácticas para contar con 3 repeticiones por tratamiento:
Escenario 1:Tengo las cepas A, B, C y D de bacterias degradadoras de nitrógeno y quiero saber cual de ellas tiene la mejor eficiencia a tres concentraciones de nitrógeno. Cada botella con caldo de cultivo es voluminosa y no tengo el espacio necesario para llevar a cabo tres repeticiones por tratamiento. Solución: preparo una botella de caldo por cepa y concentración (12 en total) y tomo 3 medidas (repeticiones) de cada una.
Escenario 2:Tengo dos semillas experimentales de maíz y quiero saber si existe alguna diferencia en la velocidad de crecimiento de estas con respecto a un control. Sin embargo, no cuento con el suficiente número de macetas (9) para plantar las distintas variedades con sus respectivas repeticiones. Solución: En su lugar, cuento con tres macetas y decido plantar tres semillas de cada variedad en cada maceta.
¿Cuál es el problema?, pues que esta prácticas no responderán satisfactoriamente los objetivos de cada investigación
Sobre las repeticiones
Existen tres tipos de repeticiones:
Repeticiones biológicas: Cuando tomamos una y solo una medida de una unidad experimental (en el primer escenario anterior necesitaríamos 36 botellas, 3 por cada combinación cepa \(\times\) concentración de N)
Repeticiones técnicas: Cuando tomamos más de una medida de una unidad experimental (lo que vimos en el primer escenario anterior, 12 botellas, una por cada combinación cepa \(\times\) concentración de N)
Pseudo repeticiones: Cuando en el mismo espacio físico (sin barreras claramente establecidas) coloco dos o más unidades experimentales correspondientes al mismo tratamiento (este es el caso del segundo escenario anterior).
Sobre las repeticiones
Todas las prácticas son por supuesto adecuadas, siempre y cuando sepamos que se usan para objetivos de investigación distintos, y los métodos de análisis también son distintos:
Repeticiones biológicas: Las usamos cuando deseamos hacer inferencias acerca de una población en general. El principio de independencia se mantiene y por tanto requieren metodología estándar (modelos lineales y modelos lineales generalizados).
Repeticiones técnicas: Las usamos cuando el enfoque es hacer inferencias sobre un inviduo o probando un método, esto por cuanto es natural que las medidas al venir de una misma unidad experimental estén correlacionadas. En este caso, métodos más complejos son necesarios (modelos lineales mixtos y modelos lineales generalizados mixtos).
Pseudo repeticiones: En la medida de lo posible debemos evitarlas. Sin embargo, es común el no tener otro remedio que utilizarlas cuando las condiciones del experimento así lo demandan. Esto es común en campos como la ecología o la piscicultura. De manera similar las repeticiones técnicas, las pseudo repeticiones afectan el principio de independencia y por tanto también se analizan con métodos como modelos lineales mixtos y modelos lineales generalizados mixtos.
Sobre las repeticiones
¿Son 3 repeticiones sufientes por tratamiento?, y ¿por qué 3?
Tres repeticiones son una convención que no ha sido demostrada satisfactoriamente, pero es ampliamente adoptada.
Una manera de determinar de manera fundamentada el número apropiado de repeticiones es llevar a cabo análisis de poder.
Los análisis de poder requieren de información previa acerca de la variación esperada y el tamaño del efecto (diferencia entre tratamientos) a detectar.
Esto requiere de investigación bibliográfica, o conducción de ensayos piloto.
Sobre las repeticiones
¿Cuándo el número de repeticiones es igual al tamaño de la muestra?
Es común el confundir estos dos términos, más que nada por el contexto:
Cuando hablamos de un experimento con un solo factor (por ejemplo si tenemos una pregunta puntual cómo si la media aritmética de una muestra difiere de un valor establecido), el número de repeticiones coincide con el tamaño de la muestra.
Cuando hablamos de un experimento con dos o más tratamientos (un grupo control y otro experimental por ejemplo), el tamaño de la muestra refiere al total de unidades experimentales en todo el experimento, y el número de repeticiones se refiere al número de unidades experimentales por tratamiento.
Sobre el tamaño de la muestra
Ya que hemos hablado de las repeticiones, ¿has escuchado del número 30?
30 es el número mágico considerado como el mínimo de observaciones requeridas para llevar a cabo un experimento.
Como otros números en estadística, proviene de convenciones adoptadas a lo largo del tiempo más que de teoremas completamente indiscutidos.
Sin embargo, 30 es un buen punto de inicio si conocimiento bibliográfico o pre-experimentos no están disponibles para llevar a cabo análisis de poder.
Muestras, poblaciones y muestreos
Muestra: Es un conjunto de observaciones que provienen de una población de interés. Idealmente, esta debería ser lo suficientemente grande para hacer inferencias de esa población.
Población: Es el conjunto de todas las posibles observaciones de las que tengamos interés en realizar inferencias. Es vital el definir adecuadamente sus características.
Muestreo: Es el proceso por el cual obtendremos nuestra muestra para un estudio. En estudios experimentales, el muestreo se entiende también como el proceso de aleatorización/randomización de unidades experimentales.
Muestreo sistemático: consiste en tomar un determinado elemento de la población siguiendo un patrón. Por ejemplo, escoger los múltiplos de cuatro enumerados en una lista de posibles individuos de estudio (solía ser una práctica común en ensayos clínicos).
Muestreo a conveniencia: consiste en incluir en el estudio a todos los elementos disponibles de la población de interés. Esto sucede sobre todo con poblaciones escasas o de dificil acceso (ejemplo, realizar estudios en comunidades LGBTIQ+).
Muestreo estratificado: es una combinación del muestreo simple con los sujetos agrupados por alguna característica en común, por ejemplo sexo, edad, hábitat (suele ser usado en exit polls y conteos rápidos).
Parámetros poblacionales y estadísticos muestrales
Los parámetros poblacionales son características de toda una población (ejemplo, supongamos que el IQ de toda una población puede estar caracterizado por una media aritmética, \(\mu\), igual a 100, con una desviación estándar, \(\sigma\), igual a 15).
Si tomo una muestra de 100 individuos de dicha población, podría tener una media aritmética de esta muestra, \(\overline{X}\), igual a 101.4 y una desviación estándar de la muestra, \(s\), igual a 13.7.
En otras palabras, la \(\overline{X}\) y \(s\) son aproximaciones a los valores verdareros de \(\mu\) y \(\sigma\) de esa población.
Cómo hemos visto, los estimados de las verdaderas \(\mu\) y \(\sigma\) (\(\hat{\mu}\) y \(\hat{\sigma}\)) provienen de distribuciones de muestreo, y como tales, inherentemente poseen cierto grado de incertidumbre.
Los intervalos de confianza son medidas que nos permiten tener una idea de esa incertidumbre.
En el estudio de la distribución normal estándar tenemos el conocimiento que existe un 95% de chances que una cantidad normalmente distribuida colectada al azar, estará distante de la media aritmética entre \(\pm\) 1.96 desviaciones estándar.
Y se interpreta como: con un 95% de confianza, podemos esperar que la media aritmética verdadera de la población de interés se encuentra contenida entre…
Sin embargo, como mencionamos \(\sigma\) es casi nunca conocido, y es necesario hacer una corrección a la fórmula anterior. La distribución normal trabaja bien baja la presunción de un numero grande de observaciones.
En su lugar, en 1908 el estadístico Gosset parametrizó una distribución para muestras pequeñas que asemeja a la normal. Con el tiempo, esta distribución adoptó el nombre de Student.
Y es precisamente que la fórmula anterior es corregida con la distribución de Student y así poder calcular intervalos de confianza para muestras pequeñas usando \(s\) en lugar de \(\sigma\):
\(n-1\): los grados de libertad, igual al número de observaciones \(n\) de la muestra, menos 1
\(\alpha\): es el nivel de significancia (probabilidad de obtener un resultado erróneo por azar).
Estos valores en el pasado se encontraban tabulados en libros de texto, hoy contamos con R!
Intervalos de confianza
Regresando al ejemplo del IQ, supongamos que medimos al azar el IQ de 5 personas y deseamos calcular el \(\text{IC}_{95}\)
IQ_muestra <-c(101, 98, 116, 96, 129) # muestran <-5# número de observacionest95 <-qt(p =0.975, df = n -1) # valor de Student para 4 grados de libertad al 5%x <-mean(IQ_muestra) # media aritmética de la muestras <-sd(IQ_muestra) # desviación estándar de la muestrals <- x + (t95*s/(n-1)) # límite superior del IC95li <- x - (t95*s/(n-1)) # límite inferior del IC95
Intervalos de confianza
Regresando al ejemplo del IQ, supongamos que medimos al azar el IQ de 5 personas y deseamos calcular el \(\text{IC}_{95}\)
IQ_muestra <-c(101, 98, 116, 96, 129) # muestran <-5# número de observacionest95 <-qt(p =0.975, df = n -1) # valor de Student para 4 grados de libertad al 5%x <-mean(IQ_muestra) # media aritmética de la muestras <-sd(IQ_muestra) # desviación estándar de la muestrals <- x + (t95*s/(n-1)) # límite superior del IC95li <- x - (t95*s/(n-1)) # límite inferior del IC95print(paste0("Con un 95% de confianza podemos esperar que la verdadera media aritmética de IQ de esta población se encuentre entre [",round(li,0),", ",round(ls,0),"]"))
[1] "Con un 95% de confianza podemos esperar que la verdadera media aritmética de IQ de esta población se encuentre entre [98, 118]"
Autoevaluación # 9
La concentración media de glucosa en ratones sanos se ha estimado en un rango entre 80 y 100 mg/dL. En un experimento, se han medido las siguientes concentraciones de glucosa en 10 ratones de una línea genética se presume tendría potencial de ser modelo de hiperglucemia después de unas cuantas más generaciones de cruce selectivo:
La media aritmética \(\overline{X}\) de la muestra es:
89.5
85.5
91.8
100.1
La desviación de estándar \(s\) de la muestra es
30.6
18.0
15.6
22.7
El intervalo de confianza (bajo la distribución de Student) es
[81.4, 95.3]
[80.4, 97.3]
[83.7, 95.3]
[83.7, 100.3]
Pruebas de hipótesis
Hipótesis de investigación vs. hipótesis estadísticas
Una hipótesis de investigación gira alrededor del desarrollar una conclusión científica acerca de un tema de interés del investigador. Ejemplos: el fumar causa cáncer, las vacunas causan/previenen enfermedades.
Es decir, pueden tener una naturaleza subjetiva, que expresan la pregunta del investigador de una manera general sin mayor descripción del ¿cómo? voy a probar o descartarla, ni ¿en qué extensión?.
Hipótesis estadísticas, por el contrario, deben ser matemáticamente precisas y basadas en las características de los datos que recolectemos con el fin de probar o descartar la hipótesis de investigación.
Cómo es de esperar, el probar o descartar una hipótesis estadística será únicamente válida para la población sobre la cual una muestra fue tomada.
Es ahí donde radica la importancia en definir la población sujeto de estudio de manera planificada con el objetivo de que cumpla tantos detalles sean necesarios de la hipótesis de investigación. Ejemplo, el modelo animal más usado es el ratón. Si bien es cierto constituye uno de los primeros pasos en el desarrollo de muchas investigaciones, los hallazgos en ratones NO pueden ser inmediatamente atribuibles a suceder en seres humanos.
Hipótesis nula y alternativa
La formulación de hipótesis estadísticas puede reducirse a establer preguntas de investigación en forma de las hipótesis nula y alternativa.
La más sencilla manera de formular esta dupla, es la siguiente. Supongamos que tenemos dos grupos experimentales para probar la eficiencia de un nuevo procedimiento quirúrgico. Un grupo de pacientes será sometido a la intervención tradicional (control), y el otro grupo al nuevo procedimiento (experimental).
La hipótesis nula (\(H_0\)) establece que: no existe diferencia entre el grupo control y el grupo experimental,
Mientras que la hipótesis alternativa (\(H_a\)) establece que: sí existe differencia entre ambos.
Al llevar a cabo pruebas de hipótesis pueden ocurrir errores
\[\begin{array}{|c||c||c|}
\hline
& \text{Acepta }H_{0} & \text{Rechaza }H_{0} \\
\hline
H_{0}\text{ es verdadera} & \text{Desición correcta} & \text{Error tipo I} \\
H_{0}\text{ es falsa} & \text{Error tipo II} & \text{Desición correcta} \\
\hline
\end{array}\]
¿De qué depende que aceptemos correctamente o no la hipótesis nula?
Las pruebas estadísticas dependen de la cantidad de variación y la diferencia entre tratamientos a detectar (tamaño del efecto). La solución: aumentar el número de observaciones
Poder de una prueba estadística
El poder de una prueba estadística es la probabilidad de rechazar la hipótesis nula cuando esta es de hecho falsa.
Se puede derivar de la tabla anterior
\[\begin{array}{|c||c||c|}
\hline
& \text{Acepta }H_{0} & \text{Rechaza }H_{0} \\
\hline
H_{0}\text{ es verdadera} & 1-\alpha\text{ (Prob. decisión correcta)} & \alpha\text{ (Taza Error tipo I)} \\
H_{0}\text{ es falsa} & \beta\text{ (Taza Error tipo II)} & 1-\beta\text{ (Poder)} \\
\hline
\end{array}\]
En la práctica, existen fórmulas cerradas para la determinación del número mínimo de observaciones para alcanzar un poder adecuado (\(\ge\) 80%).
A este procedimiento se le conoce como análisis de poder. Este se lo puede realizar en R, por supuesto, pero no es parte de nuestro curso.
Tamaño del efecto
El tamaño del efecto (\(\theta\)) es un valor que por lo general es determinado por el investigador y que puede ser la diferencia de interés a detectar en una prueba estadística.
Por simplicidad, vamos a enfocarnos en el ejercicio de los ratones. Supongamos que el investigador está interesado en saber cual sería el número de ratones que necesitaría para con un 80% de poder, encontrar una diferencia entre la media aritmética de su muestra y un valor que considera razonable chequear igual a 100 mg/dL. Este último valor viene a ser el \(\theta\).
Sin embargo, la pregunta del investigador aún está incompleta. A tu criterio, ¿qué falta?
Al formular hipótesis, hemos considerado el caso más simple hasta el momento. Pero recordando la idea inicial del experimento de los ratones, la opción lógica sería preguntarnos ¿cuántos ratones necesitamos para estar seguros que la población sea hiperglucémica? (cuyo valor de glucosa en sangre esté por encima del de un ratón sano)
Pero ¿cómo sabemos si una hipótesis es aceptada o rechazada?
Regresando al concepto de los intervalos de confianza, los cuartiles de la distribución de Student calculados a un nivel de significancia \(\alpha\) son valores críticos sobre los cuales se determina el rechazo o aceptación de la hipótesis nula.
El valor p, describe que tan probable sería observar resultados de la prueba asumiendo que la hipótesis nula no hubiese sido rechazada. Por ello, a menores valores p, mayor la diferencia estadística con respecto a la hipótesis alternativa.
Antes de continuar
Antes de continuar
El umbral de 0.05 es una convención arbitraria creada por Fischer en los inicios de la estadística moderna.
Lastimosamente, se ha generalizado la idea de que por más mínima sea la diferencia con respecto a 0.05, esta representa la diferencia entre publicar o no (en el campo académico), entre lanzar o no un nuevo fármaco/producto al mercado (en la industria).
En 2014, debido a un fallo de la corte suprema de justicia de los Estados Unidos que le dio la potestad a los inversionistas de farmaceúticas a demandarlas por fallar en reportar efectos secundarios de sus productos a pesar de haber sido hallados estadísticamente no significativos, la Asociación Americana de Estadística (ASA) se vio en la necesidad de definir más exhaustivamente el concepto del valor p.
Entre las recomendaciones de la ASA, se enfatizó el dar mayor prioridad a la estimación de otros estadísticos complementarios al valor p, tales como intervalos de confianza u otros provenientes de la estadística Bayesiana (intervalos de credibilidad, factores de Bayes).
Esta última (estadística Bayesiana), ofrece una interpretación más natural de la estadística al poder interpretar todos sus resultados en términos de probabilidades y no en números arbirtrarios como el valor p.
En resumen, una investigación no es inútil si el valor p sobrepasa o está por debajo de 0.05 por cantidades pequeñas.
Antes de continuar
En su lugar, en escenarios en que el valor p está alejado por una décima o varias centésimas de 0.05, los resultados deberían interpretarse como indeterminados para generalizar sobre la población objeto de estudio y específicos a las condiciones experimentales (análisis estadísticos, instrumentos de medición, etc) bajo las cuales fueron tomadas y modeladas las mediciones.
En el contexto de los modelos estadísticos que veremos más adelante, esto ha derivado en un “temor” del investigador cuando los resultados no pasan los chequeos de los supuestos sobre los que estos modelos se cimentan. Sobre todo cuando el valor p dista de 0.05 por ínfimas cantidades.
Esto puede llevar a malas prácticas científicas tales como: no reportar el resultado de los chequeos, blindar los datos, escoger “outliers” y removerlos y en el peor de los casos, manipular los datos para tratar de acomodar nuestros datos a estos chequeos.
Todo lo que he mencionado, no solamente constituyen casos de mala conducta científica, sino lo que hoy en día se le conoce como p hacking (que se puede resumir a torturar los datos hasta que nos confiesen una verdad agradable a nuestros propósitos).
Pruebas estadísticas paramétricas
Datos para esta sección
Para esta sección del curso usaremos algunas de las tablas de datos del libro Using R for Introductory Statistics, como también del paquete datarium.
Para ello, instalaremos los paquetes de R: UsingR y datarium.
library(UsingR)library(datarium)
Pruebas t
Las pruebas t son usadas para encontrar la diferencia entre dos medias aritméticas.
La \(H_0\) en estas pruebas es que las medias aritméticas son las mismas.
Se rechaza la \(H_0\) cuando el valor p resultante es \(<\) 0.05
Existen tres tipos de pruebas t
Pruebas t de una muestra
Pruebas t de muestras independientes
Pruebas t de muestras emparejadas
Estas pruebas fueron desarrolladas bajo la suposición de la normalidad y de homogeneidad de las varianzas.
De acuerdo al teorema del límite central, muestras grandes casi aseguran la normalidad.
Cuando el número de observaciones en una muestra es pequeño, es recomendable llevar a cabo un test de normalidad para decidir si es posible una prueba t o una de sus alternativas.
Normalidad de una muestra
Antes de llevar a cabo las pruebas t, hemos mencionado sus supuestos. Por ello, es aconsejable el siempre realizar estas pruebas antes de usarlas.
Existen dos tipos de pruebas para establecer si una muestra es normalmente distribuida o no
Indirectamente: gráfico Q-Q
Prueba formal de normalidad (ejemplo: Shapiro-Wilk)
En el caso del ANOVA, es importante enfatizar que estas pruebas no necesariamente tienen que hacerse antes de la prueba, como ya veremos más adelante.
Gráfico Q-Q
El gráfico Q-Q es una prueba visual indirecta de la normalidad.
Consiste en crear un gráfico de dispersión entre los valores observados de una muestra vs. los valores que deberían estos tener si siguieran una distribución normal.
Mientras en el gráfico de dispersión los puntos más se distribuyan a lo largo de una diagonal, más cercanos están los datos de la muestra a seguir un distribución normal.
Su desventaja es que es muy subjetivo, y a menudo requiere una prueba formal para poder confirmarlo.
Gráfico Q-Q
set.seed(123)y <-rnorm(n =30, mean =0, sd =1) # simulamos 30 observaciones de una normal estandarqqnorm(y) # producimos el gráfico Q-Q
Gráfico Q-Q
set.seed(123)y <-rnorm(n =30, mean =0, sd =1) # simulamos 30 observaciones de una normal estandarqqnorm(y) # producimos el gráfico Q-Q
Prueba de normalidad Shapiro-Wilk
La \(H_0\) de esta prueba (y del resto de pruebas formales de normalidad) es que un set de \(n\) observaciones es normalmente distribuido.
Otro conocido método es Kolmogorov-Smirnov. Sin embargo, Shapiro-Wilk es más apropiado para cuando el número de muestras es menor a 50.
Para ilustrar su uso, chequeemos la normalidad de los datos que simulamos anteriormente
shapiro.test(y)
Shapiro-Wilk normality test
data: y
W = 0.97894, p-value = 0.7966
Prueba de homogeneidad de las varianzas
En el caso de comparaciones entre las medias de dos grupos, la homogeneidad de varianzas puede chequearse usando la prueba F.
La prueba t de una muestra no requiere chequear este supuesto.
Para ilustrar su uso, creemos otro vector con datos simulados. En este caso, un igual número de observaciones con la misma desviación estándar pero diferente media:
set.seed(123)x <-rnorm(n =30, mean =4, sd =1)var.test(x, y)
F test to compare two variances
data: x and y
F = 1, num df = 29, denom df = 29, p-value = 1
alternative hypothesis: true ratio of variances is not equal to 1
95 percent confidence interval:
0.4759648 2.1009958
sample estimates:
ratio of variances
1
Supuestos en la práctica
Usemos las pruebas con datos reales, esta vez con la tabla de datos crime del paquete Using R.
Esta tabla de datos contiene registros de las tasas de crimen (# de reportes/100000 habitantes) en 50 estados en los Estados Unidos correspondiente a los años 1983 y 1993.
Sin enfocarnos por el momento en que prueba t específica usaremos, limitémonos a chequear la normalidad y la homogeneidad de varianzas entre las tasas de crimen registradas en 1983 y 1993.
data(crime)
Normalidad 1983
shapiro.test(crime$y1983)
Shapiro-Wilk normality test
data: crime$y1983
W = 0.77333, p-value = 1.827e-07
Normalidad 1993
shapiro.test(crime$y1993)
Shapiro-Wilk normality test
data: crime$y1993
W = 0.77348, p-value = 1.841e-07
Homogeneidad de las varianzas
var.test(crime$y1983, crime$y1993)
F test to compare two variances
data: crime$y1983 and crime$y1993
F = 0.49163, num df = 50, denom df = 50, p-value = 0.01342
alternative hypothesis: true ratio of variances is not equal to 1
95 percent confidence interval:
0.2806163 0.8613069
sample estimates:
ratio of variances
0.4916266
Transformación de variables
A menudo nos encontraremos con conjuntos de observaciones que no cumplen uno o ninguno de los supuestos.
Antes de considerar pruebas no paramétricas, podemos intentar transformaciones de variables para regresar al mundo de las pruebas paramétricas. Las transformaciones más usadas son:
La raíz cuadrada (si los datos no contienen números negativos)
Elevar al cuadrado
Logaritmo (si los datos solo incluyen números reales positivos, cero excluido)
Cuando se trabaja con muestras transformadas, el objetivo es poder revertir la transformación a las unidades reales para así poder hacer conclusiones sobre las inferencias estadísticas.
En otras palabras, una misma transformación debe aplicarse a todos los grupos a ser comparados. NO tiene ningún sentido tratar de realizar inferencias entre grupos donde se hayan usado distintas transformaciones para normalizarlos.
Si el número de observaciones es muy reducido, usualmente no hay transformación que funcione y se recomienda usar directamente pruebas no paramétricas.
Transformación de variables
Raíz cuadrada
shapiro.test(sqrt(crime$y1983))
Shapiro-Wilk normality test
data: sqrt(crime$y1983)
W = 0.9411, p-value = 0.01359
Elevar al cuadrado
shapiro.test(crime$y1983^2)
Shapiro-Wilk normality test
data: crime$y1983^2
W = 0.38921, p-value = 2.954e-13
Logaritmo
shapiro.test(log(crime$y1983))
Shapiro-Wilk normality test
data: log(crime$y1983)
W = 0.98076, p-value = 0.5713
Chequeemos con el otro grupo
shapiro.test(log(crime$y1993))
Shapiro-Wilk normality test
data: log(crime$y1993)
W = 0.96191, p-value = 0.1006
Homogeneidad de las varianzas con transformación logarítmica
var.test(log(crime$y1983), log(crime$y1993))
F test to compare two variances
data: log(crime$y1983) and log(crime$y1993)
F = 0.84048, num df = 50, denom df = 50, p-value = 0.5412
alternative hypothesis: true ratio of variances is not equal to 1
95 percent confidence interval:
0.4797393 1.4724831
sample estimates:
ratio of variances
0.8404808
Prueba t de una muestra
Es usada para comparar la media aritmética de una muestra con un valor conocido (un estándar por ejemplo).
Por lo general el valor al que se va a comparar proviene de referencias bibliográficas, pre-experimentos o supociones fundamentadas.
En este caso, el supuesto que debe cumplirse es el de la normalidad de los datos
Regresando a nuestro ejemplo de los ratones, determinemos si la media de la muestra es mayor al límite superior de glucosa de ratones saludables.
One Sample t-test
data: glc_rat
t = -1.4485, df = 9, p-value = 0.9093
alternative hypothesis: true mean is greater than 100
95 percent confidence interval:
76.16687 Inf
sample estimates:
mean of x
89.48
Prueba t de muestras independientes
Es usado para comparar las medias aritméticas de dos grupos independientes.
Por ejemplo, si deseas comparar las medias aritméticas de individuos agrupados por sexo.
Para ilustrar esta prueba, vamos a hacer uso de la tabla de datos de genderweight del paquete datarium.
Veamos si existe una diferencia significativa en la media del peso entre hombres y mujeres
data(genderweight)
Prueba t de muestras independientes
Chequeamos normalidad: Group M
shapiro.test(subset(genderweight, group =="M")$weight)
Shapiro-Wilk normality test
data: subset(genderweight, group == "M")$weight
W = 0.98634, p-value = 0.9886
Chequeamos normalidad: Group F
shapiro.test(subset(genderweight, group =="F")$weight)
Shapiro-Wilk normality test
data: subset(genderweight, group == "F")$weight
W = 0.93847, p-value = 0.2243
F test to compare two variances
data: genderweight$weight by genderweight$group
F = 0.21692, num df = 19, denom df = 19, p-value = 0.001648
alternative hypothesis: true ratio of variances is not equal to 1
95 percent confidence interval:
0.08585766 0.54802553
sample estimates:
ratio of variances
0.2169152
¡La homogeneidad de las varianzas no se cumple! 😱
¿Debemos transformar? No necesariamente
El no cumplir con el supuesto de la homogeneidad de varianzas no es un gran problema gracias a varias correcciones.
La función base de R t.test cuenta con el argumento var.equal = F como default.
Bajo este argumento, no se asumen varianzas iguales entre los grupos y en su lugar R lleva a cabo la aproximación de Welch para lidiar con este problema.
Prueba t de muestras independientes
t.test(genderweight$weight ~ genderweight$group)
Welch Two Sample t-test
data: genderweight$weight by genderweight$group
t = -20.791, df = 26.872, p-value < 2.2e-16
alternative hypothesis: true difference in means between group F and group M is not equal to 0
95 percent confidence interval:
-24.53135 -20.12353
sample estimates:
mean in group F mean in group M
63.49867 85.82612
Prueba t para muestras emparejadas
Es usado para comparar las medias de dos grupos que guardan una relación.
Esto solo ocurre cuando las medidas se han realizado a partir de los mismos grupos. Por ejemplo, al inicio y al final de un experimento.
Para esta prueba, vamos a usar la tabla de datos crime del paquete UsingR
Veamos si existe una diferencia en las tasas de crimen (# de reportes/100000 habitantes) en 50 estados de los Estados unidos entre 1983 y 1993
data(crime)
Prueba t para muestras emparejadas
t.test(x =log(crime$y1983), y =log(crime$y1993), paired =TRUE)exp(mean(log(crime$y1983)))exp(mean(log(crime$y1993)))
Prueba t para muestras emparejadas
t.test(x =log(crime$y1983), y =log(crime$y1993), paired =TRUE)
Paired t-test
data: log(crime$y1983) and log(crime$y1993)
t = -10.027, df = 50, p-value = 1.469e-13
alternative hypothesis: true mean difference is not equal to 0
95 percent confidence interval:
-0.3628437 -0.2417349
sample estimates:
mean difference
-0.3022893
exp(mean(log(crime$y1983)))
[1] 362.8298
exp(mean(log(crime$y1993)))
[1] 490.8915
Autoevaluación # 10
En esta autoevaluación, usaremos tablas de datos del paquete UsingR y datarium:
La tabla de datos blood (paquete UsingR) tiene las medidas de presión sistólica de sangre correspondientes a 15 pacientes (columna “machine”). De acuerdo al Centro de Prevención y Control de Enfermedades de los Estados Unidos (CDC), una presión sistólica saludable está por debajo de 120 mm Hg. Determina si la media de la muestra contenida en esta tabla de datos está por debajo de este valor sugerido por el CDC.
data(blood)blood
La tabla de datos normtemp (paquete UsingR) tiene las medidas en grados Fahrenheit de temperatura corporal (columna “temperature” ) correspodientes a 65 mujeres y 65 hombres (columna “gender”). Determina si existe una diferencia entre las temperaturas corporales de hombres y mujeres.
data(normtemp)normtemp
La tabla de datos mice2 (paquete datarium) tiene las medidas del peso de 10 ratones antes y después de haber sido sometidos a una determinada dieta. Encuentra si existe una diferencia significativa en el peso de estos ratones antes y después del régimen de dieta al que fueron expuestos. ¿Ganaron o perdieron peso?
data(mice2)mice2
En el paquete UsingR tenemos disponible una lista con 5 objetos bajo el nombre cancer. Esta contiene el tiempo de sobreviviencia en días de pacientes con distintos tipos de cáncer desde el momento de su diagnóstico hasta su deceso. Chequea si los datos correspondientes a cáncer de colon son normalmente distribuidos. Si no lo son, prueba si puedes normalizarlos usando alguna de las tres transformaciones que vimos. En el caso que más de una transformación funcione, ¿cuál escogerías para continuar con alguna prueba estadística, y por qué?
Tip: usa el siguiente código para extraer en un vector los datos de pacientes con cáncer de colon:
data(cancer)colon <- cancer$colon
Pruebas estadísticas no paramétricas
Pruebas de Wilcoxon para datos no normales
Las pruebas de Wilcoxon usan la mediana como criterio para evaluar la \(H_0\).
Lastimosamente, estas pruebas son usualmente menos poderosas (mayor tasa de errores tipo II).
Tiene dos formas:
Pruebas para una muestra (análoga a la prueba t para una muestra)
Pruebas para dos muestras (análoga a las pruebas t para dos muestras independientes y emparejadas)
Prueba de Wilcoxon para una muestra
Prof. Danielle Navarro midió el nivel de felicidad de sus estudiantes antes y después de su clase de Estadística. Ella estaba interesada en saber si el tomar una clase de Estadística tiene algún efecto en la felicidad de sus estudiantes. Los datos que obtuvo no están normalmente distribuidos. Por ello, se vio en la necesidad de llevar a cabo una prueba de Wilcoxon.
En este caso, la \(H_0\), es que la diferencia de la mediana de la felicidad de sus estudiantes antes y después de la clase debería ser igual a cero para clamar que no existe tal efecto.
Prueba de Wilcoxon para una muestra
# Primero recreo la tabla de Prof. Navarrofelicidad <-data.frame(before =c(30,43,21,24,23,40,29,56,38,16),after =c(6,29,11,31,17,2,31,21,8,21))felicidad$change <- felicidad$after - felicidad$beforewilcox.test(felicidad$change, mu =0)
Wilcoxon signed rank exact test
data: felicidad$change
V = 7, p-value = 0.03711
alternative hypothesis: true location is not equal to 0
Prueba de Wilcoxon para dos muestras
Regresando al ejemplo de la tabla de datos genderweight, supongamos que estos no están normalmente distribuidos.
Usaremos la prueba de Wilcoxon para muestras independientes para ver si existe diferencia entre los pesos de hombres y mujeres.
Wilcoxon rank sum exact test
data: genderweight$weight by genderweight$group
W = 0, p-value = 1.451e-11
alternative hypothesis: true location shift is not equal to 0
Autoevaluación # 11
Con el vector de nombre colon que creaste en la anterior autoevaluación, aplica una prueba de Wilcoxon para una muestra bajo la hipótesis de que la mediana de los días de superviviencia de un paciente con cáncer de colon es de 370 días.
A partir de la tabla de datos de felicidad de la Prof. Navarro, lleva a cabo una prueba de Wilcoxon para dos muestras emparejadas de la felicidad de los estudiantes antes y después de recibir una clase de Estadística. Compara el resultado con la prueba de una muestra que usé de ejemplo. ¿Por qué no hay diferencia?.
Análisis de Varianza (ANOVA)
Introducción
Hasta el momento nos hemos enfocado a los casos donde comparamos las medias entre dos grupos.
Pero es más común el evaluar distintos tratamientos al mismo tiempo.
Para ello, contamos con el ANOVA, desarrollado por el estadístico Ronald Fisher a inicios del siglo 20, y que sin duda es el método estadístico más usado hoy en día.
Su nombre puede ser confuso. El objetivo de un ANOVA es el de determinar la existencia de diferencias entre las medias aritméticas de las muestras representativas de \(n\) poblaciones (o en términos más precisos, tratamientos).
Supuestos del ANOVA
Independencia de los datos: conseguida mediante una correcta randomización y definición del experimento.
Homogeneidad de las varianzas: la varianza entre los tratamientos es la misma.
Normalidad: pero, ¿de qué exactamente?
Siempre ha existido una confusión de este supuesto. Cómo vimos antes, la normalidad es un requisito para conducir pruebas t, y lo es también para el ANOVA.
Muchos libros de texto y otros recursos, mencionan que los datos de cada tratamiento deben ser normalmente distribuidos para llevar a cabo un ANOVA. Esto es cierto e impráctico a la vez.
Mencionamos que como mínimo deberíamos contar con 3 repeticiones por tratamiento. Pero, ¿son 3 repeticiones suficientes para alcanzar la normalidad?
Es común el sugerir el llevar a cabo una prueba de normalidad antes de un ANOVA, pero esto tiene varios problemas que supongo no te han dicho antes:
Cada tratamiento tiene su propia media, en caso de medias muy distantes entre sí, la prueba puede fallar.
En su lugar, podrías correr una prueba por cada tratamiento. Esto solo funciona con un considerable número de observaciones/tratamiento (3 no son suficientes).
Supuestos del ANOVA
Esta confusión nos puede llevar a soluciones erróneas como transformar datos, borrar outliers o utilizar pruebas no paramétricas innecesariamente.
Entonces, ¿normalidad de qué?
De los residuos estandarizados!… ¿Qué es un residual?
Un residual es la diferencia entre una observación y su predicción
Un residual estandarizado resulta de la división del residual para la raíz cuadrada de la predicción
La distribución muestral de los residuos estandarizados tiene media 0 y desviación estándar 1
Y es sobre esta distribución que los valores críticos del ANOVA (valores F) son calculados. Es decir, estos no dependen enteramente de los datos originales, por lo tanto los datos originales no tienen que ser necesariamente normalmente distribuidos.
Pero, ¿por qué la confusión? Solo cuando el número de observaciones es lo suficientemente grande (y ya sabemos que distribución tiene la media muestral cuando el número incrementa), se tiene la certeza que los residuos serán normalmente distribuidos.
En resumen, es mejor chequear la normalidad después que realizamos el ANOVA.
El dataset de recursos por depredación
El dataset de recursos por depredación
Los datos que usaremos en esta y otras secciones corresponden a un experimento del Prof. Justin C. Touchon acerca de la interacción entre predadores y recursos.
El experimento consistió de múltiples tanques (mesocosmos) dispuestos al aire libre en Gamboa, Panamá. Los investigadores tenían por objetivo el saber como la variación en la incubación de huevos de la rana arbórea de ojos rojos podría afectar su desarrollo hasta la metamorfosis bajo varias combinaciones de recursos y predadores.
Los tratamientos fueron los siguientes:
Edad de incubación: Temprana (E: 4 días después de la oviposición) o tardía (L: 6 días después de la oviposición).
Predadores: control (C), no letal (NL: larvas de libélula enjauladas) y letal (L: larvas de libélula libres)
Recursos: bajo (Lo: 0.75 g) o alto (Hi: 1.5 g) de comida suministrados cada 5 días.
Los mesocosmos fueron colocados en 8 bloques de 12 tanques cada uno.
El experimento inició con 50 renacuajos por tanque y terminó cuando todos los renacuajos alcanzaron la metamorfosis, o murieron.
El dataset de recursos por depredación
Variables de respuesta:
Edad de metaformosis contada desde el día de oviposición (Age.DPO).
Edad de salida del agua (Age.FromEmergence)
Longitud nariz-cloaca al emerger (SVL.initial)
Longitud de la cola al emerger (Tail.initial)
Longitud nariz-cloaca al término de la reabsorción de la cola (SVL.final)
Peso al término de la reabsorción de la cola (Mass.final)
Número de días requeridos por cada metamorfo para reabsorber completamente la cola (Resorb.days)
18 tanques conteniendo predadores no letales fueron descartados debido al brote de una enfermedad
NOTA: el dataset original de Touchon contiene alrededor de 2500 observaciones. Sin embargo, para poder usar los datos bajo los supuestos del ANOVA es necesario reducirlos a las medias aritméticas de cada tratamiento por cuanto se tratan de pseudo repeticiones. Esta reducción ya está hecha en el archivo “touchon.csv” disponible con el resto de materiales extras del curso.
Explorando este dataset
Haremos una exploración básica del dataset anteriormente descrito: gráficos de caja y bigote, de barras, de densidad y matrices de dispersión.
Como estos datos han sido pre-procesados, omitiremos el mapa de observaciones perdidas.
Para esto, aprovecho la oportunidad para introducir otro par de paquetes útiles
Como vimos anteriormente, ggplot2 es una poderosa librería de visualización de datos cuyo uso es relativamente sencillo. Sin embargo, su dominio requiere un poco de tiempo y paciencia. Para quienes quizá deseen una manera más rápida de realizar sus gráficos y solamente tomarse el tiempo en añadir detalles finales, usaremos ggpubr.
Medias aritméticas observadas
# usaremos nuevamente el paquete `tidycomm` para los estadísticos descriptivosranas <-read.csv("touchon.csv")describe(ranas)
ranas
12 Variables 78 Observations
--------------------------------------------------------------------------------
Block
n missing distinct Info Mean Gmd
78 0 8 0.983 4.128 2.645
Value 1 2 3 4 5 6 7 8
Frequency 12 12 12 8 10 8 8 8
Proportion 0.154 0.154 0.154 0.103 0.128 0.103 0.103 0.103
For the frequency table, variable is rounded to the nearest 0
--------------------------------------------------------------------------------
Tank.Unique
n missing distinct Info Mean Gmd .05 .10
78 0 78 1 44.24 32.46 4.85 8.70
.25 .50 .75 .90 .95
20.25 40.50 67.50 84.60 90.15
lowest : 1 2 3 4 5, highest: 90 91 92 94 96
--------------------------------------------------------------------------------
Pred
n missing distinct
78 0 3
Value C L NL
Frequency 32 32 14
Proportion 0.410 0.410 0.179
--------------------------------------------------------------------------------
Hatch
n missing distinct
78 0 2
Value E L
Frequency 39 39
Proportion 0.5 0.5
--------------------------------------------------------------------------------
Res
n missing distinct
78 0 2
Value Hi Lo
Frequency 39 39
Proportion 0.5 0.5
--------------------------------------------------------------------------------
Age.DPO
n missing distinct Info Mean Gmd .05 .10
78 0 77 1 64.69 24.47 43.24 45.12
.25 .50 .75 .90 .95
47.74 57.44 71.68 101.03 114.37
lowest : 38.1111 40.6341 41.8333 42.65 43.3478
highest: 114.114 115.81 128.225 135.121 140.902
--------------------------------------------------------------------------------
Age.FromEmergence
n missing distinct Info Mean Gmd .05 .10
78 0 77 1 30.69 24.47 9.243 11.125
.25 .50 .75 .90 .95
13.738 23.439 37.682 67.031 80.368
lowest : 4.11111 6.63415 7.83333 8.65 9.34783
highest: 80.1136 81.8095 94.225 101.121 106.902
--------------------------------------------------------------------------------
SVL.initial
n missing distinct Info Mean Gmd .05 .10
78 0 78 1 19 1.484 17.37 17.68
.25 .50 .75 .90 .95
18.03 18.94 19.68 21.34 21.73
lowest : 16.3205 16.6179 16.8889 17.315 17.3838
highest: 21.725 21.76 21.9167 22.125 22.3
--------------------------------------------------------------------------------
Tail.initial
n missing distinct Info Mean Gmd .05 .10
78 0 78 1 5.867 0.9237 4.777 4.901
.25 .50 .75 .90 .95
5.330 5.680 6.163 7.004 7.502
lowest : 4.41111 4.55854 4.58 4.63462 4.80222
highest: 7.45833 7.75 7.8 7.8375 8.6
--------------------------------------------------------------------------------
SVL.final
n missing distinct Info Mean Gmd .05 .10
78 0 78 1 19.38 1.576 17.71 17.90
.25 .50 .75 .90 .95
18.29 19.23 20.02 21.74 22.14
lowest : 16.6818 17.0222 17.0769 17.5425 17.7432
highest: 22.1 22.4 22.6 23.2 23.3
--------------------------------------------------------------------------------
Mass.final
n missing distinct Info Mean Gmd .05 .10
78 0 78 1 0.4301 0.1124 0.3239 0.3323
.25 .50 .75 .90 .95
0.3592 0.4043 0.4618 0.6235 0.6994
lowest : 0.269318 0.281026 0.293333 0.315135 0.325455
highest: 0.6975 0.71 0.712 0.7375 0.75
--------------------------------------------------------------------------------
Resorb.days
n missing distinct Info Mean Gmd .05 .10
78 0 73 1 4.4 0.659 3.632 3.764
.25 .50 .75 .90 .95
4.024 4.255 4.789 5.116 5.546
lowest : 3.375 3.44444 3.48936 3.51111 3.65385
highest: 5.30303 5.53659 5.6 5.75 6.5
--------------------------------------------------------------------------------
p1 <-ggbarplot(data = ranas,x ="Pred",y ="Age.FromEmergence",add ="mean_se",fill ="Pred")p1 +labs(title ="Gráfico de barras de edad desde oviposición",subtitle ="Datos del estudio de Prof. Touchon",caption ="Gráfica propia",x ="Predadores",y ="Edad desde oviposición",color ="Predador")
ANOVA de una vía se refiere cuando tenemos más de dos tratamientos que están definidos por un solo factor a la vez.
Usando los datos del Prof. Touchon, vamos a ilustrar el caso del ANOVA de una vía. Para ello, vamos a considerar lo siguiente
Supongamos que estamos interesados en saber si existe alguna diferencia entre la edad de salida del agua Age.FromEmergence determinada por los predadores:
Los niveles del factor predadores son:
Predadores no letales NL
Predadores letales L
Control (sin predadores) C
La \(H_0\) en todo ANOVA es simplemente que no existe diferencia entre \(n\) tratamientos, y la \(H_a\) es que al menos uno de los tratamientos tiene una media distinta.
ANOVA en R
Existen dos formas de llevar a cabo ANOVA en R:
Crear un modelo lineal con la función lm y luego el ANOVA con la función anova sobre el objeto producto de lm.
Aplicar directamente la función aov sobre nuestros datos.
Ambas funciones (lm y aov) tienen la misma sintaxis. Personalmente prefiero la primera opción.
Adicionalmente, el paquete car ofrece la función Anova. El resultado de ambas es prácticamente el mismo para la mayoría de modelos. Sin embargo, personalmente prefiero Anova ya que permite realizar correcciones cuando tenemos datos no balanceados.
ANOVA de una vía en R
Opción 1
library(car)lm1 <-lm(Age.FromEmergence ~ Pred, data = ranas)Anova(lm1)
Opción 2
anova1 <-aov(Age.FromEmergence ~ Pred, data = ranas)summary(anova1)
Anova Table (Type II tests)
Response: Age.FromEmergence
Sum Sq Df F value Pr(>F)
Pred 9467 2 10.442 9.986e-05 ***
Residuals 33999 75
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Df Sum Sq Mean Sq F value Pr(>F)
Pred 2 9467 4733 10.44 9.99e-05 ***
Residuals 75 33999 453
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Diagnósticos del ANOVA
Antes de conducir pruebas formales para los supuestos del ANOVA, es preciso darle un vistazo a diagnósticos visuales que podemos obtener del mismo.
El ANOVA es un caso de regresión lineal (con predictores categóricos), por lo que en esta sección nos centraremos en la interpretación de estos diagnósticos desde la perspectiva del ANOVA.
En el apartado de regresión lineal volveremos a profundizar en las interpretaciones de los mismos para ese caso determinado.
Para acceder a estos diagnósticos, basta usar la función plot sobre el objeto donde guardamos los resultados del modelo lm1.
En este plot podemos evidenciar departuras del supuesto de la homocedasticidad. Idealmente, la línea roja que se muestra debería ir a lo largo de la horizontal en la coordenada cero del eje y (sobre la línea entrecortada).
Diagnósticos del ANOVA
Gráfico Q-Q
A diferencia del gráfico Q-Q que vimos para las pruebas t, en el eje y de este mismo gráfico para el ANOVA (y regresión lineal) se representan los residuos estandarizados. La interpretación es la misma: idealmente los puntos deberían ir a lo largo de la diagonal. Cuando no es así, evidencia una violación del supuesto de la normalidad.
Diagnósticos del ANOVA
Raíz cuadrada de los residuos estandarizados vs. Valores ajustados
Similar al primer diagnóstico, en el caso del ANOVA, nos da una idea de posibles departuras de la homogeneidad de las varianzas. La línea roja idealmente debería ser completamente recta.
Diagnósticos del ANOVA
Residuos vs. Apalancamiento
Aquellos puntos que estén etiquetados con números son mostrados como posibles outliers bajo dos criterios:
Están por fuera de los límites de la regla del rango intercuartílico (IQR), y
Marcados como outliers con influencia de apalancamiento mediante la prueba de Cook (distancia de Cook).
El segundo criterio es un argumento sólido para remover outliers.
O también podemos calcular la prueba de Shapiro-Wilk con funciones base de R
residuos <-resid(lm2)shapiro.test(residuos)
Shapiro-Wilk normality test
data: residuos
W = 0.98017, p-value = 0.2645
Homogeneidad de las varianzas en ANOVA
La prueba más usada para chequear la homogeneidad de varianzas de un ANOVA es la de Levene.
Para ello utilizaremos la función leveneTest del paquete car. Podemos usar esta función directamente sobre los datos con la misma sintaxis de lm, o sobre el objeto lm2 en el que anteriormente almacenamos el resultado del modelo lineal con la transformación.
leveneTest(lm2, center ="mean")
Levene's Test for Homogeneity of Variance (center = "mean")
Df F value Pr(>F)
group 2 3.0464 0.05345 .
75
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
ANOVA de una vía en R (continuación)
Así, una vez que hemos transformado para obtener normalidad en los residuos y chequeado la homogeneidad de varianzas, es tiempo de hecharle un vistazo al resultado del ANOVA:
Anova(lm2)
Anova Table (Type II tests)
Response: log(Age.FromEmergence)
Sum Sq Df F value Pr(>F)
Pred 9.710 2 12.389 2.244e-05 ***
Residuals 29.392 75
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Por tanto, podemos concluir que al menos uno de los tratamientos es distinto (aceptamos la \(H_a\) y rechazamos la \(H_0\))
¿Qué tan distintos?
Preguntas naturales seguidas de estos resultados son: ¿qué tan distintos son los tratamientos entre sí?, ¿puedo acaso ordernarlos de mayor a menor?, ¿existen pares de tratamientos que son iguales?
Podemos comenzar con una ayuda visual (ligeramente distinto a nuestro AED, usando la transformación logarítmica)
Los métodos de comparaciones múltiples y gráficos de interacción nos ayudan a responder estas preguntas.
En el caso de los gráficos de interacción para ANOVA de una vía, no tiene mucho sentido llevarlos a cabo ya que son más útiles para ANOVA de múltiples vías, así que los dejaremos para después.
Las comparaciones múltiples más usadas son:
HSD Tukey (Honestly significant difference): lleva a cabo todos los pares de comparaciones posibles entre los niveles de un factor.
Prueba de Dunnett: Compara los niveles únicamente con respecto al nivel control dentro del factor.
Son conocidas también como pruebas post-hoc.
En R, una manera de realizar comparaciones múltiples es mediante los paquetes emmeans y multcomp (este último depende de multcompView, así que no olvides instalarla también).
HSD Tukey
Calculamos las medias marginales a partir del modelo
library(emmeans)ph1 <-emmeans(lm2, specs ="Pred", type ="response")summary(ph1)
HSD Tukey
Calculamos las medias marginales a partir del modelo
library(emmeans)ph1 <-emmeans(lm2, specs ="Pred", type ="response")summary(ph1)
Pred response SE df lower.CL upper.CL
C 34.2 3.79 75 27.4 42.6
L 15.8 1.75 75 12.7 19.7
NL 26.2 4.38 75 18.8 36.5
Confidence level used: 0.95
Intervals are back-transformed from the log scale
Ahora podemos calcular las comparaciones por pares de HSD Tukey
contrast ratio SE df null t.ratio p.value
C / L 2.165 0.339 75 1 4.936 <.0001
C / NL 1.307 0.262 75 1 1.335 0.3806
L / NL 0.604 0.121 75 1 -2.516 0.0368
P value adjustment: tukey method for comparing a family of 3 estimates
Tests are performed on the log scale
Prueba de Dunnett
Para Dunnett, es importante el establecer el grupo control
contrast ratio SE df null t.ratio p.value
L / C 0.462 0.0723 75 1 -4.936 <.0001
NL / C 0.765 0.1535 75 1 -1.335 0.3177
P value adjustment: dunnettx method for 2 tests
Tests are performed on the log scale
Finalmente, otra tabla de resumen de las comparaciones múltiples es la de agrupar las medias aritméticas marginales con números (o letras) de acuerdo a si estas son estadísticamente distintas o no entre si. Para ello podemos usar el paquete multcomp:
# multcomp necesita un paquete extra llamada multcompView# No olvides instalar multcompView antes de correr este códigolibrary(multcomp)medias_marginales <-cld(ph1)medias_marginales
Pred response SE df lower.CL upper.CL .group
L 15.8 1.75 75 12.7 19.7 1
NL 26.2 4.38 75 18.8 36.5 2
C 34.2 3.79 75 27.4 42.6 2
Confidence level used: 0.95
Intervals are back-transformed from the log scale
P value adjustment: tukey method for comparing a family of 3 estimates
Tests are performed on the log scale
significance level used: alpha = 0.05
NOTE: If two or more means share the same grouping symbol,
then we cannot show them to be different.
But we also did not show them to be the same.
Antes de continuar
En este punto, antes de continuar hagamos uso nuevamente del paquete flextable para exportar nuestras tablas a Word.
Hay personas que prefieren tener representaciones visuales de las comparaciones múltiples.
Realizar este tipo de gráficos sin embargo solía demandar buena experiencia ya sea en gráficos base o ggplot2.
Afortunadamente, rstatix nos brinda la posibilidad de llevarlos a cabo de una manera relativamente sencilla.
La idea es generar un gráfico con las medias marginales observadas de la variable de interés y posicionar sobre este los resultados de las comparaciones múltiples con sus códigos de significancia (o valores p).
Las desventajas de esta visualización son:
Tienen mayor sentido realizarlas con HSD Tukey
Cuando el número de pares de comparaciones es muy grande, el gráfico se vuelve más difícil de interpretar que las tablas.
rstatix no tiene manera de directamente volver a retransformar variables a sus unidades originales.
Otro gráfico de cierta popularidad es el de los grupos de Tukey de las medias marginales (gráficos de barras con los números/letras sobre cada categoría). Para esto utilizaremos además el paquete stringr
library(stringr)gruposvals <-as.data.frame(cld(ph1))gruposvals$Pred <-factor(gruposvals$Pred, levels =c("C", "NL", "L"))ggplot(gruposvals,aes(x = Pred, y = response, fill = Pred)) +geom_bar(stat ="identity", show.legend = F, color ="black")+geom_errorbar(aes(ymin = response - SE, ymax = response + SE), width=0.2)+geom_text(aes(label=str_trim(.group), y = response+SE, vjust=-0.5))
ANOVA de un diseño desbalanceado
Recordemos que 18 tanques con predadores no letales fueron descartados debido al brote de una enfermedad.
El diseño original de Touchon era balanceado. Al perderse unidades experimentales, el diseño se le puede denominar como desbalanceado. En otras palabras, el desbalance es la pérdida de observaciones.
La mayoría de métodos estadísticos requieren ser corregidos ante observaciones perdidas para poder tener la certeza de que los estimados que obtenemos no sean sesgados.
Sin adentrarnos en mayor detalle, uno de los componentes de la tabla de ANOVA es la suma de cuadrados. Existen tres tipos de suma de cuadrados: I, II y III.
En breve, las sumas II y III se aconseja sean usadas cuando existen interacciones en el ANOVA.
En R, la función aov calcula la suma de cuadrados tipo I. Este tipo de suma no es conveniente ante la presencia de desbalance de los datos.
En cambio, la función Anova del paquete car, usa por default el tipo II que es precisamente el recomendado usar ante la presencia de desbalance.
En resumen, sí. Hemos utilizado hasta el momento la corrección adecuada para estos datos.
Prueba de Kruskal-Wallis
La prueba de Kruskal-Wallis es la alternativa no paramétrica al ANOVA de una vía.
Puede extenderse al ANOVA de múltiples vías reorganizando el diseño experimental.
Similar a las pruebas de Wilcoxon, se basa en encontrar diferencias de las medianas en lugar de las medias y su poder es menor.
Para ilustrar este ejemplo, tomemos la variable Age.DPO del estudio de Touchon y veamos si existen diferencias con respecto al tratamiento de predador Pred. Age.DPO (sin transformaciones no cumple con los supuestos del ANOVA).
kruskal.test(Age.DPO ~ Pred, data = ranas)
Kruskal-Wallis rank sum test
data: Age.DPO by Pred
Kruskal-Wallis chi-squared = 22.255, df = 2, p-value = 1.47e-05
Comparaciones múltiples con Kruskal-Wallis
Con KW también podemos hacer comparaciones múltiples.
En R base contamos con la función pairwise.wilcox.test que lleva a cabo comparaciones por pares mediante el método de Wilcoxon.
Pairwise comparisons using Wilcoxon rank sum exact test
data: ranas$Age.DPO and ranas$Pred
C NL
NL 0.303 -
L 9.8e-06 0.019
P value adjustment method: BH
Autoevaluación # 12
Encuentra si existen diferencias en la longitud nariz-cloaca al emerger (SVL.initial) con respecto a los predadores Pred en los datos de Touchon. ¿Qué método es factible usar?, ¿ANOVA de una vía o Kruskal-Wallis?
ANOVA de múltiples vías
El ANOVA puede extenderse para analizar dos o más factores a la vez. Su nombre entonces varía dependiendo de cuántos factores analicemos, así: ANOVA de dos vías (2 factores), ANOVA de tres vías (3 factores) …
En la práctica es recomendable diseñar experimentos hasta máximo 3 factores:
A más factores, más costosa la investigación
A más factores, sus interacciones son más difíciles de interpretar
Es posible inclusive que tengamos resultados sin sentido (interacciones innecesarias)
¿Qué son las interacciones?
Una interacción se refiere cuando los niveles de un factor podrían depender de los niveles de otro.
Por ejemplo, con los datos de las ranas, podríamos imaginar que en la ausencia de predadores, tener recursos altos o bajos podría influenciar el tiempo que tomaron los renacuajos en culminar la metamorfosis. Es decir, si hay predadores presentes, podría darse el caso de que las presas se escondan y coman menos influenciando así ese tiempo.
Así, podríamos saber si el effecto de los recursos son influenciados ante la presencia de predadores
ANOVA de múltiples vías en R
Vamos a usar nuevamente los datos de Touchon, la variable de respuesta es la edad de metamorfosis Age.DPO y los factores la presencia de predadores Pred y los recursos Res.
Para un ANOVA de múltiples vías en R podemos usar la siguiente sintaxis: Factor1*Factor2
Para ahorrarnos tiempo, supóngamos que ya corrimos un primer ANOVA, y encontramos que usando el logaritmo de Age.DPO podemos normalizar los residuos. Pero nos encontramos con esto:
lm4 <-lm(log(Age.DPO) ~ Pred*Res, data = ranas)leveneTest(lm4, center ="mean")
Levene's Test for Homogeneity of Variance (center = "mean")
Df F value Pr(>F)
group 5 6.0253 0.0001033 ***
72
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
¡La homogeneidad de las varianzas no se cumple! 😱
¡Ninguna otra transformación funciona!
ANOVA de múltiples vías en R
ANOVA de múltiples vías en R
A parte de reir, en este tipo de situaciones (que son bastante comunes), tenemos dos alternativas:
Realizar pruebas no paramétricas, o
Calcular ANOVAs con correcciones para heterocedasticidad.
En R, tenemos estos caminos (de peor a mejor opción):
Realizar el ANOVA usando la corrección de White-Huber disponible en la librería car, pero al costo de conducir comparaciones múltiples posiblemente sesgadas (siguiendo la lógica de realizarlas con emmeans).
Utilizar rstatix para un ANOVA con la corrección de Welch, seguido de comparaciones múltiples con la corrección de Games-Howell y poder todavía realizar sus gráficos al costo de romper la secuencia de aprendizaje que hemos venido llevando para el ANOVA.
Utilizar las librerías nlme para reparametrizar el modelo en forma de un modelo lineal generalizado, y posteriormente usar car y emmeans para el ANOVA y las comparaciones múltiples, respectivamente. Pero al costo de no poder graficarlas con rstatix sino desde 0.
A continuación entonces iremos en este orden de las opciones: 2, 3 y 1 (la última para ejemplificar cuál sería el camino suponiendo que la homocedasticidad se hubiese cumplido).
ANOVA de múltiples vías en R. Opc. 2
El inconveniente de usar la corrección de Welch es que esta se puede aplicar solo a ANOVAs de una vía.
Entonces, de manera similar a lo hicimos para poder analizar por Kruskall-Wallis un diseño factorial, tenemos que crear una variable dummy combinando los dos factores para correr un ANOVA de una vía.
Debemos tener en cuenta que al realizar esto, reducimos poder de la prueba estadística.
El inconveniente de usar la corrección de Welch es que esta se puede aplicar solo a ANOVAs de una vía.
Entonces, de manera similar a lo hicimos para poder analizar por Kruskall-Wallis un diseño factorial, tenemos que crear una variable dummy combinando los dos factores para correr un ANOVA de una vía.
Debemos tener en cuenta que al realizar esto, reducimos poder de la prueba estadística.
La tercera opción involucra el reparametrizar el modelo para poder analizarlo como un modelo lineal generalizado.
En breve, una de las ventajas de los modelos lineales generalizados es que pueden asumir varianzas distintas a través de modelar directamente la heterocedasticidad.
Ahora, usando emmeans podemos calcular el HSD de Tukey directamente sin necesidad de correcciones. Una consideración importante es que, cuando tenemos dos factores debemos hacer las comparaciones de cada factor a la vez a lo largo de los niveles del otro.
tukey_comp_pred <-emmeans(anova_op3, specs ="Pred", by ="Res", method ="tukey") # medias marginales esperadascontrast(tukey_comp_pred, specs ="Pred", by ="Res", method ="tukey")
Res = Hi:
contrast estimate SE df t.ratio p.value
C - NL 0.0531 0.0873 10.98 0.608 0.8186
C - L 0.2022 0.0509 20.62 3.971 0.0020
NL - L 0.1491 0.0765 6.94 1.949 0.1959
Res = Lo:
contrast estimate SE df t.ratio p.value
C - NL 0.1548 0.1717 8.55 0.901 0.6536
C - L 0.4854 0.0879 27.51 5.526 <.0001
NL - L 0.3306 0.1650 7.37 2.004 0.1783
Degrees-of-freedom method: satterthwaite
Results are given on the log (not the response) scale.
P value adjustment: tukey method for comparing a family of 3 estimates
tukey_comp_res <-emmeans(anova_op3, specs ="Res", by ="Pred", method ="tukey") # medias marginales esperadascontrast(tukey_comp_res, specs ="Res", by ="Pred", method ="tukey")
Pred = C:
contrast estimate SE df t.ratio p.value
Hi - Lo -0.440 0.0847 26.09 -5.199 <.0001
Pred = NL:
contrast estimate SE df t.ratio p.value
Hi - Lo -0.339 0.1730 8.52 -1.957 0.0839
Pred = L:
contrast estimate SE df t.ratio p.value
Hi - Lo -0.157 0.0560 18.93 -2.803 0.0114
Degrees-of-freedom method: satterthwaite
Results are given on the log (not the response) scale.
Para graficar estas comparaciones mediante esta opción es necesario el empezar de cero con ggplot2. La razón es que rstatix no tiene las capacidades de lidiar con interacciones provenientes de emmeans (no es compatible con la sintaxis de los comandos contrast de arriba) por lo que dejaremos esta opción hasta aquí.
ANOVA de múltiples vías en R. Opc. 1
Finalmente, asumamos que no tuvimos el problema de heterocedasticidad y pudimos haber seguido el curso normal para realizar las comparaciones múltiples usando solamente car, emmeans y multcomp.
Este es el transcurso normal de tópicos en el aprendizaje del ANOVA de múltiples vías:
Tabla del ANOVA con car (mencionamos que car es capaz de llevar a cabo una corrección de heterocedasticidad, esta se consigue agregando el argumento white.adjust = T dentro de la función Anova)
Anova(lm4)
Anova Table (Type II tests)
Response: log(Age.DPO)
Sum Sq Df F value Pr(>F)
Pred 1.9446 2 18.7561 2.775e-07 ***
Res 1.8241 1 35.1871 9.576e-08 ***
Pred:Res 0.3254 2 3.1384 0.04934 *
Residuals 3.7324 72
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Al igual que en la opción 3, calculamos las comparaciones múltiples viendo a cada factor a la vez a lo largo de los niveles del otro.
tukey_comp_pred1 <-emmeans(lm4, specs ="Pred", by ="Res", type ="response")contrast(tukey_comp_pred1, specs ="Pred", method ="tukey")
Res = Hi:
contrast ratio SE df null t.ratio p.value
C / NL 1.05 0.1088 72 1 0.515 0.8644
C / L 1.22 0.0985 72 1 2.512 0.0374
NL / L 1.16 0.1198 72 1 1.445 0.3234
Res = Lo:
contrast ratio SE df null t.ratio p.value
C / NL 1.17 0.1205 72 1 1.500 0.2968
C / L 1.62 0.1308 72 1 6.030 <.0001
NL / L 1.39 0.1436 72 1 3.204 0.0057
P value adjustment: tukey method for comparing a family of 3 estimates
Tests are performed on the log scale
tukey_comp_res1 <-emmeans(lm4, specs ="Res", by ="Pred", type ="response")contrast(tukey_comp_res1, specs ="Pred", method ="tukey", adjust ="holm")
Pred = C:
contrast ratio SE df null t.ratio p.value
Hi / Lo 0.644 0.0518 72 1 -5.470 <.0001
Pred = NL:
contrast ratio SE df null t.ratio p.value
Hi / Lo 0.713 0.0867 72 1 -2.782 0.0069
Pred = L:
contrast ratio SE df null t.ratio p.value
Hi / Lo 0.855 0.0688 72 1 -1.951 0.0549
Tests are performed on the log scale
Antes de continuar
Muchas personas gustan de las tablas de grupos de Tukey para las medias marginales esperadas en diseños experimentales factoriales al estilo que usamos para poder conducir la opción 2 anteriormente descrita.
Esta práctica es innecesaria si el investigador es capaz de hacer buenas inferencias basándose en las comparaciones por factor a lo largo de los niveles del otro.
No tienen ningún problema operacional ya que a la final es una reparametrización válida del modelo.
Sin embargo, cuando el modelo sobre el cual son aplicadas es incorrecto, son más susceptibles de reflejar valores p que concluyen con inferencias falaces.
En el largo ejemplo de las opciones a mano para lidiar con heterocedasticidad, podemos con seguridad afirmar que del peor al mejor modelo su orden sería: Opción 1 < Opción 2 < Opción 3.
Para ilustrar esto, con la variable dummy que creamos en la opción 2, calculemos los grupos Tukey de las medias marginales esperadas en las opciones 1 y 3 para su comparación.
Antes de continuar
Grupos Tukey de las medias marginales esperadas en la opción 1
Lleva a cabo un ANOVA de dos vías para las variables Resorb.days y los factores Pred y Res. La pregunta a investigar es saber si existe una interacción entre la presencia de predadores a distintos niveles de recursos que afecte el tiempo de reabsorción de la cola en los renacuajos de ranas arbóreas de ojos rojos.
A pesar de que el modelo para Resorb.day que acabas de hacer cumple con los supuestos del ANOVA, solo por aprendizaje, conduce una prueba de Kruskal-Wallis usando los mismos factores.
Regresión lineal
Introducción
Otro modelo estadístico ampliamente usado es la regresión lineal.
Se diferencia del ANOVA al considerar un predictor continuo (no un factor categórico).
Los supuestos de la regresión lineal son:
Existencia de una relación lineal entre las variables continuas objeto de la regresión
Normalidad de los residuos
Que no exista multicolinearidad (en el caso de regresión múltiple)
Que no exista auto correlación (que las observaciones no dependan una de otra dentro de una misma variable)
Homogeneidad de la varianza de los residuos
Contrario al ANOVA, no existen correcciones o métodos alternativos cuando las transformaciones fallan.
Por esto, lo que se recomienda hacer es mencionar todos los detalles de la conducción del modelo. Cosa que rara vez pasa.
En regresión lineal es quizá en el método que más se abusa del remover outliers.
Regresión lineal en R
Usando los datos de Touchon, podríamos preguntarnos si el tamaño de las ranas al final de la metamorfosis SVL.final está influenciado por la edad en finalizar la metamorfosis Age.DPO.
Esta regresión lineal sería de la siguiente forma:
lm6 <-lm(SVL.final ~ Age.DPO, data = ranas)summary(lm6)
Call:
lm(formula = SVL.final ~ Age.DPO, data = ranas)
Residuals:
Min 1Q Median 3Q Max
-3.1414 -0.9521 -0.1297 0.6842 3.4349
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 21.285436 0.416763 51.073 < 2e-16 ***
Age.DPO -0.029437 0.006052 -4.864 6.08e-06 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 1.262 on 76 degrees of freedom
Multiple R-squared: 0.2374, Adjusted R-squared: 0.2273
F-statistic: 23.65 on 1 and 76 DF, p-value: 6.081e-06
Pero antes de cualquier inferencia, vamos a darle un vistazo a los diagnósticos de la regresión lineal
Diagnósticos de la regresión lineal
par(mfrow =c(2, 2))plot(lm6)par(mfrow =c(1, 1))
Diagnósticos de la regresión lineal
Diagnósticos de la regresión lineal
Residuos vs. Valores ajustados
En el ANOVA vimos como este plot sugería departuras de la homocedasticidad. En el caso de la regresión lineal, los residuos al no estar agrupados en categorías presentan mayor información sobre este supuesto. Adicionalmente, curvaturas en la línea roja evidencian también departuras de la linearidad. Esto quiere decir que la relación entre las variables no es completamente lineal. A veces esto puede corregirse con transformaciones.
Diagnósticos de la regresión lineal
Es ideal. (b) Es indicativo de no linearidad. (c) Evidencia de heterocedasticidad. (d) Evidencia de una tendencia temporal
Diagnósticos de la regresión lineal
Gráfico Q-Q
Misma explicación que antes
Diagnósticos de la regresión lineal
Raíz cuadrada de los residuos estandarizados vs. Valores ajustados
Misma explicación que antes
Diagnósticos de la regresión lineal
Residuos vs. Apalancamiento
Aquellos puntos que estén etiquetados con números son mostrados como posibles outliers bajo dos criterios:
Están por fuera de los límites de la regla del rango intercuartílico (IQR), y
Marcados como outliers con influencia de apalancamiento mediante la prueba de Cook (distancia de Cook).
El segundo criterio es un argumento sólido para remover outliers.
Pruebas formales de los supuestos
Como vimos, los supuestos de la regresión lineal son más que para el ANOVA.
Existen varias pruebas formales para chequear cada uno de sus supuestos, sin embargo rara vez son empleadas.
La razón yace en que si los aplicáramos todo el tiempo, no haríamos regresiones lineales ni el 10% de las veces.
Si tienes curiosidad en estas pruebas puedes visitar este enlace.
De alguna manera podemos decir que de hecho, los estadísticos somos más laxos con la regresión lineal, sin embargo esto es bajo el supuesto no estadístico de que estas departuras de los supuestos fueran debidamente documentadas y plasmadas en los trabajos científicos, lo cual lamentablemente no pasa muy a menudo.
Existen por supuesto métodos que no dependen de todos estos supuestos (por ejemplo: regresiones lineales Bayesianas, modelos lineales generalizados correctamente parametrizados) pero no son parte de este curso.
Transformación de datos
Al igual que en el ANOVA, podemos recurrir a transformaciones de datos que nos permitan aliviar varios de los supuestos no cumplidos de la regresión lineal.
En el presente caso, esto lo logramos al utilizar el logaritmo natural de las dos variables del modelo
lm6 <-lm(log(SVL.final) ~log(Age.DPO), data = ranas)par(mfrow =c(2, 2))plot(lm6)
par(mfrow =c(1, 1))summary(lm6)
Call:
lm(formula = log(SVL.final) ~ log(Age.DPO), data = ranas)
Residuals:
Min 1Q Median 3Q Max
-0.182298 -0.049070 0.000516 0.038342 0.159057
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 3.44001 0.09211 37.345 < 2e-16 ***
log(Age.DPO) -0.11624 0.02232 -5.208 1.58e-06 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.06244 on 76 degrees of freedom
Multiple R-squared: 0.263, Adjusted R-squared: 0.2533
F-statistic: 27.12 on 1 and 76 DF, p-value: 1.581e-06
Interpretación de la regresión lineal
\[
y = mx + b
\]
Call:
lm(formula = log(SVL.final) ~ log(Age.DPO), data = ranas)
Residuals:
Min 1Q Median 3Q Max
-0.182298 -0.049070 0.000516 0.038342 0.159057
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 3.44001 0.09211 37.345 < 2e-16 ***
log(Age.DPO) -0.11624 0.02232 -5.208 1.58e-06 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.06244 on 76 degrees of freedom
Multiple R-squared: 0.263, Adjusted R-squared: 0.2533
F-statistic: 27.12 on 1 and 76 DF, p-value: 1.581e-06
Por cada incremento en una unidad del logaritmo de Age.DPO, tenemos una unidad en descenso del logaritmo de SVL.final
ggplot(ranas, aes(x =log(Age.DPO), y =log(SVL.final))) +geom_point()+geom_smooth(method ="lm")
Interpretación de la regresión lineal
Sin embargo una interpretación en la escala logarítmica no es completamente entendible, al menos para alguien ajeno al análisis que realizamos.
Podríamos hacer la retransformación de las variables a sus unidades originales y generar un gráfico de las predicciones. A la final se reduce a matemática básica.
Afortunadamente la librería ggeffects nos salva de ese dilema!
Quizá muchos hayan escuchado que un \(R^2\) cercano a 1 es “ideal” cuando realizamos una regresión lineal.
Recuerdo incluso haber sido indoctrinado acerca de márgenes para un buen \(R^2\) (algo así como que por encima del 80% es “bueno”, mayor al 90% es excelente y 100% es el Nirvana).
En breve, \(R^2\)NO ES NINGUNA DE LAS SIGUIENTES COSAS:
Una métrica de bondad de ajuste: no nos dice si el modelo se ajusta bien a los datos.
Una métrica del error de predicción: no mide para nada que tan bueno es el modelo para predecir futuras observaciones.
Una métrica que permita comparar modelos usando variables transformadas: es común jugar a transformar los datos para ver de que manera se puede inflarlo hacia el santo grial.
Una métrica que permita que tan bien una variable explica otra: en el ejemplo que vimos, y en toda regresión lineal, si cambiamos el predictor por respuesta y viceversa, tendremos exactamente el mismo \(R^2\)
\(R^2\) es simplemente una medida de la cantidad de variación que un modelo específico explica. ¿Tiene alguna utilidad práctica?no lo sé, en 10 años como estadístico no lo he usado nunca, al menos no, voluntariamente…
UsingR y datarium contienen recursos de aprendizaje, tablas de datos básicamente.
rstatix es una librería para llevar a cabo tests y pruebas estadísticas básicas basada en el funcionamiento del operador de cascada de dplyr
car contiene diversas funciones para llevar a cabo análisis estadísticos. Está desarrollado como material adicional de un libro.
ggeffects ofrece funcionalidades de computación y visualización de medias marginales de una amplia diversidad de tipos de modelos.
emmeans se especializa en proveer funciones para el cómputo y análisis relacionados de medias marginales de diversos modelos estadísticos. multcomp y multcompView ofrecen funciones para dar formato a resultados producidos por emmeans.
olsrr ofrece varias pruebas estadísticas para modelos. En este módulo lo hemos usado únicamente para cómputo de pruebas de homocedasticidad de residuos.
ggpubr es una librería que ofrece una sintaxis reducida para producir figuras de una manera más sencilla que el uso total de ggplot2.