5  Las relaciones entre variables

Published

June 29, 2026

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 Ho (2013), donde se desarrolla con claridad el marco conceptual del contraste de hipótesis.

5.1 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?

5.2 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.

5.2.1 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”.

5.2.2 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₁).

5.3 El proceso de decisión: significación y p-valor

5.3.1 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.

5.3.2 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.

5.3.3 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.

5.4 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.

5.4.1 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.

Code
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)

    Shapiro-Wilk normality test

data:  exam_scores_normal
W = 0.96209, p-value = 0.35

El p-valor (0.35) es muy superior a 0,05: no se rechaza H₀ y se asume normalidad.

Code
shapiro.test(exam_scores_skewed)

    Shapiro-Wilk normality test

data:  exam_scores_skewed
W = 0.93188, p-value = 0.05509

El p-valor (5.51e-02) 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.

5.4.2 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.

5.5 Pruebas de diferencia entre grupos

5.5.1 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.

Code
prop.test(x = c(25, 45), n = c(150, 160))

    2-sample test for equality of proportions with continuity correction

data:  c(25, 45) out of c(150, 160)
X-squared = 5.1774, df = 1, p-value = 0.02288
alternative hypothesis: two.sided
95 percent confidence interval:
 -0.21274942 -0.01641725
sample estimates:
   prop 1    prop 2 
0.1666667 0.2812500 

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.

5.5.2 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.
Code
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:

Code
rstatix::levene_test(energy_drink_data, score ~ group)
Warning in leveneTest.default(y = y, group = group, ...): group coerced to
factor.
# A tibble: 1 × 4
    df1   df2 statistic      p
  <int> <int>     <dbl>  <dbl>
1     1    58      2.98 0.0899

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”:

Code
rstatix::t_test(energy_drink_data, score ~ group, var.equal = TRUE, detailed = TRUE)
# A tibble: 1 × 15
  estimate estimate1 estimate2 .y.   group1  group2     n1    n2 statistic     p
*    <dbl>     <dbl>     <dbl> <chr> <chr>   <chr>   <int> <int>     <dbl> <dbl>
1    -2.37      82.2      84.6 score Placebo Treatm…    30    30     -1.33 0.189
# ℹ 5 more variables: df <dbl>, conf.low <dbl>, conf.high <dbl>, method <chr>,
#   alternative <chr>

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:

Code
rstatix::cohens_d(energy_drink_data, score ~ group, var.equal = TRUE)
# A tibble: 1 × 7
  .y.   group1  group2    effsize    n1    n2 magnitude
* <chr> <chr>   <chr>       <dbl> <int> <int> <ord>    
1 score Placebo Treatment  -0.343    30    30 small    

5.5.3 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.
Code
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)
# A tibble: 1 × 13
  estimate .y.   group1 group2    n1    n2 statistic        p    df conf.low
*    <dbl> <chr> <chr>  <chr>  <int> <int>     <dbl>    <dbl> <dbl>    <dbl>
1     4.24 score After  Before    25    25      4.15 0.000358    24     2.13
# ℹ 3 more variables: conf.high <dbl>, method <chr>, alternative <chr>

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.

5.5.4 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.
Code
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:

Code
rstatix::levene_test(sales_data, sales ~ strategy)
Warning in leveneTest.default(y = y, group = group, ...): group coerced to
factor.
# A tibble: 1 × 4
    df1   df2 statistic     p
  <int> <int>     <dbl> <dbl>
1     2    42     0.262 0.771

Las varianzas pueden considerarse homogéneas (p > 0,05). Se procede con el ANOVA de un factor:

Code
anova_model <- rstatix::anova_test(sales_data, sales ~ strategy)
anova_model
ANOVA Table (type II tests)

    Effect DFn DFd      F        p p<.05   ges
1 strategy   2  42 12.536 5.38e-05     * 0.374

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:

Code
rstatix::tukey_hsd(sales_data, sales ~ strategy)
# A tibble: 3 × 9
  term     group1 group2 null.value estimate conf.low conf.high    p.adj
* <chr>    <chr>  <chr>       <dbl>    <dbl>    <dbl>     <dbl>    <dbl>
1 strategy A      B               0    6.79      3.19     10.4  0.000117
2 strategy A      C               0    0.825    -2.77      4.42 0.843   
3 strategy B      C               0   -5.96     -9.55     -2.37 0.000659
# ℹ 1 more variable: p.adj.signif <chr>

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.

5.5.5 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.

Code
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.

Code
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()
Figure 5.1: Gráfico de interacción entre estrategia y canal de venta

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:

Code
rstatix::levene_test(factorial_data, sales ~ strategy * channel)
# A tibble: 1 × 4
    df1   df2 statistic     p
  <int> <int>     <dbl> <dbl>
1     5    54     0.251 0.937

Con las varianzas homogéneas, se ejecuta el ANOVA factorial especificando ambos factores y su interacción con rstatix::anova_test():

Code
factorial_anova <- rstatix::anova_test(factorial_data, sales ~ strategy * channel)
factorial_anova
ANOVA Table (type II tests)

            Effect DFn DFd      F        p p<.05   ges
1         strategy   2  54  0.091 9.14e-01       0.003
2          channel   1  54 27.287 2.89e-06     * 0.336
3 strategy:channel   2  54 36.283 1.03e-10     * 0.573

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.
ImportantLa 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:

Code
# Simple effect of strategy, within each channel separately
factorial_data |>
  dplyr::group_by(channel) |>
  rstatix::anova_test(sales ~ strategy)
# A tibble: 2 × 8
  channel Effect     DFn   DFd     F          p `p<.05`   ges
* <chr>   <chr>    <dbl> <dbl> <dbl>      <dbl> <chr>   <dbl>
1 Fisico  strategy     2    27  18.6 0.00000826 *       0.58 
2 Online  strategy     2    27  17.7 0.0000122  *       0.568
Code
# Post-hoc comparisons within each channel
factorial_data |>
  dplyr::group_by(channel) |>
  rstatix::tukey_hsd(sales ~ strategy)
# A tibble: 6 × 10
  channel term     group1 group2 null.value estimate conf.low conf.high    p.adj
* <chr>   <chr>    <chr>  <chr>       <dbl>    <dbl>    <dbl>     <dbl>    <dbl>
1 Fisico  strategy A      B               0     2.12    -2.54      6.79  5.05e-1
2 Fisico  strategy A      C               0    -8.71   -13.4      -4.05  2.36e-4
3 Fisico  strategy B      C               0   -10.8    -15.5      -6.17  1.17e-5
4 Online  strategy A      B               0    -1.17    -5.66      3.32  7.96e-1
5 Online  strategy A      C               0     8.70     4.21     13.2   1.49e-4
6 Online  strategy B      C               0     9.87     5.38     14.4   2.67e-5
# ℹ 1 more variable: p.adj.signif <chr>

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.

5.6 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?

5.6.1 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.

Code
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:

Code
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 (€)")
`geom_smooth()` using formula = 'y ~ x'
Figure 5.2: Relación entre horas de investigación y ticket de compra

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:

Code
rstatix::cor_test(purchase_data, hours, amount, method = "pearson")
# A tibble: 1 × 8
  var1  var2     cor statistic          p conf.low conf.high method 
  <chr> <chr>  <dbl>     <dbl>      <dbl>    <dbl>     <dbl> <chr>  
1 hours amount   0.8      6.34 0.00000181    0.587     0.907 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.

5.6.2 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\)).
Code
regression_model <- lm(amount ~ hours, data = purchase_data)
summary(regression_model)

Call:
lm(formula = amount ~ hours, data = purchase_data)

Residuals:
     Min       1Q   Median       3Q      Max 
-14.8874  -6.4150  -0.6254   4.9606  20.2744 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  39.8573     5.1376   7.758 7.24e-08 ***
hours         3.4276     0.5407   6.339 1.81e-06 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 8.973 on 23 degrees of freedom
Multiple R-squared:  0.636, Adjusted R-squared:  0.6202 
F-statistic: 40.19 on 1 and 23 DF,  p-value: 1.81e-06

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 €\).

5.7 ¿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.