Introducción a Bioestadística y Análisis de Datos con R

Dr. Juan Fidel Osuna-Ramos

2024-01-23

Conceptos Básicos de Estadística y Ciencia de Datos

Definición de Estadística y Ciencia de Datos

La estadística es una rama de las matemáticas que se ocupa de la recopilación, análisis, interpretación y presentación de masas de datos numéricos.

La ciencia de datos es un campo interdisciplinario que utiliza métodos científicos, procesos, algoritmos y sistemas para extraer conocimientos y perspectivas de muchos tipos de datos, tanto estructurados como no estructurados.

Importancia en la Investigación Biomédica

En la investigación biomédica, la estadística es crucial para:

Paquetes de R para Estadística y Ciencia de Datos

Manipulación y Limpieza de Datos con dplyr

dplyr: Un Paquete del tidyverse

El paquete dplyr es una herramienta fundamental en R para la manipulación de datos. Forma parte del tidyverse, un conjunto de paquetes que facilitan la ciencia de datos en R. dplyr proporciona funciones que permiten:

Introducción a dplyr

dplyr es un paquete del tidyverse que facilita la manipulación y limpieza de datos en R. Proporciona un conjunto de herramientas coherente y fácil de usar para operaciones comunes de manipulación de datos.

Instalación y Carga de dplyr

El paquete viene predeterminado cuando instalamos el paquete tidiverse

# Instalar dplyr si aún no está instalado
if (!requireNamespace("dplyr", quietly = TRUE)) {
  install.packages("dplyr")
}

# Cargar el paquete dplyr
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union

Funciones Principales de dplyr

Conceptos Clave antes de iniciar

Introducción a la Base de Datos iris

La base de datos iris es un conjunto de datos clásico en el campo de la estadística y el aprendizaje automático. Contiene mediciones de las características de las flores de iris de tres especies diferentes: Setosa, Versicolor y Virginica.

# Visualización de la base de datos iris
iris
##     Sepal.Length Sepal.Width Petal.Length Petal.Width    Species
## 1            5.1         3.5          1.4         0.2     setosa
## 2            4.9         3.0          1.4         0.2     setosa
## 3            4.7         3.2          1.3         0.2     setosa
## 4            4.6         3.1          1.5         0.2     setosa
## 5            5.0         3.6          1.4         0.2     setosa
## 6            5.4         3.9          1.7         0.4     setosa
## 7            4.6         3.4          1.4         0.3     setosa
## 8            5.0         3.4          1.5         0.2     setosa
## 9            4.4         2.9          1.4         0.2     setosa
## 10           4.9         3.1          1.5         0.1     setosa
## 11           5.4         3.7          1.5         0.2     setosa
## 12           4.8         3.4          1.6         0.2     setosa
## 13           4.8         3.0          1.4         0.1     setosa
## 14           4.3         3.0          1.1         0.1     setosa
## 15           5.8         4.0          1.2         0.2     setosa
## 16           5.7         4.4          1.5         0.4     setosa
## 17           5.4         3.9          1.3         0.4     setosa
## 18           5.1         3.5          1.4         0.3     setosa
## 19           5.7         3.8          1.7         0.3     setosa
## 20           5.1         3.8          1.5         0.3     setosa
## 21           5.4         3.4          1.7         0.2     setosa
## 22           5.1         3.7          1.5         0.4     setosa
## 23           4.6         3.6          1.0         0.2     setosa
## 24           5.1         3.3          1.7         0.5     setosa
## 25           4.8         3.4          1.9         0.2     setosa
## 26           5.0         3.0          1.6         0.2     setosa
## 27           5.0         3.4          1.6         0.4     setosa
## 28           5.2         3.5          1.5         0.2     setosa
## 29           5.2         3.4          1.4         0.2     setosa
## 30           4.7         3.2          1.6         0.2     setosa
## 31           4.8         3.1          1.6         0.2     setosa
## 32           5.4         3.4          1.5         0.4     setosa
## 33           5.2         4.1          1.5         0.1     setosa
## 34           5.5         4.2          1.4         0.2     setosa
## 35           4.9         3.1          1.5         0.2     setosa
## 36           5.0         3.2          1.2         0.2     setosa
## 37           5.5         3.5          1.3         0.2     setosa
## 38           4.9         3.6          1.4         0.1     setosa
## 39           4.4         3.0          1.3         0.2     setosa
## 40           5.1         3.4          1.5         0.2     setosa
## 41           5.0         3.5          1.3         0.3     setosa
## 42           4.5         2.3          1.3         0.3     setosa
## 43           4.4         3.2          1.3         0.2     setosa
## 44           5.0         3.5          1.6         0.6     setosa
## 45           5.1         3.8          1.9         0.4     setosa
## 46           4.8         3.0          1.4         0.3     setosa
## 47           5.1         3.8          1.6         0.2     setosa
## 48           4.6         3.2          1.4         0.2     setosa
## 49           5.3         3.7          1.5         0.2     setosa
## 50           5.0         3.3          1.4         0.2     setosa
## 51           7.0         3.2          4.7         1.4 versicolor
## 52           6.4         3.2          4.5         1.5 versicolor
## 53           6.9         3.1          4.9         1.5 versicolor
## 54           5.5         2.3          4.0         1.3 versicolor
## 55           6.5         2.8          4.6         1.5 versicolor
## 56           5.7         2.8          4.5         1.3 versicolor
## 57           6.3         3.3          4.7         1.6 versicolor
## 58           4.9         2.4          3.3         1.0 versicolor
## 59           6.6         2.9          4.6         1.3 versicolor
## 60           5.2         2.7          3.9         1.4 versicolor
## 61           5.0         2.0          3.5         1.0 versicolor
## 62           5.9         3.0          4.2         1.5 versicolor
## 63           6.0         2.2          4.0         1.0 versicolor
## 64           6.1         2.9          4.7         1.4 versicolor
## 65           5.6         2.9          3.6         1.3 versicolor
## 66           6.7         3.1          4.4         1.4 versicolor
## 67           5.6         3.0          4.5         1.5 versicolor
## 68           5.8         2.7          4.1         1.0 versicolor
## 69           6.2         2.2          4.5         1.5 versicolor
## 70           5.6         2.5          3.9         1.1 versicolor
## 71           5.9         3.2          4.8         1.8 versicolor
## 72           6.1         2.8          4.0         1.3 versicolor
## 73           6.3         2.5          4.9         1.5 versicolor
## 74           6.1         2.8          4.7         1.2 versicolor
## 75           6.4         2.9          4.3         1.3 versicolor
## 76           6.6         3.0          4.4         1.4 versicolor
## 77           6.8         2.8          4.8         1.4 versicolor
## 78           6.7         3.0          5.0         1.7 versicolor
## 79           6.0         2.9          4.5         1.5 versicolor
## 80           5.7         2.6          3.5         1.0 versicolor
## 81           5.5         2.4          3.8         1.1 versicolor
## 82           5.5         2.4          3.7         1.0 versicolor
## 83           5.8         2.7          3.9         1.2 versicolor
## 84           6.0         2.7          5.1         1.6 versicolor
## 85           5.4         3.0          4.5         1.5 versicolor
## 86           6.0         3.4          4.5         1.6 versicolor
## 87           6.7         3.1          4.7         1.5 versicolor
## 88           6.3         2.3          4.4         1.3 versicolor
## 89           5.6         3.0          4.1         1.3 versicolor
## 90           5.5         2.5          4.0         1.3 versicolor
## 91           5.5         2.6          4.4         1.2 versicolor
## 92           6.1         3.0          4.6         1.4 versicolor
## 93           5.8         2.6          4.0         1.2 versicolor
## 94           5.0         2.3          3.3         1.0 versicolor
## 95           5.6         2.7          4.2         1.3 versicolor
## 96           5.7         3.0          4.2         1.2 versicolor
## 97           5.7         2.9          4.2         1.3 versicolor
## 98           6.2         2.9          4.3         1.3 versicolor
## 99           5.1         2.5          3.0         1.1 versicolor
## 100          5.7         2.8          4.1         1.3 versicolor
## 101          6.3         3.3          6.0         2.5  virginica
## 102          5.8         2.7          5.1         1.9  virginica
## 103          7.1         3.0          5.9         2.1  virginica
## 104          6.3         2.9          5.6         1.8  virginica
## 105          6.5         3.0          5.8         2.2  virginica
## 106          7.6         3.0          6.6         2.1  virginica
## 107          4.9         2.5          4.5         1.7  virginica
## 108          7.3         2.9          6.3         1.8  virginica
## 109          6.7         2.5          5.8         1.8  virginica
## 110          7.2         3.6          6.1         2.5  virginica
## 111          6.5         3.2          5.1         2.0  virginica
## 112          6.4         2.7          5.3         1.9  virginica
## 113          6.8         3.0          5.5         2.1  virginica
## 114          5.7         2.5          5.0         2.0  virginica
## 115          5.8         2.8          5.1         2.4  virginica
## 116          6.4         3.2          5.3         2.3  virginica
## 117          6.5         3.0          5.5         1.8  virginica
## 118          7.7         3.8          6.7         2.2  virginica
## 119          7.7         2.6          6.9         2.3  virginica
## 120          6.0         2.2          5.0         1.5  virginica
## 121          6.9         3.2          5.7         2.3  virginica
## 122          5.6         2.8          4.9         2.0  virginica
## 123          7.7         2.8          6.7         2.0  virginica
## 124          6.3         2.7          4.9         1.8  virginica
## 125          6.7         3.3          5.7         2.1  virginica
## 126          7.2         3.2          6.0         1.8  virginica
## 127          6.2         2.8          4.8         1.8  virginica
## 128          6.1         3.0          4.9         1.8  virginica
## 129          6.4         2.8          5.6         2.1  virginica
## 130          7.2         3.0          5.8         1.6  virginica
## 131          7.4         2.8          6.1         1.9  virginica
## 132          7.9         3.8          6.4         2.0  virginica
## 133          6.4         2.8          5.6         2.2  virginica
## 134          6.3         2.8          5.1         1.5  virginica
## 135          6.1         2.6          5.6         1.4  virginica
## 136          7.7         3.0          6.1         2.3  virginica
## 137          6.3         3.4          5.6         2.4  virginica
## 138          6.4         3.1          5.5         1.8  virginica
## 139          6.0         3.0          4.8         1.8  virginica
## 140          6.9         3.1          5.4         2.1  virginica
## 141          6.7         3.1          5.6         2.4  virginica
## 142          6.9         3.1          5.1         2.3  virginica
## 143          5.8         2.7          5.1         1.9  virginica
## 144          6.8         3.2          5.9         2.3  virginica
## 145          6.7         3.3          5.7         2.5  virginica
## 146          6.7         3.0          5.2         2.3  virginica
## 147          6.3         2.5          5.0         1.9  virginica
## 148          6.5         3.0          5.2         2.0  virginica
## 149          6.2         3.4          5.4         2.3  virginica
## 150          5.9         3.0          5.1         1.8  virginica

Visualización y Estructura de los Datos

Para explorar y entender mejor los datos, utilizamos funciones como View() y str() en R.

La Función View()

La Función str()

La función str() proporciona una visión concisa de la estructura interna de un objeto R.

En el caso de iris, str() revelará:

# Estructura de la base de datos iris
str(iris)
## 'data.frame':    150 obs. of  5 variables:
##  $ Sepal.Length: num  5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
##  $ Sepal.Width : num  3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...
##  $ Petal.Length: num  1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
##  $ Petal.Width : num  0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...
##  $ Species     : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ...

Importancia de Estas Funciones

Estas funciones son herramientas esenciales en el análisis de datos, ya que permiten:

Conceptos Básicos de Estadística y Ciencia de Datos

Definiciones y Teoría

Paquetes de R para Estadística

Resumen Estadístico con base. Usando función summary()

# Resumen estadístico de la base de datos iris
summary(iris)
##   Sepal.Length    Sepal.Width     Petal.Length    Petal.Width   
##  Min.   :4.300   Min.   :2.000   Min.   :1.000   Min.   :0.100  
##  1st Qu.:5.100   1st Qu.:2.800   1st Qu.:1.600   1st Qu.:0.300  
##  Median :5.800   Median :3.000   Median :4.350   Median :1.300  
##  Mean   :5.843   Mean   :3.057   Mean   :3.758   Mean   :1.199  
##  3rd Qu.:6.400   3rd Qu.:3.300   3rd Qu.:5.100   3rd Qu.:1.800  
##  Max.   :7.900   Max.   :4.400   Max.   :6.900   Max.   :2.500  
##        Species  
##  setosa    :50  
##  versicolor:50  
##  virginica :50  
##                 
##                 
## 

Visualización de Datos con ggplot2

# Cargar el paquete ggplot2
library(ggplot2)

# Gráfico de dispersión de Sepal.Length vs Sepal.Width
ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, color = Species)) +
  geom_point() +
  labs(title = "Dispersión de Longitud vs Ancho del Sépalo por Especie",
       x = "Longitud del Sépalo",
       y = "Ancho del Sépalo")

Conceptos Básicos de Estadística para Investigación Biomédica

Introducción a la Estadística Biomédica

La estadística en la investigación biomédica es crucial para el diseño de experimentos, análisis de datos y la interpretación de resultados. Según Stojanović et al. (2018), la elección adecuada de pruebas estadísticas influye en la interpretación de los datos en la investigación biomédica.

Paquete rstatix en R

rstatix proporciona un conjunto de funciones para realizar análisis estadísticos básicos y avanzados en R. Es especialmente útil en el contexto de la investigación biomédica y experimental.

Ejemplo con la Base de Datos iris

Utilizaremos para calcular medidas de tendencia central de la base de datos iris.

Instalación y Carga del Paquete rstatix

# Instalar y cargar rstatix
#install.packages("rstatix")
library(rstatix)
## 
## Attaching package: 'rstatix'
## The following object is masked from 'package:stats':
## 
##     filter

Medidas de Tendencia Central: Media, Mediana, Moda

Cálculo de Media, Mediana y Moda

Calculada usando la función de rstatix get_summary_stats()

Cálculo de la media de Sepal.Length

Se usa type = para indicar que estadigrafo queremos encontrar

media_sepal_length <- iris %>% 
  get_summary_stats(Sepal.Length, type = "mean")
media_sepal_length
## # A tibble: 1 × 3
##   variable         n  mean
##   <fct>        <dbl> <dbl>
## 1 Sepal.Length   150  5.84

Cálculo de Media, Mediana y Moda

Calculada usando la función de rstatix get_summary_stats()

Cálculo de la mediana de Sepal.Width

Calculamos mediana con función get_summary_stats

mediana_sepal_width <- iris %>% 
  get_summary_stats(Sepal.Width, type = "median")
mediana_sepal_width
## # A tibble: 1 × 3
##   variable        n median
##   <fct>       <dbl>  <dbl>
## 1 Sepal.Width   150      3

Cálculo de Media, Mediana y Moda

La moda no se calcula directamente en rstatix, se puede usar la función table
moda_species <- iris %>% 
  pull(Species) %>% 
  table() %>% 
  which.max()
moda_species
## setosa 
##      1

Estadística Descriptiva e Inferencial

Estadística Descriptiva

La estadística descriptiva resume y describe las características de un conjunto de datos. Incluye medidas de tendencia central y de variabilidad.

Medidas de Variabilidad: Varianza, Desviación Estándar

Ejemplo: Desviación Estándar en iris

# Cálculo de desviación estándar de Sepal.Length

desviacion_std_sepal_length <- iris %>% 
  get_summary_stats(Sepal.Length, type = "mean_sd")
desviacion_std_sepal_length
## # A tibble: 1 × 4
##   variable         n  mean    sd
##   <fct>        <dbl> <dbl> <dbl>
## 1 Sepal.Length   150  5.84 0.828

Estadística Inferencial

La estadística inferencial utiliza muestras de datos para hacer inferencias sobre una población más grande.

Pruebas de Hipótesis

Las pruebas de hipótesis evalúan si una afirmación sobre una población es estadísticamente significativa.

La estadística descriptiva e inferencial son fundamentales en la investigación biomédica para entender y analizar datos. El paquete rstatix en R facilita la realización de estos análisis.

Exploración de Datos (EDA) con R

Introducción a la Exploración de Datos

La Exploración de Datos (EDA) es un enfoque analítico para comprender las características y patrones subyacentes en los datos. Incluye técnicas de visualización y estadísticas descriptivas.

Uso de gtsummary para EDA

El paquete gtsummary en R proporciona una forma sencilla de crear tablas descriptivas elegantes y listas para publicación.

Instalación y Carga del Paquete

# Instalar y cargar gtsummary
#install.packages("gtsummary")
library(gtsummary)
## #Uighur

Ejemplo: Tabla Descriptiva con gtsummary

# Crear una tabla descriptiva de la base de datos iris
tabla_descriptiva <- iris %>% 
  tbl_summary(by = Species, 
              type = all_continuous() ~ "continuous2",
              missing = "no") %>% 
  add_n() %>% 
  add_p()

DESGLOZANDOE EL CODIGO:

tbl_summary():

Esta función crea tablas descriptivas sumarizando cada variable en el conjunto de datos. Las tablas resultantes incluyen estadísticas como medias para variables continuas y frecuencias para variables categóricas.

by = Species:

Este argumento divide los datos por la variable Species. Esto significa que las estadísticas se calcularán por separado para cada especie de iris en el conjunto de datos.

type = all_continuous() \~ "continuous2":

Aquí se especifica cómo se deben resumir las variables. all_continuous() ~ “continuous2” indica que todas las variables continuas deben ser resumidas con el estilo “continuous2”, que generalmente incluye la media y la desviación estándar.

DESGLOZANDOE EL CODIGO:

missing = "no":

Este argumento indica que no se incluirán estadísticas para los datos faltantes en el resumen.

add_n():

Añade una fila al principio de la tabla que muestra el número total de observaciones en cada grupo (por especie en este caso).

add_p():

Añade una columna con el valor p para pruebas de hipótesis, comparando las distribuciones de cada variable entre los grupos especificados en el argumento by.

OTROS:

https://www.danieldsjoberg.com/gtsummary/

Uso de gtsummary para EDA

La EDA es un paso crucial en el análisis de datos, especialmente en la investigación biomédica.

Herramientas como gtsummary y ggplot2 en R facilitan este proceso, permitiendo una comprensión más profunda de los datos.

Visualización en EDA

La visualización es un componente clave de la EDA. ggplot2 es un paquete de R ampliamente utilizado para este propósito.

Estructura de los Datos

Para que tbl_summary funcione correctamente los datos deben estar en un formato adecuado:

Los datos no deben tener estructuras complejas como listas o matrices dentro de las columnas.

Estadística Inferencial: Contraste de Hipótesis

Contraste de Hipótesis en R

El contraste de hipótesis es un método estadístico que permite tomar decisiones sobre una población basándose en los resultados obtenidos de una muestra. ### Pruebas de Hipótesis en R

R ofrece varias funciones para realizar pruebas de hipótesis, incluyendo pruebas t, pruebas de chi-cuadrado, y ANOVA.

Ejemplo: Prueba t de Student

Vamos a comparar las medias de la longitud del sépalo (Sepal.Length) entre dos especies de iris.

# Cargar la base de datos iris si aún no está cargada
data(iris)

# Visualizar las primeras filas de la base de datos iris
head(iris)
##   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1          5.1         3.5          1.4         0.2  setosa
## 2          4.9         3.0          1.4         0.2  setosa
## 3          4.7         3.2          1.3         0.2  setosa
## 4          4.6         3.1          1.5         0.2  setosa
## 5          5.0         3.6          1.4         0.2  setosa
## 6          5.4         3.9          1.7         0.4  setosa
# Realizar una prueba t para comparar la media de Sepal.Length entre setosa  versicolor
t_test_result <- t.test(Sepal.Length ~ Species, data = subset(iris, Species %in% c("setosa", "versicolor")))

Ejemplo: Prueba t de Student

Mostrar los resultados de la prueba t

Este código realiza una prueba t para comparar las medias de Sepal.Length entre las especies setosa y versicolor.

t_test_result
## 
##  Welch Two Sample t-test
## 
## data:  Sepal.Length by Species
## t = -10.521, df = 86.538, p-value < 2.2e-16
## alternative hypothesis: true difference in means between group setosa and group versicolor is not equal to 0
## 95 percent confidence interval:
##  -1.1057074 -0.7542926
## sample estimates:
##     mean in group setosa mean in group versicolor 
##                    5.006                    5.936

Intervalos de Confianza

Los intervalos de confianza proporcionan un rango estimado de valores dentro del cual se espera que se encuentre el verdadero valor del parámetro de la población.

#Calcular intervalo de confianza para la media de Sepal.Length en setosa 
ci_setosa<- t.test(Sepal.Length~ Species == "setosa", data = iris)$conf.int
# Mostrar intervalo de confianza
ci_setosa
## [1] 1.092102 1.419898
## attr(,"conf.level")
## [1] 0.95

Este código calcula el intervalo de confianza al 95% para la media de Sepal.Length en la especie setosa.

Valor P vs Intervalos de Confianza

Introducción

En la investigación biomédica, el valor p y los intervalos de confianza son herramientas estadísticas fundamentales. Sin embargo, su interpretación y aplicación adecuada son esenciales para extraer conclusiones válidas.

Valor P

El valor p indica la probabilidad de obtener un resultado al menos tan extremo como el observado, asumiendo que la hipótesis nula es cierta. Un valor p bajo sugiere que es improbable que el efecto observado se deba al azar.

Limitaciones del Valor P

Intervalos de Confianza

Los intervalos de confianza ofrecen un rango de valores dentro del cual se espera que se encuentre el verdadero valor del parámetro de la población.

Ventajas de los Intervalos de Confianza

Discusión: ¿Valor P o Intervalos de Confianza?

Discusión: ¿Valor P o Intervalos de Confianza?

Conclusión

La elección entre el valor p y los intervalos de confianza depende de los objetivos del estudio y de la naturaleza de los datos. Mientras que el valor p puede indicar la significancia estadística, los intervalos de confianza proporcionan una comprensión más rica de la magnitud y la relevancia del efecto observado.

Referencias

Ejemplos Prácticos: Valor P vs Intervalos de Confianza

Ejemplo 1: Uso del Valor P

Escenario: Un investigador está probando la eficacia de un nuevo fármaco para reducir la presión arterial. Quiere saber si hay una diferencia estadísticamente significativa en la reducción de la presión arterial entre el grupo que recibe el fármaco y el grupo de control.

Escenario: Un equipo de investigación está estudiando el efecto de una dieta especial en los niveles de colesterol. Además de saber si el cambio es estadísticamente significativo, están interesados en la magnitud y la precisión de la reducción del colesterol.

Respuesta y abordaje estadístico:

Aplicación del Valor P: Se realiza una prueba t de Student para comparar las medias de reducción de la presión arterial entre los dos grupos. Un valor p menor a 0.05 indicaría que la diferencia observada no es probable que sea debido al azar.

Código hipotético en R

t_test_result <- t.test(presion_arterial ~ grupo, data = datos_estudio)

Interpretación del Valor P en la Prueba t de Student

Supongamos que el resultado de la prueba t para comparar las medias de reducción de la presión arterial entre el grupo que recibe el fármaco y el grupo de control arroja un valor p de 0.03.

Interpretación: Un valor p de 0.03 significa que hay una probabilidad del 3% de observar una diferencia tan grande o mayor en las medias de reducción de la presión arterial entre los dos grupos, asumiendo que no hay ninguna diferencia real (es decir, la hipótesis nula es cierta). Dado que este valor p es menor que el umbral convencional de 0.05, podemos rechazar la hipótesis nula y concluir que hay una diferencia estadísticamente significativa en la reducción de la presión arterial entre los grupos.

Respuesta y abordaje estadístico:

Aplicación de Intervalos de Confianza: Se calcula el intervalo de confianza al 95% para la media de la reducción del colesterol. Este intervalo proporcionará un rango dentro del cual se espera que se encuentre la verdadera media de la reducción del colesterol en la población.

Código hipotético en R

ci_result <- t.test(colesterol ~ dieta, data = datos_dieta)$conf.int

Interpretación de los Intervalos de Confianza

Imaginemos que el intervalo de confianza al 95% para la media de la reducción del colesterol es de 10 mg/dL a 20 mg/dL.

Interpretación: Este intervalo de confianza indica que, con un 95% de confianza, la verdadera media de la reducción del colesterol en la población se encuentra entre 10 mg/dL y 20 mg/dL. Esto no solo muestra que la dieta parece tener un efecto en la reducción del colesterol, sino que también proporciona una estimación de la magnitud de este efecto. A diferencia del valor p, el intervalo de confianza nos da una idea de la relevancia clínica y la precisión de nuestra estimación.

Conclusión

Valor P: Nos indica si una diferencia o efecto observado es estadísticamente significativo, pero no nos dice nada sobre la magnitud de este efecto.

Intervalos de Confianza: Nos proporcionan información sobre la magnitud del efecto y la precisión de nuestras estimaciones, lo cual es crucial para evaluar la relevancia clínica o práctica de los resultados.

La interpretación correcta de estos resultados es fundamental para tomar decisiones informadas en la investigación biomédica y para comunicar de manera efectiva las conclusiones del estudio.

Conclusión

La elección entre el valor p y los intervalos de confianza debe basarse en los objetivos específicos del estudio y en la naturaleza de la pregunta de investigación. Mientras que el valor p es útil para pruebas de significancia, los intervalos de confianza proporcionan una comprensión más amplia del efecto y su variabilidad.

Conclusión

La estadística inferencial en R permite realizar pruebas de hipótesis y calcular intervalos de confianza, proporcionando herramientas esenciales para la toma de decisiones basadas en el análisis de datos en investigación biomédica.

Análisis de Datos Cuantitativos

Este módulo cubre las pruebas paramétricas y no paramétricas en R.

Pruebas Paramétricas y No Paramétricas

Las pruebas paramétricas asumen que los datos siguen una distribución específica, generalmente la normal. Las pruebas no paramétricas, en cambio, no requieren dicha suposición.

Pruebas estadísticas en R

Prueba t para una y dos muestras

La prueba t se utiliza para comparar las medias de una o dos muestras.

Prueba t para una muestra

t.test(x = datos$variable, mu = valor_esperado)

Prueba t para dos muestras

t.test(datos$variable1, datos$variable2)

Prueba Mann-Whitney y Prueba de los Rangos con Signo y Pareada de Wilcoxon

Estas pruebas no paramétricas se usan cuando no se pueden cumplir los supuestos para una prueba t.

Prueba Mann-Whitney

wilcox.test(datos$variable1, datos$variable2, paired = FALSE)

Prueba de Wilcoxon

wilcox.test(datos$variable1, datos$variable2, paired = TRUE)

ANOVA (Una, dos y tres vías)

ANOVA se utiliza para comparar las medias entre tres o más grupos.

ANOVA de una vía

anova_test(datos, dv = variable_dependiente, between = variable_independiente)

ANOVA de dos vías

anova_test(datos, dv = variable_dependiente, between = c(variable1, variable2))

Comparaciones Múltiples, Kruskal-Wallis y Prueba de Friedman Después de ANOVA, las comparaciones múltiples identifican dónde están las diferencias estadísticamente significativas.

Comparaciones múltiples

tukey_hsd(anova_modelo)

Prueba Kruskal-Wallis

kruskal_test(datos, dv = variable_dependiente, between = variable_independiente)

Prueba de Friedman

friedman_test(datos, dv = variable_dependiente, within = variable_independiente)

Prueba Mann-Whitney

Fórmula: No hay una fórmula simplificada para la prueba Mann-Whitney. Se basa en rangos y no asume normalidad.

Ejemplos Prácticos con Bases de Datos en R

Usaremos bases de datos como iris para ejemplificar pruebas estadísticas.

Prueba t para una Muestra

Fórmula: \[ t = \frac{\bar{x} - \mu}{s / \sqrt{n}} \] Donde ({x}) es la media de la muestra, () es la media poblacional, (s) es la desviación estándar de la muestra, y (n) es el tamaño de la muestra.

Ejemplo en R:

# Utilizando la base de datos iris
t.test(x = iris$Sepal.Length, mu = 5.8)
## 
##  One Sample t-test
## 
## data:  iris$Sepal.Length
## t = 0.64092, df = 149, p-value = 0.5226
## alternative hypothesis: true mean is not equal to 5.8
## 95 percent confidence interval:
##  5.709732 5.976934
## sample estimates:
## mean of x 
##  5.843333

Prueba t para dos Muestras

Fórmula:

\[ t = \frac{\bar{x} - \mu}{s / \sqrt{n}} \]

Donde ({x}) es la media de la muestra, () es la media poblacional, (s) es la desviación estándar de la muestra, y (n) es el tamaño de la muestra.

# Comparando dos especies en la base de datos iris
t.test(iris$Sepal.Length[iris$Species == "setosa"], 
       iris$Sepal.Length[iris$Species == "versicolor"])
## 
##  Welch Two Sample t-test
## 
## data:  iris$Sepal.Length[iris$Species == "setosa"] and iris$Sepal.Length[iris$Species == "versicolor"]
## t = -10.521, df = 86.538, p-value < 2.2e-16
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
##  -1.1057074 -0.7542926
## sample estimates:
## mean of x mean of y 
##     5.006     5.936

Prueba Mann-Whitney

Fórmula: No hay una fórmula simplificada para la prueba Mann-Whitney. Se basa en rangos y no asume normalidad.

Ejemplo en R:

# Prueba Mann-Whitney entre dos especies
wilcox.test(iris$Sepal.Length[iris$Species == "setosa"], 
            iris$Sepal.Length[iris$Species == "virginica"],
            exact = FALSE)
## 
##  Wilcoxon rank sum test with continuity correction
## 
## data:  iris$Sepal.Length[iris$Species == "setosa"] and iris$Sepal.Length[iris$Species == "virginica"]
## W = 38.5, p-value < 2.2e-16
## alternative hypothesis: true location shift is not equal to 0

Ejercicios

Respuesta:

# Crear los vectores de datos para cada grupo
grupo1 <- c(129, 111, 140, 139, 144, 120, 131, 129, 131, 154, 119, 138, 142, 110, 140)
grupo2 <- c(138, 120, 137, 154, 148, 122, 131, 128, 140, 145, 131, 120, 144, 129, 141)

# Combinar los vectores en un dataframe
datos <- data.frame(grupo1, grupo2)

# Realizar la prueba t de dos muestras
resultado_prueba_t <- t.test(datos$grupo1, datos$grupo2)

#print(resultado_prueba_t)
grupo1 <- c(129,111, 140, 139, 144, 120, 131,129,131,154,119,138,142,110,140) 

length(grupo1)
## [1] 15
summary(grupo1)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   110.0   124.5   131.0   131.8   140.0   154.0
grupo2<- c(138,120,137,154,148,122,131,128,140,145,131,120,144,129,141)
length(grupo2)
## [1] 15
summary(grupo2)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   120.0   128.5   137.0   135.2   142.5   154.0
datos<-data.frame(grupo1,grupo2)

datos
##    grupo1 grupo2
## 1     129    138
## 2     111    120
## 3     140    137
## 4     139    154
## 5     144    148
## 6     120    122
## 7     131    131
## 8     129    128
## 9     131    140
## 10    154    145
## 11    119    131
## 12    138    120
## 13    142    144
## 14    110    129
## 15    140    141
summary(datos)
##      grupo1          grupo2     
##  Min.   :110.0   Min.   :120.0  
##  1st Qu.:124.5   1st Qu.:128.5  
##  Median :131.0   Median :137.0  
##  Mean   :131.8   Mean   :135.2  
##  3rd Qu.:140.0   3rd Qu.:142.5  
##  Max.   :154.0   Max.   :154.0
library(gtsummary)
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ forcats   1.0.0     ✔ stringr   1.5.1
## ✔ lubridate 1.9.3     ✔ tibble    3.2.1
## ✔ purrr     1.0.2     ✔ tidyr     1.3.0
## ✔ readr     2.1.4     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ rstatix::filter() masks dplyr::filter(), stats::filter()
## ✖ dplyr::lag()      masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(rstatix)

str(datos)
## 'data.frame':    15 obs. of  2 variables:
##  $ grupo1: num  129 111 140 139 144 120 131 129 131 154 ...
##  $ grupo2: num  138 120 137 154 148 122 131 128 140 145 ...
#gtsummary
datos %>% tbl_summary(statistic = all_continuous()~"{median} ({IQR})")
Characteristic N = 151
grupo1 131 (16)
grupo2 137 (14)
1 Median (IQR)
datos2 <- datos %>% gather(.,key   = grupos, value = Valores,
                                 1:2) #le indico qué columnas juntar

datos2
##    grupos Valores
## 1  grupo1     129
## 2  grupo1     111
## 3  grupo1     140
## 4  grupo1     139
## 5  grupo1     144
## 6  grupo1     120
## 7  grupo1     131
## 8  grupo1     129
## 9  grupo1     131
## 10 grupo1     154
## 11 grupo1     119
## 12 grupo1     138
## 13 grupo1     142
## 14 grupo1     110
## 15 grupo1     140
## 16 grupo2     138
## 17 grupo2     120
## 18 grupo2     137
## 19 grupo2     154
## 20 grupo2     148
## 21 grupo2     122
## 22 grupo2     131
## 23 grupo2     128
## 24 grupo2     140
## 25 grupo2     145
## 26 grupo2     131
## 27 grupo2     120
## 28 grupo2     144
## 29 grupo2     129
## 30 grupo2     141
datos2 %>% tbl_summary(by= grupos, statistic = all_continuous()~"{median} ({sd})") %>% add_p(test = everything() ~ "t.test")
Characteristic grupo1, N = 151 grupo2, N = 151 p-value2
Valores 131 (13) 137 (10) 0.4
1 Median (SD)
2 Welch Two Sample t-test
#rstatistix
datos %>% shapiro_test(grupo1)
## # A tibble: 1 × 3
##   variable statistic     p
##   <chr>        <dbl> <dbl>
## 1 grupo1       0.952 0.550
datos %>% shapiro_test(grupo2)
## # A tibble: 1 × 3
##   variable statistic     p
##   <chr>        <dbl> <dbl>
## 1 grupo2       0.961 0.715

Interpretación de los Resultados de la Prueba F Valor F Calculado: Este es el ratio de las varianzas de los dos grupos que estás comparando. Un valor F cercano a 1 sugiere que las varianzas son similares, mientras que un valor significativamente mayor o menor que 1 indica diferencias en las varianzas.

Valor p:

Calculo prueba F

Usamos la función var.test

# Realizar la prueba F para igualdad de varianzas
resultado_prueba_F <- var.test(grupo1, grupo2)

# Mostrar los resultados
print(resultado_prueba_F)
## 
##  F test to compare two variances
## 
## data:  grupo1 and grupo2
## F = 1.4459, num df = 14, denom df = 14, p-value = 0.4992
## alternative hypothesis: true ratio of variances is not equal to 1
## 95 percent confidence interval:
##  0.4854433 4.3068448
## sample estimates:
## ratio of variances 
##           1.445935

Basado en el valor p y el intervalo de confianza, no hay evidencia suficiente para afirmar que existe una diferencia significativa en las varianzas entre los dos grupos. Por lo tanto, se puede asumir homocedasticidad (igualdad de varianzas) para análisis posteriores que asuman esta condición.

Por lo tanto usamos la función var.equal y el boleano TRUE

#baseR
t.test(datos$grupo1, datos$grupo2, var.equal =TRUE, paired = TRUE)
## 
##  Paired t-test
## 
## data:  datos$grupo1 and datos$grupo2
## t = -1.3994, df = 14, p-value = 0.1835
## alternative hypothesis: true mean difference is not equal to 0
## 95 percent confidence interval:
##  -8.61093  1.81093
## sample estimates:
## mean difference 
##            -3.4

Prueba de rangos wilcoxon U de Mann-Whitney

Se desea probar si hay diferencias en el nivel de estrés entre enfermeras de terapia intensiva ( X1 ) y de las de urgencias (X2) , el nivel de estrés se midió en una escala de 0 = nada, 1 = bajo, 2 = medio, 3 = alto, 4 = muy alto.

Ejercicio

x1<- c(3,2,1,1,0,2,1)

length(x1)
## [1] 7
summary(x1)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   0.000   1.000   1.000   1.429   2.000   3.000
x2 <- c(4,3,2,2,1,2,NA)

length(x2)
## [1] 7
summary(x2)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##   1.000   2.000   2.000   2.333   2.750   4.000       1

normalidad

library(tidyverse)
library(rstatix)
data2 <- data.frame(x1, x2)

#normalidad
#rstatistix
data2 %>% shapiro_test(x1)
## # A tibble: 1 × 3
##   variable statistic     p
##   <chr>        <dbl> <dbl>
## 1 x1           0.937 0.609
data2 %>% shapiro_test(x2)
## # A tibble: 1 × 3
##   variable statistic     p
##   <chr>        <dbl> <dbl>
## 1 x2           0.915 0.473

Wilcoxon U de Mann-whitney

wilcox.test(x1,x2, paired = FALSE)
## 
##  Wilcoxon rank sum test with continuity correction
## 
## data:  x1 and x2
## W = 11, p-value = 0.1559
## alternative hypothesis: true location shift is not equal to 0

Introducción al ANOVA

El análisis de varianza (ANOVA) es una técnica estadística utilizada para comparar las medias de tres o más grupos.

Conceptos Clave

ANOVA de una Vía

Fórmula: \[ F = \frac{\text{Varianza entre grupos}}{\text{Varianza dentro de los grupos}} \]

La función para R es: aov

# Código para ANOVA de una vía en R
library(tidyverse)
data(iris)
res.aov <- aov(Sepal.Length ~ Species, data = iris)
summary(res.aov)
##              Df Sum Sq Mean Sq F value Pr(>F)    
## Species       2  63.21  31.606   119.3 <2e-16 ***
## Residuals   147  38.96   0.265                   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

ANOVA de una Vía

Conceptos Teóricos

El ANOVA de una vía se utiliza para comparar las medias de tres o más grupos independientes, bajo la hipótesis de que todas las medias son iguales. Las hipótesis para esta prueba son:

Ejemplo en R

Trabajaremos con la base de datos PlantGrowth

# Cargamos los datos
data("PlantGrowth")
my_data <- PlantGrowth

# Realizamos el ANOVA
res.aov <- aov(weight ~ group, data = my_data)

summary(res.aov)
##             Df Sum Sq Mean Sq F value Pr(>F)  
## group        2  3.766  1.8832   4.846 0.0159 *
## Residuals   27 10.492  0.3886                 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Verificación de Asunciones (Supuestos)

Antes de interpretar los resultados del ANOVA, debemos verificar las asunciones de normalidad y homogeneidad de varianzas.

Homogeneidad de Varianzas La homogeneidad de las varianzas puede ser probada con la prueba de Levene Bartlett en R, que es sensible a la normalidad:

bartlett.test(weight ~ group, data = my_data)
## 
##  Bartlett test of homogeneity of variances
## 
## data:  weight by group
## Bartlett's K-squared = 2.8786, df = 2, p-value = 0.2371
library(car)
## Loading required package: carData
## 
## Attaching package: 'car'
## The following object is masked from 'package:purrr':
## 
##     some
## The following object is masked from 'package:dplyr':
## 
##     recode
leveneTest(weight ~ group, data = my_data)
## Levene's Test for Homogeneity of Variance (center = median)
##       Df F value Pr(>F)
## group  2  1.1192 0.3412
##       27

Un valor p mayor a 0.05 en estas pruebas indica que no hay evidencia suficiente para rechazar la hipótesis de que las varianzas son iguales.

Graficos para verificar supuestos

la función clave es plot , para visualizarlos de manera visual

Hoogeneidad de Varianza

Gráficos de residuos vs. valores ajustados: Verifican la homogeneidad de las varianzas.

# Verificación de supuestos
# Homogeneidad de varianzas
plot(res.aov, 1)

cómo interpretar este gráfico:

NORMALIDAD (SUPUESTO)

Para verificar la normalidad de los residuos en R, se utiliza la prueba de Shapiro-Wilk, que es adecuada para muestras pequeñas. La función en R es:

Gráficos Q-Q y Residuos vs. Valores Ajustados

Los gráficos Q-Q y los gráficos de residuos versus valores ajustados también son herramientas visuales útiles para evaluar los supuestos de normalidad y homocedasticidad:

# Normalidad
plot(res.aov, 2)

Un valor p mayor a 0.05 sugiere que no hay evidencia suficiente para rechazar la hipótesis de normalidad.

Análisis Post-hoc

Conceptos Teóricos La prueba de Tukey HSD compara todas las diferencias posibles entre las medias y es adecuada cuando todas las muestras tienen el mismo tamaño. Es una prueba conservadora que controla la tasa de error familiar (Family-Wise Error Rate, FWER).

# Tukey HSD para comparaciones múltiples
TukeyHSD(res.aov)
##   Tukey multiple comparisons of means
##     95% family-wise confidence level
## 
## Fit: aov(formula = weight ~ group, data = my_data)
## 
## $group
##             diff        lwr       upr     p adj
## trt1-ctrl -0.371 -1.0622161 0.3202161 0.3908711
## trt2-ctrl  0.494 -0.1972161 1.1852161 0.1979960
## trt2-trt1  0.865  0.1737839 1.5562161 0.0120064

Interpretación de Resultados

Los resultados mostrarán pares de grupos con su diferencia de medias, intervalos de confianza y valores p ajustados. Las diferencias con un valor p ajustado menor a 0.05 son consideradas estadísticamente significativas.

Otras Pruebas Post Hoc

Además de la prueba de Tukey, hay varias otras pruebas post hoc que pueden ser adecuadas dependiendo de las circunstancias, como la prueba de Bonferroni, la prueba de Dunnett, la prueba de Scheffé, entre otras.

Otras Pruebas Post Hoc

Existen otras pruebas post-hoc que pueden ser útiles dependiendo de la situación:

pairwise.t.test(PlantGrowth$weight, PlantGrowth$group, p.adjust.method = "bonferroni")
## 
##  Pairwise comparisons using t tests with pooled SD 
## 
## data:  PlantGrowth$weight and PlantGrowth$group 
## 
##      ctrl  trt1 
## trt1 0.583 -    
## trt2 0.263 0.013
## 
## P value adjustment method: bonferroni

La prueba de Bonferroni ajusta los valores p dividiendo el nivel de significancia por el número de comparaciones. Es una prueba muy conservadora.

Otras Pruebas Post Hoc

# Ajustar el modelo ANOVA
modelo_aov <- aov(weight ~ group, data = my_data)
library(multcomp)
## Loading required package: mvtnorm
## Loading required package: survival
## Loading required package: TH.data
## Loading required package: MASS
## 
## Attaching package: 'MASS'
## The following object is masked from 'package:gtsummary':
## 
##     select
## The following object is masked from 'package:rstatix':
## 
##     select
## The following object is masked from 'package:dplyr':
## 
##     select
## 
## Attaching package: 'TH.data'
## The following object is masked from 'package:MASS':
## 
##     geyser
summary(glht(modelo_aov, linfct = mcp(group = "Dunnett")))
## 
##   Simultaneous Tests for General Linear Hypotheses
## 
## Multiple Comparisons of Means: Dunnett Contrasts
## 
## 
## Fit: aov(formula = weight ~ group, data = my_data)
## 
## Linear Hypotheses:
##                  Estimate Std. Error t value Pr(>|t|)
## trt1 - ctrl == 0  -0.3710     0.2788  -1.331    0.323
## trt2 - ctrl == 0   0.4940     0.2788   1.772    0.153
## (Adjusted p values reported -- single-step method)

La prueba de Dunnett compara todos los tratamientos contra un control. Es útil cuando se tiene un grupo de control claro y se desea comparar todos los otros tratamientos con él.

Conclusión

Recuerda que la elección de la prueba post-hoc depende del diseño de tu estudio y de las preguntas específicas de investigación que estás tratando de responder.

ANOVA de dos Vías

Utilizada para entender si hay una interacción entre dos factores independientes.

# Código para ANOVA de dos vías en R
res.aov2 <- aov(Sepal.Length ~ Species + Sepal.Width, data = iris)
summary(res.aov2)
##              Df Sum Sq Mean Sq F value   Pr(>F)    
## Species       2  63.21  31.606   164.8  < 2e-16 ***
## Sepal.Width   1  10.95  10.953    57.1 4.19e-12 ***
## Residuals   146  28.00   0.192                     
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

ANOVA de Dos Vías

Conceptos Teóricos El ANOVA de dos vías extiende el de una vía al incluir dos factores independientes. Se utiliza para evaluar si hay una interacción entre los dos factores en su efecto sobre la variable dependiente continua. Además, permite evaluar la interacción entre estos dos factores, es decir, si el efecto de un factor depende del nivel del otro factor.

En el ANOVA de dos vías, se plantean tres conjuntos de hipótesis:

Ejemplo Práctico en R

Utilizaremos el conjunto de datos ToothGrowth, incluido en R, que contiene datos sobre el crecimiento del diente en cobayas en función de la dosis de vitamina C y el tipo de entrega de la vitamina (VC o OJ).

# Cargamos los datos
data("ToothGrowth")
head(ToothGrowth)
##    len supp dose
## 1  4.2   VC  0.5
## 2 11.5   VC  0.5
## 3  7.3   VC  0.5
## 4  5.8   VC  0.5
## 5  6.4   VC  0.5
## 6 10.0   VC  0.5
# Realizamos ANOVA de dos vías
res.aov2 <- aov(len ~ supp + dose + supp:dose, data = ToothGrowth)
summary(res.aov2)
##             Df Sum Sq Mean Sq F value   Pr(>F)    
## supp         1  205.4   205.4  12.317 0.000894 ***
## dose         1 2224.3  2224.3 133.415  < 2e-16 ***
## supp:dose    1   88.9    88.9   5.333 0.024631 *  
## Residuals   56  933.6    16.7                     
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Verificación de Supuestos en ANOVA de Dos Vías

Para que los resultados del ANOVA de dos vías sean válidos, se deben cumplir varios supuestos, incluyendo normalidad y homogeneidad de varianzas.

# Verificamos la normalidad de los residuales
qqnorm(residuals(res.aov2))

# Prueba de Shapiro-Wilk
shapiro.test(residuals(res.aov2))
## 
##  Shapiro-Wilk normality test
## 
## data:  residuals(res.aov2)
## W = 0.98162, p-value = 0.5008
# Verificamos la homogeneidad de las varianzas
library(car)
leveneTest(len ~ supp, data = ToothGrowth)
## Levene's Test for Homogeneity of Variance (center = median)
##       Df F value Pr(>F)
## group  1  1.2136 0.2752
##       58

Si se violan estos supuestos, se pueden considerar transformaciones de datos o utilizar técnicas estadísticas alternativas, como modelos lineales mixtos o métodos no paramétricos.

Interpretación de los Resultados

Pruebas Post Hoc

Pruebas Post Hoc

Ejemplo Práctico en R con Prueba de Tukey

Volvamos al conjunto de datos ToothGrowth y realicemos una prueba post hoc de Tukey para investigar las diferencias entre los grupos.

# ANOVA de dos vías
res.aov2 <- aov(len ~ supp + dose + supp:dose, data = ToothGrowth)

# Prueba de Tukey
TukeyHSD(res.aov2, "supp")
##   Tukey multiple comparisons of means
##     95% family-wise confidence level
## 
## Fit: aov(formula = len ~ supp + dose + supp:dose, data = ToothGrowth)
## 
## $supp
##       diff       lwr       upr     p adj
## VC-OJ -3.7 -5.811942 -1.588058 0.0008936

Interpretación de los Resultados de la Prueba de Tukey

La salida de la prueba de Tukey incluirá diferencias de medias estimadas entre grupos, intervalos de confianza y p-valores ajustados. Un p-valor (<0.05) ajustado bajo indica una diferencia significativa entre ese par específico de grupos.

Otras Pruebas Post Hoc Si necesitas utilizar otro tipo de pruebas post hoc, R ofrece funciones específicas o paquetes para realizarlas. Por ejemplo, para la prueba de Bonferroni puedes usar la función pairwise.t.test con el argumento p.adjust.method = "bonferroni".

pairwise.t.test(ToothGrowth$len, ToothGrowth$supp, p.adjust.method = "bonferroni")
## 
##  Pairwise comparisons using t tests with pooled SD 
## 
## data:  ToothGrowth$len and ToothGrowth$supp 
## 
##    OJ  
## VC 0.06
## 
## P value adjustment method: bonferroni

La interpretación es como sigue:

Interpretación del P-Valor:

No Significativamente Diferente:

Un p-valor de 0.06, que es mayor que el umbral convencional de 0.05, sugiere que no hay una diferencia estadísticamente significativa en la longitud del crecimiento del diente entre los grupos que recibieron VC y los que recibieron OJ. Cercano al Umbral: Sin embargo, el valor es relativamente cercano al umbral de 0.05, lo que puede indicar una tendencia o una diferencia que podría ser explorada más a fondo en estudios adicionales o con un mayor tamaño de muestra.

Método de Ajuste de Bonferroni:

Este método es conocido por ser conservador, lo que significa que tiende a reducir el riesgo de encontrar falsos positivos (error de Tipo I). Este ajuste es especialmente importante en análisis con múltiples comparaciones, ya que el riesgo de encontrar diferencias significativas por casualidad aumenta con el número de comparaciones realizadas.

Desviación Estándar Agrupada:

La prueba utiliza una desviación estándar agrupada, lo que implica que se asume que las varianzas en los grupos comparados son iguales.

Conclusión

En resumen, el ANOVA de dos vías en R permite investigar no solo los efectos individuales de dos factores independientes, sino también cómo estos factores interactúan entre sí en relación con una variable dependiente continua. La verificación de supuestos es crucial para la validez de las conclusiones del ANOVA.

ANOVA de tres Vías

No es común en conjuntos de datos pequeños debido a la complejidad en la interpretación de interacciones.

# ANOVA de tres vías no está demostrado debido a la simplicidad del conjunto de datos iris