Análisis Estadístico Básico

Estadística descriptiva: medidas de tendencia central y dispersión

La estadística descriptiva se utiliza para resumir y describir las características de un conjunto de datos. Las medidas de tendencia central (media, mediana, moda) describen el centro de los datos, mientras que las medidas de dispersión (rango, varianza, desviación estándar) indican cómo se distribuyen los datos alrededor de ese centro. Estas medidas son fundamentales para entender la distribución y variabilidad de los datos.

Código:

				
					# Cargar un data frame de ejemplo
datos <- data.frame(
  valores = c(10, 20, 30, 40, 50, 60, 70, 80, 90, 100)
)

# Medidas de tendencia central
media <- mean(datos$valores)        # Media
mediana <- median(datos$valores)    # Mediana
moda <- as.numeric(names(sort(table(datos$valores), decreasing=TRUE))[1])  # Moda

# Medidas de dispersión
rango <- range(datos$valores)       # Rango
varianza <- var(datos$valores)      # Varianza
desviacion_estandar <- sd(datos$valores)  # Desviación estándar

# Resultados
resultado <- data.frame(
  Media = media,
  Mediana = mediana,
  Moda = moda,
  Rango_Min = rango[1],
  Rango_Max = rango[2],
  Varianza = varianza,
  Desviacion_Estandar = desviacion_estandar
)

print(resultado)

				
			

Explicación del código:

  1. Medidas de Tendencia Central:

    • Media: Calcula el promedio de los datos utilizando la función mean(). En el código, mean(datos$valores) devuelve la media de la columna valores.
    • Mediana: Calcula el valor central de los datos ordenados utilizando la función median(). En el código, median(datos$valores) devuelve la mediana de la columna valores.
    • Moda: La moda es el valor que aparece con mayor frecuencia en el conjunto de datos. Aunque no hay una función directa para calcularla en R, puedes usar table() para contar las frecuencias y sort() para ordenar las frecuencias en orden descendente. as.numeric(names(sort(table(datos$valores), decreasing=TRUE))[1]) devuelve la moda de la columna valores.
  2. Medidas de Dispersión:

    • Rango: Calcula la diferencia entre el valor máximo y mínimo utilizando la función range(). En el código, range(datos$valores) devuelve un vector con los valores mínimo y máximo de la columna valores.
    • Varianza: Mide la dispersión de los datos alrededor de la media utilizando la función var(). En el código, var(datos$valores) devuelve la varianza de la columna valores.
    • Desviación Estándar: Calcula la raíz cuadrada de la varianza utilizando la función sd(). En el código, sd(datos$valores) devuelve la desviación estándar de la columna valores.
  3. Resultados:

    • El código crea un data frame resultado que resume todas las medidas calculadas. Cada columna del data frame corresponde a una medida estadística (Media, Mediana, Moda, Rango Mínimo, Rango Máximo, Varianza, Desviación Estándar).
    • Finalmente, print(resultado) imprime el data frame resultado con las medidas calculadas.

Estas medidas de estadística descriptiva te permiten tener una comprensión clara de la distribución y variabilidad de tus datos.

Pruebas de hipótesis: pruebas t, ANOVA

Las pruebas de hipótesis son herramientas estadísticas que permiten tomar decisiones basadas en datos muestrales. Dos pruebas comunes son la prueba t y el análisis de varianza (ANOVA). La prueba t se utiliza para comparar las medias de dos grupos, mientras que ANOVA se utiliza para comparar las medias de tres o más grupos. Ambas pruebas ayudan a determinar si existen diferencias significativas entre las medias de los grupos.

Código:

				
					# Cargar paquetes necesarios
library(ggplot2)

# Datos de ejemplo
set.seed(123)
grupo_A <- rnorm(30, mean = 5, sd = 1)
grupo_B <- rnorm(30, mean = 6, sd = 1)

# Data frame para ANOVA
datos_anova <- data.frame(
  valores = c(grupo_A, grupo_B),
  grupo = rep(c("A", "B"), each = 30)
)

# Prueba t: comparar medias de dos grupos
prueba_t <- t.test(grupo_A, grupo_B, var.equal = TRUE)

# ANOVA: comparar medias de tres o más grupos
anova_resultado <- aov(valores ~ grupo, data = datos_anova)

# Resumen de resultados
resultado_t <- data.frame(
  Prueba = "t-test",
  Estadístico_t = prueba_t$statistic,
  p_valor = prueba_t$p.value
)

resultado_anova <- data.frame(
  Prueba = "ANOVA",
  Estadístico_F = summary(anova_resultado)[[1]][["F value"]][1],
  p_valor = summary(anova_resultado)[[1]][["Pr(>F)"]][1]
)

resultados <- rbind(resultado_t, resultado_anova)

print(resultados)

				
			

Explicación del código:

  1. Datos de Ejemplo:

    • Se crean dos conjuntos de datos grupo_A y grupo_B utilizando la función rnorm(), que genera números aleatorios con una distribución normal. grupo_A tiene una media de 5 y una desviación estándar de 1, mientras que grupo_B tiene una media de 6 y una desviación estándar de 1.
  2. Prueba t:

    • La prueba t se realiza utilizando la función t.test(), que compara las medias de los dos grupos. El argumento var.equal = TRUE asume que las varianzas de los dos grupos son iguales. El resultado de la prueba t se almacena en prueba_t, y el estadístico t y el valor p se extraen y almacenan en resultado_t.
  3. ANOVA:

    • Para realizar el ANOVA, primero se crea un data frame datos_anova que contiene los valores de ambos grupos y una columna grupo que indica a qué grupo pertenece cada valor.
    • La prueba ANOVA se realiza utilizando la función aov(), que analiza la variancia de los datos agrupados por grupo. El resultado de la ANOVA se almacena en anova_resultado, y el estadístico F y el valor p se extraen y almacenan en resultado_anova.
  4. Resumen de Resultados:

    • Los resultados de la prueba t y la ANOVA se combinan en un data frame resultados utilizando rbind().
    • Finalmente, print(resultados) imprime el data frame con los resultados de ambas pruebas, mostrando los estadísticos y valores p correspondientes.

Regresión: regresión lineal y múltiple

La regresión es una técnica estadística utilizada para modelar y analizar las relaciones entre variables. La regresión lineal simple se utiliza para modelar la relación entre una variable dependiente y una variable independiente. La regresión múltiple extiende este concepto a múltiples variables independientes. Ambas técnicas permiten hacer predicciones y evaluar el impacto de las variables independientes sobre la variable dependiente.

Código:

				
					# Cargar el paquete ggplot2 para visualización
library(ggplot2)

# Crear un data frame de ejemplo
set.seed(123)
datos <- data.frame(
  x1 = rnorm(100, mean = 50, sd = 10),
  x2 = rnorm(100, mean = 30, sd = 5),
  y = rnorm(100, mean = 10, sd = 2)
)
datos$y <- 3 + 0.5 * datos$x1 + 0.3 * datos$x2 + rnorm(100)

# Regresión lineal simple
modelo_lineal_simple <- lm(y ~ x1, data = datos)
resumen_lineal_simple <- summary(modelo_lineal_simple)

# Regresión lineal múltiple
modelo_lineal_multiple <- lm(y ~ x1 + x2, data = datos)
resumen_lineal_multiple <- summary(modelo_lineal_multiple)

# Visualización de la regresión lineal simple
ggplot(datos, aes(x = x1, y = y)) +
  geom_point() +
  geom_smooth(method = "lm", col = "red") +
  labs(title = "Regresión Lineal Simple", x = "x1", y = "y")

# Resultados de los modelos
resultados <- data.frame(
  Modelo = c("Lineal Simple", "Lineal Múltiple"),
  R2 = c(resumen_lineal_simple$r.squared, resumen_lineal_multiple$r.squared),
  p_valor = c(resumen_lineal_simple$coefficients[2, 4], resumen_lineal_multiple$coefficients[2, 4])
)

print(resultados)

				
			

Explicación del código:

  1. Creación de Datos:

    • Se crea un data frame datos con 100 observaciones y tres variables: x1, x2 y y. x1 y x2 son generadas usando rnorm() para simular datos normalmente distribuidos.
    • La variable dependiente y se genera como una combinación lineal de x1 y x2 con algunos errores aleatorios para simular la relación entre las variables.
  2. Regresión Lineal Simple:

    • El modelo de regresión lineal simple se ajusta utilizando lm(y ~ x1, data = datos), donde y es la variable dependiente y x1 es la variable independiente.
    • El resumen del modelo (summary(modelo_lineal_simple)) proporciona detalles como el coeficiente de determinación (R²), los coeficientes de la regresión y sus significancias.
  3. Regresión Lineal Múltiple:

    • El modelo de regresión lineal múltiple se ajusta utilizando lm(y ~ x1 + x2, data = datos), donde y es la variable dependiente y x1 y x2 son las variables independientes.
    • El resumen del modelo (summary(modelo_lineal_multiple)) proporciona detalles similares al modelo simple pero con múltiples predictores.
  4. Visualización:

    • La visualización de la regresión lineal simple se realiza con ggplot2. geom_point() agrega puntos de dispersión, y geom_smooth(method = "lm", col = "red") agrega la línea de regresión ajustada.
    • labs(title = "Regresión Lineal Simple", x = "x1", y = "y") establece el título y las etiquetas de los ejes.
  5. Resultados:

    • Los resultados de los modelos se almacenan en un data frame resultados, incluyendo el coeficiente de determinación (R²) y los valores p de los coeficientes de x1 en ambos modelos.
    • print(resultados) imprime el data frame con los resultados, proporcionando una comparación entre los modelos de regresión lineal simple y múltiple.