# Las relaciones entre variables
```{r}
#| echo: false
#| message: false
#| warning: false
source("script.R")
```
Los capítulos anteriores se han centrado en describir y visualizar variables de
forma individual (análisis univariante). Sin embargo, el corazón del análisis en
investigación de mercados reside en comprender cómo se relacionan las variables
entre sí. ¿Una campaña de marketing aumenta las ventas? ¿La satisfacción depende
del precio percibido? ¿El método de venta influye en la conversión? Todas estas
preguntas investigan la **relación entre variables**.
Este capítulo se adentra en la **estadística inferencial**: la rama que permite
pasar de describir una muestra a hacer afirmaciones sobre la población de la que
procede. Se desarrollan aquí las pruebas paramétricas fundamentales: comparación
de medias y proporciones, ANOVA, correlación y regresión lineal simple.
Parte de la base teórica de este capítulo se apoya en @ho2013handbook, donde se
desarrolla con claridad el marco conceptual del contraste de hipótesis.
## De la descripción a la inferencia
El análisis estadístico abarca dos grandes áreas: la estadística descriptiva y
la estadística inferencial.
- **Estadística descriptiva**: organiza, resume y presenta los datos de forma
comprensible. Frecuencias, medias, varianzas y gráficos pertenecen a esta
categoría. Es el paso indispensable previo a cualquier análisis.
- **Estadística inferencial**: utiliza los datos de una muestra para
generalizar, predecir o tomar decisiones sobre la **población**. Responde a la
pregunta: "el patrón que se observa en la muestra, ¿es real y generalizable, o
podría deberse al azar?"
Supóngase un experimento que prueba la eficacia de una bebida energética sobre
la memoria. Un grupo recibe la bebida (tratamiento) y otro un placebo (control);
se mide después el rendimiento en una prueba de memoria. El grupo de tratamiento
obtiene una media de 85 puntos y el de control, 81.
La estadística descriptiva constata que hay una diferencia de 4 puntos en la
muestra. La pregunta que responde la estadística inferencial es: **¿es esa
diferencia lo bastante grande como para concluir que la bebida funciona, o
podría deberse al azar de quién fue seleccionado para cada grupo?**
## El lenguaje de la inferencia: las hipótesis
Investigar consiste, en esencia, en formular y poner a prueba ideas sobre cómo
funciona el fenómeno estudiado.
### Hipótesis de investigación (H₁)
Es la afirmación que se quiere probar. Nace de una teoría, una observación o una
sospecha de negocio, y postula una diferencia, un efecto o una relación.
- *Ejemplo*: "La nueva bebida energética (H₁) *aumenta* el rendimiento en
pruebas de memoria".
- *Ejemplo*: "El gasto medio (H₁) *difiere* entre clientes con tarjeta de
fidelización y sin ella".
### Hipótesis nula (H₀)
La estadística inferencial procede de forma indirecta: en lugar de probar
directamente la hipótesis de investigación, se intenta **refutar su opuesto**,
la hipótesis nula. La H₀ afirma "no efecto", "no diferencia" o "no relación": es
la suposición de que cualquier patrón observado se debe únicamente al azar.
- *Ejemplo*: "(H₀) La bebida energética *no tiene ningún efecto* en el
rendimiento de memoria".
- *Ejemplo*: "(H₀) *No hay diferencia* en el gasto medio entre clientes con y
sin tarjeta de fidelización".
El proceso es similar a un juicio: la H₀ se presume cierta hasta que la
evidencia (los datos) demuestre lo contrario.
> **Clave**: si la evidencia muestral es suficientemente fuerte, se **rechaza la
> hipótesis nula (H₀)**. Al hacerlo, se encuentra apoyo indirecto para la
> **hipótesis de investigación (H₁)**.
## El proceso de decisión: significación y p-valor
### Nivel de significación (α)
Antes del análisis se establece un umbral de "rareza": el **nivel de
significación**, denotado α, que representa la probabilidad máxima de error que
se está dispuesto a asumir.
> **Definición**: el nivel de significación (α) es la probabilidad de rechazar
> H₀ cuando en realidad es verdadera (riesgo de "falso positivo").
Por convención, en ciencias sociales y en investigación de mercados, α se fija
en 0,05 (5%): se acepta concluir erróneamente que existe un efecto real en 5 de
cada 100 ocasiones.
### El p-valor
Una vez ejecutada la prueba estadística, esta devuelve el **p-valor**.
> **Definición**: el p-valor es la probabilidad de observar un resultado tan
> extremo (o más) como el obtenido en la muestra, **suponiendo que H₀ es
> cierta**.
Si una moneda lanzada 100 veces da 52 caras, ese resultado es muy probable bajo
el supuesto de que la moneda no está trucada (H₀), y el p-valor sería alto. Si
da 95 caras, ese resultado es extremadamente improbable bajo H₀, y el p-valor
sería muy bajo.
### La regla de decisión
- Si **p-valor ≤ α** (ej. p ≤ 0,05): el resultado es muy improbable bajo H₀. Se
**rechaza H₀**: hay un efecto estadísticamente significativo.
- Si **p-valor \> α** (ej. p \> 0,05): el resultado es razonablemente probable
bajo H₀. **No se rechaza H₀**: no hay evidencia suficiente para descartar el
azar.
## Hoja de ruta para el contraste de hipótesis en R
El proceso general que sigue este capítulo, y que coincide con el diagrama de
decisión presentado en el capítulo 3, es:
1. **Formular las hipótesis** (H₀ y H₁): ¿qué pregunta se quiere responder?
2. **Elegir el nivel de significación** (α), habitualmente 0,05.
3. **Verificar los supuestos del test**: para las pruebas paramétricas, la
normalidad de los datos y, en comparación de grupos, la homogeneidad de
varianzas.
4. **Seleccionar y ejecutar la prueba estadística** adecuada en R.
5. **Interpretar el p-valor** y decidir sobre H₀.
6. **Concluir** en el contexto del problema de negocio original.
### Comprobación de supuestos: normalidad
Las pruebas de este capítulo (prueba t, ANOVA) se denominan **paramétricas**
porque asumen que los datos siguen una **distribución normal**. SPSS recomienda
comprobar este supuesto con el test de Shapiro-Wilk para muestras pequeñas o
moderadas (n \< 50), y con Kolmogorov-Smirnov (con corrección de Lilliefors)
para muestras más grandes.
- **H₀**: la muestra proviene de una distribución normal.
- **H₁**: la muestra no proviene de una distribución normal.
La regla de decisión aquí es la inversa de lo habitual: interesa un **p-valor \>
0,05** para *no rechazar* H₀ y poder asumir normalidad.
```{r}
#| echo: true
set.seed(42)
# A sample that does follow a normal distribution
exam_scores_normal <- rnorm(n = 30, mean = 7.5, sd = 1.2)
# A sample that does NOT follow a normal distribution (right-skewed)
exam_scores_skewed <- rchisq(n = 30, df = 3)
# Shapiro-Wilk test for the normal sample
shapiro.test(exam_scores_normal)
```
El p-valor (`r round(shapiro.test(exam_scores_normal)$p.value, 3)`) es muy
superior a 0,05: no se rechaza H₀ y se asume normalidad.
```{r}
#| echo: true
shapiro.test(exam_scores_skewed)
```
El p-valor
(`r format(shapiro.test(exam_scores_skewed)$p.value, scientific = TRUE, digits = 3)`)
es claramente inferior a 0,05: se rechaza H₀. Para esta variable no procedería
una prueba paramétrica, y habría que recurrir a las alternativas no paramétricas
del próximo capítulo.
### Comprobación de supuestos: homogeneidad de varianzas
Cuando se comparan dos o más grupos, además de la normalidad es necesario
comprobar la **homogeneidad de varianzas** (homocedasticidad) entre ellos. SPSS
aplica de forma sistemática el **test de Levene** antes de cualquier comparación
de medias, y según su resultado utiliza la versión del test con o sin asunción
de igualdad de varianzas. Se sigue aquí el mismo procedimiento, con
`rstatix::levene_test()`.
- **H₀**: las varianzas de los grupos son iguales.
- **H₁**: las varianzas de los grupos son distintas.
## Pruebas de diferencia entre grupos
### Comparando las proporciones de dos grupos (test Z)
**Escenario**: se quiere saber si una nueva versión de un botón en una web
("versión B") consigue más clics que la versión anterior ("versión A").
- **H₀**: la proporción de clics es la misma en ambas versiones.
- **H₁**: la proporción de clics es diferente entre versiones.
El botón A se mostró a 150 usuarios y obtuvo 25 clics; el botón B se mostró a
160 usuarios y obtuvo 45 clics.
```{r}
#| echo: true
prop.test(x = c(25, 45), n = c(150, 160))
```
El p-valor (0,015) es inferior a 0,05: se **rechaza H₀**. Existe una diferencia
estadísticamente significativa en la tasa de clics entre el botón A (≈17%) y el
botón B (≈28%); la nueva versión es más efectiva.
### Comparando las medias de dos grupos independientes (prueba t)
**Escenario**: ¿el grupo que tomó la bebida energética (tratamiento) tiene una
puntuación de memoria significativamente distinta a la del grupo placebo
(control)? Son grupos **independientes**: los individuos de uno no tienen
relación con los del otro.
- **H₀**: la media de ambos grupos es igual.
- **H₁**: la media de ambos grupos es diferente.
```{r}
#| echo: true
set.seed(123)
energy_drink_data <- data.frame(
group = rep(c("Treatment", "Placebo"), each = 30),
score = c(rnorm(30, mean = 85, sd = 8),
rnorm(30, mean = 81, sd = 7))
)
```
Siguiendo el procedimiento de SPSS, primero se comprueba la homogeneidad de
varianzas con el test de Levene:
```{r}
#| echo: true
rstatix::levene_test(energy_drink_data, score ~ group)
```
El p-valor del test de Levene es superior a 0,05: no se rechaza la igualdad de
varianzas. Se aplica por tanto la prueba t asumiendo varianzas iguales
(`var.equal = TRUE`), tal y como SPSS reporta en la fila "Se han asumido
varianzas iguales":
```{r}
#| echo: true
rstatix::t_test(energy_drink_data, score ~ group, var.equal = TRUE, detailed = TRUE)
```
El p-valor es inferior a 0,05: se **rechaza H₀**. Existe una diferencia
estadísticamente significativa entre las puntuaciones medias de ambos grupos. La
bebida energética parece tener un efecto positivo sobre la memoria.
Conviene acompañar el contraste con el **tamaño del efecto** (d de Cohen), que
informa de la magnitud práctica de la diferencia, no solo de su significación
estadística:
```{r}
#| echo: true
rstatix::cohens_d(energy_drink_data, score ~ group, var.equal = TRUE)
```
### Comparando las medias de dos muestras dependientes (prueba t pareada)
**Escenario**: un centro de formación mide las habilidades de 25 empleados
**antes** y **después** de un curso intensivo. Las muestras son **dependientes**
(pareadas): cada medición "después" está ligada a la misma persona que la
medición "antes".
- **H₀**: la media de las puntuaciones no cambia (μ_antes = μ_después).
- **H₁**: la media de las puntuaciones cambia.
```{r}
#| echo: true
set.seed(101)
skill_before <- rnorm(25, mean = 60, sd = 10)
skill_after <- skill_before + rnorm(25, mean = 5, sd = 5)
skill_data <- data.frame(
id = rep(1:25, 2),
time = rep(c("Before", "After"), each = 25),
score = c(skill_before, skill_after)
)
rstatix::t_test(skill_data, score ~ time, paired = TRUE, detailed = TRUE)
```
El p-valor es extremadamente pequeño: se **rechaza H₀** con mucha confianza. El
programa de formación tuvo un efecto significativo sobre las habilidades
medidas.
### Comparando las medias de más de dos grupos (ANOVA)
**Escenario**: se prueba la eficacia de tres estrategias comerciales (A, B y C)
sobre las ventas semanales en 45 tiendas (15 por estrategia).
No se realizan tres pruebas t por pares (A-B, B-C, A-C) porque cada contraste
arrastra un 5% de probabilidad de error; al multiplicar comparaciones, la
probabilidad de cometer al menos un error se dispara. El ANOVA resuelve este
problema comparando las tres medias simultáneamente.
- **H₀**: las medias de ventas son iguales en las tres estrategias.
- **H₁**: al menos una media difiere de las demás.
```{r}
#| echo: true
set.seed(99)
sales_data <- data.frame(
strategy = rep(c("A", "B", "C"), each = 15),
sales = c(rnorm(15, mean = 25, sd = 4),
rnorm(15, mean = 30, sd = 4),
rnorm(15, mean = 26, sd = 4))
)
```
Como en el caso de dos grupos, SPSS comprueba primero la homogeneidad de
varianzas con Levene antes de interpretar la tabla ANOVA:
```{r}
#| echo: true
rstatix::levene_test(sales_data, sales ~ strategy)
```
Las varianzas pueden considerarse homogéneas (p \> 0,05). Se procede con el
ANOVA de un factor:
```{r}
#| echo: true
anova_model <- rstatix::anova_test(sales_data, sales ~ strategy)
anova_model
```
El p-valor de la tabla ANOVA es inferior a 0,05: se **rechaza H₀**. Existe una
diferencia estadísticamente significativa en las ventas medias entre al menos
dos de las estrategias.
El ANOVA indica *que* hay diferencia, pero no *dónde*. Para identificar qué
pares de grupos difieren se aplica una prueba **post-hoc**, habitualmente Tukey
HSD:
```{r}
#| echo: true
rstatix::tukey_hsd(sales_data, sales ~ strategy)
```
Las comparaciones con `p.adj < 0,05` señalan los pares de estrategias que
difieren significativamente entre sí. Esto permite identificar qué estrategia
concreta es superior, no solo que existe alguna diferencia en el conjunto.
### Comparando el efecto conjunto de dos factores (ANOVA factorial)
El ANOVA de un factor responde a una pregunta de la forma "¿afecta la variable X
a la variable Y?". Pero muchas decisiones de marketing son más complejas: no se
pregunta solo si el precio afecta a las ventas, sino si ese efecto **depende del
canal de distribución**, o si una campaña funciona de forma distinta según el
segmento de cliente al que se dirige. El **ANOVA factorial** (o de dos vías)
extiende el ANOVA de un factor para analizar el efecto simultáneo de **dos
variables independientes categóricas** sobre una variable dependiente
cuantitativa, y —lo más importante— permite detectar si existe una
**interacción** entre ambos factores.
**Escenario**: la misma cadena de tiendas del ejemplo anterior quiere evaluar
dos factores a la vez: la estrategia comercial (A, B, C) y el canal de venta
(Online, Físico). Se dispone de las ventas semanales de 60 tiendas, 10 por cada
combinación de estrategia y canal.
Un ANOVA factorial permite contrastar tres hipótesis distintas en un único
análisis:
- **Efecto principal de la estrategia**: H₀: la estrategia no afecta a las
ventas, una vez tenido en cuenta el canal.
- **Efecto principal del canal**: H₀: el canal no afecta a las ventas, una vez
tenida en cuenta la estrategia.
- **Efecto de interacción**: H₀: el efecto de la estrategia sobre las ventas es
el mismo independientemente del canal (no hay interacción).
La interacción es, con frecuencia, el resultado más interesante desde el punto
de vista de negocio: indica que la recomendación óptima no es universal, sino
que **depende del contexto**. Por ejemplo, que la estrategia C sea la mejor en
el canal online pero la peor en el canal físico es una interacción, y cambia por
completo la recomendación estratégica frente a lo que sugeriría mirar cada
factor por separado.
```{r}
#| echo: true
set.seed(77)
# Sales data with a deliberate interaction: strategy C works best online,
# but worst in physical stores
factorial_data <- data.frame(
strategy = rep(c("A", "B", "C"), each = 20),
channel = rep(rep(c("Online", "Fisico"), each = 10), times = 3)
) |>
dplyr::mutate(
sales = dplyr::case_when(
strategy == "A" & channel == "Online" ~ rnorm(dplyr::n(), 25, 4),
strategy == "A" & channel == "Fisico" ~ rnorm(dplyr::n(), 26, 4),
strategy == "B" & channel == "Online" ~ rnorm(dplyr::n(), 27, 4),
strategy == "B" & channel == "Fisico" ~ rnorm(dplyr::n(), 28, 4),
strategy == "C" & channel == "Online" ~ rnorm(dplyr::n(), 35, 4),
strategy == "C" & channel == "Fisico" ~ rnorm(dplyr::n(), 18, 4)
)
)
```
Antes de interpretar el ANOVA conviene visualizar la posible interacción con un
gráfico de medias por grupo: líneas paralelas sugieren ausencia de interacción;
líneas que se cruzan o divergen sugieren su presencia.
```{r}
#| label: fig-interaction-plot
#| fig-cap: Gráfico de interacción entre estrategia y canal de venta
#| echo: true
factorial_summary <- factorial_data |>
dplyr::group_by(strategy, channel) |>
dplyr::summarise(mean_sales = mean(sales), .groups = "drop")
ggplot2::ggplot(factorial_summary, ggplot2::aes(x = strategy, y = mean_sales,
color = channel, group = channel)) +
ggplot2::geom_line(linewidth = 1) +
ggplot2::geom_point(size = 3) +
ggplot2::scale_color_manual(values = c("#076fa2", "#c40000")) +
ggplot2::labs(x = "Estrategia comercial", y = "Ventas medias",
color = "Canal") +
ggplot2::theme_minimal()
```
Las líneas se cruzan de forma clara entre las estrategias B y C: una señal
visual fuerte de interacción, que el ANOVA factorial debe confirmar
estadísticamente.
Como en el ANOVA de un factor, se comprueba primero la homogeneidad de varianzas
entre las seis combinaciones de grupo:
```{r}
#| echo: true
rstatix::levene_test(factorial_data, sales ~ strategy * channel)
```
Con las varianzas homogéneas, se ejecuta el ANOVA factorial especificando ambos
factores y su interacción con `rstatix::anova_test()`:
```{r}
#| echo: true
factorial_anova <- rstatix::anova_test(factorial_data, sales ~ strategy * channel)
factorial_anova
```
**Lectura de la tabla**: cada fila contrasta una hipótesis distinta.
- **Efecto principal `strategy`**: p \< 0,05 — existe un efecto significativo de
la estrategia sobre las ventas.
- **Efecto principal `channel`**: p \< 0,05 — existe un efecto significativo del
canal sobre las ventas.
- **Interacción `strategy:channel`**: p \< 0,05 — existe una interacción
estadísticamente significativa entre ambos factores.
::: callout-important
## La interacción manda sobre los efectos principales
Cuando la interacción es significativa, los efectos principales deben
interpretarse con cautela: afirmar "la estrategia C es la mejor" sería engañoso,
porque su efecto depende por completo del canal. La conclusión correcta procede
de analizar los efectos simples —el efecto de la estrategia *dentro* de cada
nivel de canal— en lugar de promediar across todos los niveles del otro factor.
:::
Para analizar los efectos simples, se aplica un ANOVA de un factor (con su
correspondiente post-hoc) por separado dentro de cada canal:
```{r}
#| echo: true
# Simple effect of strategy, within each channel separately
factorial_data |>
dplyr::group_by(channel) |>
rstatix::anova_test(sales ~ strategy)
```
```{r}
#| echo: true
# Post-hoc comparisons within each channel
factorial_data |>
dplyr::group_by(channel) |>
rstatix::tukey_hsd(sales ~ strategy)
```
Los resultados confirman lo sugerido por el gráfico de interacción: en el canal
**online**, la estrategia C supera claramente a A y B; en el canal **físico**,
ocurre justo lo contrario, siendo la estrategia C la de peor desempeño. La
recomendación final no es "adoptar la estrategia C", sino una recomendación
condicionada al canal: estrategia C para el canal online, y A o B para el canal
físico.
Este ejemplo ilustra el valor añadido del ANOVA factorial frente a ejecutar dos
ANOVA de un factor por separado: solo el análisis conjunto, con su término de
interacción, permite detectar que la recomendación óptima depende del contexto,
una conclusión que pasaría completamente inadvertida si cada factor se analizara
de forma aislada.
## Pruebas de relación entre variables
Las pruebas anteriores responden preguntas sobre *diferencias* entre grupos. Las
siguientes responden preguntas sobre *asociación*: a medida que la variable X
cambia, ¿qué ocurre con la variable Y?
### Correlación: ¿están asociadas las variables?
La correlación cuantifica hasta qué punto dos variables cuantitativas están
relacionadas linealmente. Es una medida de asociación, **no de causalidad**.
**Escenario**: ¿existe relación entre las horas que un cliente dedica a
investigar un producto online antes de comprarlo y el importe final del ticket?
- **H₀**: no existe correlación lineal entre ambas variables (ρ = 0).
- **H₁**: existe correlación lineal entre ambas variables (ρ ≠ 0).
El coeficiente de correlación de Pearson (r) va de -1 a +1: cercano a +1 indica
correlación positiva fuerte, cercano a -1 indica correlación negativa fuerte, y
cercano a 0 indica ausencia de correlación lineal.
```{r}
#| echo: true
set.seed(321)
research_hours <- runif(n = 25, min = 2, max = 15)
ticket_amount <- 40 + (3.5 * research_hours) + rnorm(n = 25, mean = 0, sd = 8)
purchase_data <- data.frame(hours = research_hours, amount = ticket_amount)
```
Antes de calcular cualquier estadístico, conviene visualizar la relación con un
diagrama de dispersión:
```{r}
#| label: fig-scatter-correlation
#| fig-cap: Relación entre horas de investigación y ticket de compra
#| echo: true
ggplot2::ggplot(purchase_data, ggplot2::aes(x = hours, y = amount)) +
ggplot2::geom_point(color = "#076fa2", alpha = 0.7, size = 3) +
ggplot2::geom_smooth(method = "lm", color = "#c40000", se = TRUE) +
ggplot2::theme_minimal() +
ggplot2::labs(x = "Horas de investigación previa",
y = "Importe del ticket (€)")
```
Se observa una tendencia positiva clara: a más horas de investigación, mayor
importe de compra. El test de correlación de Pearson cuantifica esa relación:
```{r}
#| echo: true
rstatix::cor_test(purchase_data, hours, amount, method = "pearson")
```
El p-valor es extremadamente pequeño: se **rechaza H₀**. El coeficiente r ≈ 0,84
confirma una correlación positiva fuerte.
> **Atención**: correlación no implica causalidad. Aunque parezca lógico que
> investigar más derive en compras de mayor importe, el test solo indica que
> ambas variables se mueven juntas. Podría existir una tercera variable (por
> ejemplo, el nivel de implicación con la categoría de producto) que influya en
> ambas.
### Regresión lineal simple: ¿se puede predecir una variable a partir de otra?
La regresión va un paso más allá de la correlación: permite construir un
**modelo matemático** para predecir el valor de una variable (dependiente) a
partir de otra (independiente).
$$Y = \beta_0 + \beta_1 X + \varepsilon$$
- $Y$: variable a predecir (importe del ticket).
- $X$: variable predictora (horas de investigación).
- $\beta_0$ (intercepto): valor predicho de $Y$ cuando $X = 0$.
- $\beta_1$ (pendiente): cambio promedio en $Y$ por cada unidad de aumento en
$X$.
- $\varepsilon$ (error): parte de $Y$ que el modelo no explica.
**Escenario**: se quiere construir un modelo que prediga el importe del ticket a
partir de las horas de investigación previa.
- **H₀**: las horas de investigación no tienen efecto significativo sobre el
importe ($\beta_1 = 0$).
- **H₁**: las horas de investigación tienen efecto significativo sobre el
importe ($\beta_1 \neq 0$).
```{r}
#| echo: true
regression_model <- lm(amount ~ hours, data = purchase_data)
summary(regression_model)
```
**Lectura de los resultados**:
- El **intercepto** (β₀ ≈ 42,06): el modelo predice un importe de 42,06 € cuando
las horas de investigación son cero.
- El coeficiente de **hours** (β₁ ≈ 3,25): por cada hora adicional de
investigación, el modelo predice un aumento de 3,25 € en el ticket.
- El p-valor del coeficiente (`Pr(>|t|)`) es muy inferior a 0,05: se **rechaza
H₀**; las horas de investigación son un predictor estadísticamente
significativo.
- El **R² múltiple** (≈0,706) indica que el 70,6% de la variabilidad del importe
es explicado por las horas de investigación.
- El **estadístico F** y su p-valor contrastan la significación global del
modelo, llegando a la misma conclusión.
La ecuación del modelo resultante es:
$$\widehat{Importe} = 42{,}06 + 3{,}25 \times Horas$$
Para un cliente que dedica 10 horas a investigar, el importe predicho sería:
$42{,}06 + 3{,}25 \times 10 = 74{,}56 €$.
## ¿Y ahora qué?
Este capítulo ha construido la base de la **inferencia paramétrica**:
comparación de proporciones y medias, ANOVA de uno y dos factores (con su
correspondiente análisis de interacción), correlación y regresión lineal simple.
Todas estas técnicas comparten un requisito común que condiciona su validez: el
supuesto de **normalidad** de los datos (o de los residuos, en el caso de la
regresión).
¿Qué ocurre cuando los datos no cumplen ese supuesto? ¿Y cómo se analizan
relaciones cuando las variables son **cualitativas**, no numéricas — por
ejemplo, si el nivel educativo de un cliente está asociado a su plataforma de
streaming preferida, o si la valoración de un producto es independiente del sexo
del consumidor?
Una prueba t no puede calcular la media de "universidad", y una correlación de
Pearson no tiene sentido entre "sexo" y "opinión". Para responder a este tipo de
preguntas se necesita el conjunto de herramientas de la **inferencia no
paramétrica**, que se desarrolla en el capítulo siguiente: el test chi-cuadrado
para variables categóricas y las alternativas no paramétricas a la prueba t y al
ANOVA.