Vamos a contrastar si la distribución de Poisson es un modelo aceptable para el número de goles por partido y equipo en la liga española de fútbol. Para ello, consideramos los datos correspondientes a la temporada 2011-2012 (primera división) y vamos a contrastar la hipótesis nula de que los datos vienen de una distribución de Poisson mediante el test de bondad de ajuste \( \chi^2 \).
En esta primera parte consideramos todos los datos:
# Lee los datos (Fuente: http://www.lfp.es/Temporada/TablaResultados.aspx)
goles <- c(0, 2, 3, 0, 1, 2, 2, 0, 2, 1, 4, 1, 0, 3, 2, 0, 2, 3,
3, 0, 1, 2, 0, 0, 4, 0, 3, 0, 1, 0, 2, 2, 1, 1, 1, 2, 3, 1, 1, 2, 1, 0,
1, 3, 3, 0, 3, 0, 3, 2, 1, 1, 1, 2, 2, 1, 3, 0, 0, 3, 2, 1, 3, 0, 2, 1,
2, 1, 2, 0, 1, 0, 1, 2, 0, 1, 2, 3, 1, 2, 0, 3, 0, 0, 3, 0, 1, 1, 3, 0,
0, 0, 4, 0, 1, 1, 1, 0, 3, 1, 1, 0, 3, 1, 0, 0, 3, 2, 0, 0, 1, 0, 1, 0,
3, 0, 2, 1, 2, 0, 2, 1, 0, 2, 2, 1, 4, 1, 0, 0, 2, 0, 1, 1, 5, 0, 3, 0,
1, 0, 5, 0, 1, 0, 5, 0, 3, 1, 2, 1, 3, 1, 1, 1, 2, 2, 2, 0, 1, 3, 3, 0,
4, 1, 0, 2, 4, 1, 1, 3, 3, 0, 2, 3, 0, 1, 3, 0, 0, 4, 1, 1, 1, 0, 2, 0,
2, 4, 1, 0, 4, 1, 0, 1, 0, 4, 0, 3, 0, 0, 3, 1, 4, 1, 1, 0, 0, 0, 2, 2,
1, 3, 2, 3, 0, 0, 2, 1, 2, 1, 2, 0, 1, 2, 1, 2, 2, 2, 2, 0, 1, 2, 2, 1,
1, 1, 2, 0, 2, 1, 3, 1, 1, 2, 1, 0, 1, 1, 0, 0, 3, 1, 0, 0, 2, 1, 1, 2,
1, 4, 1, 0, 0, 1, 1, 2, 0, 3, 1, 1, 0, 1, 1, 3, 2, 2, 3, 1, 1, 0, 0, 0,
2, 0, 3, 0, 1, 4, 4, 1, 2, 0, 1, 2, 1, 2, 1, 2, 3, 1, 1, 3, 2, 3, 0, 1,
2, 1, 0, 0, 0, 4, 2, 2, 1, 0, 0, 1, 3, 0, 3, 0, 2, 1, 0, 0, 2, 0, 1, 1,
2, 1, 0, 0, 3, 3, 0, 2, 0, 2, 1, 0, 2, 2, 2, 1, 1, 0, 1, 5, 3, 1, 3, 0,
2, 1, 1, 0, 2, 0, 1, 2, 0, 1, 1, 2, 1, 0, 4, 1, 4, 0, 2, 3, 1, 0, 2, 2,
0, 1, 3, 4, 1, 0, 2, 0, 0, 3, 2, 0, 3, 0, 2, 1, 2, 0, 0, 0, 0, 1, 0, 0,
0, 1, 0, 4, 2, 0, 1, 0, 2, 2, 4, 1, 1, 2, 0, 0, 2, 0, 5, 1, 1, 0, 1, 1,
4, 0, 2, 0, 2, 0, 7, 0, 6, 1, 3, 0, 1, 0, 6, 1, 0, 1, 4, 1, 2, 3, 1, 0,
8, 1, 2, 0, 4, 2, 2, 1, 1, 2, 4, 1, 0, 3, 0, 1, 0, 0, 1, 1, 1, 2, 1, 0,
0, 0, 2, 0, 1, 3, 1, 1, 2, 1, 2, 0, 3, 2, 1, 0, 1, 1, 2, 2, 1, 0, 2, 2,
1, 0, 1, 1, 2, 0, 2, 0, 1, 1, 1, 2, 2, 2, 1, 0, 2, 0, 0, 1, 2, 1, 1, 3,
0, 0, 2, 0, 1, 0, 0, 2, 1, 1, 2, 4, 2, 0, 1, 0, 2, 1, 1, 1, 1, 3, 1, 1,
0, 2, 3, 0, 1, 0, 1, 0, 1, 2, 1, 0, 2, 1, 2, 1, 2, 3, 2, 0, 1, 2, 1, 0,
0, 1, 2, 1, 1, 3, 0, 2, 2, 1, 0, 0, 1, 0, 3, 5, 1, 0, 1, 0, 3, 2, 1, 3,
1, 1, 2, 2, 2, 1, 1, 2, 1, 0, 4, 0, 0, 3, 3, 1, 4, 3, 1, 0, 1, 1, 1, 3,
1, 0, 4, 1, 0, 0, 0, 0, 1, 2, 1, 2, 2, 6, 1, 1, 3, 0, 3, 1, 3, 1, 1, 3,
2, 0, 3, 2, 2, 2, 1, 3, 3, 2, 0, 8, 2, 3, 1, 1, 0, 1, 1, 1, 1, 1, 3, 2,
3, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 0, 1, 0, 3, 0, 0, 1, 1, 2, 1, 3, 3,
0, 1, 2, 0, 2, 0, 0, 0, 4, 3, 2, 0, 2, 1, 1, 2, 3, 6, 1, 0, 0, 0, 3, 0,
1, 1, 0, 1, 2, 1, 5, 0, 2, 0, 4, 1, 4, 2, 0, 1, 2, 1, 1, 0, 0, 1, 1, 1,
1, 0, 4, 0, 3, 1, 1, 3, 2, 0, 1, 1, 2, 1, 1, 0, 1, 0, 2, 0, 1, 1)
Se calculan las frecuencias observadas y esperadas bajo la hipótesis nula (se agrupan los datos mayores o iguales que 5 para que las frecuencias no sean demasiado bajas y la distribución \( \chi^2 \) aproxime adecuadamente la distribución del estadístico del test)
lambda <- mean(goles) # Estimación del parametro de la distribución de Poisson
obs <- table(goles) # Frecuencias observadas
prob <- dpois(0:8, lambda)
obs <- c(obs[1:5], sum(obs[6:9]))
prob <- c(dpois(0:4, lambda), 1 - sum(dpois(0:4, lambda))) # Probabilidades esperadas bajo H0 estimadas
Representación gráfica y tabla de las frecuencias observadas y esperadas bajo el modelo de Poisson:
matriz <- rbind(length(goles) * prob, obs)
colnames(matriz) <- seq(0, 5)
rownames(matriz) <- c("Poisson", "Frecuencias Obs.")
barplot(matriz, beside = TRUE, names.arg = c(0:5), legend.text = TRUE,
col = c("blue", "red"))
title("Goles por partido y equipo")
round(print(matriz), 1)
## 0 1 2 3 4 5
## Poisson 192.9 264.5 181.3 82.87 28.4 9.987
## Frecuencias Obs. 216.0 252.0 158.0 88.00 32.0 14.000
## 0 1 2 3 4 5
## Poisson 192.9 264.5 181.3 82.9 28.4 10
## Frecuencias Obs. 216.0 252.0 158.0 88.0 32.0 14
Se calcula el p-valor del contraste teniendo en cuenta que se pierde un grado de libertad por haber estimado el parámetro de la distribución de Poisson:
T = chisq.test(obs, p = prob)$statistic # Calcula el estadistico
pvalor = 1 - pchisq(T, 4) # Calcula el p-valor
pvalor
## X-squared
## 0.068
Al nivel de significación habitual \( \alpha = 0.05 \) no se rechaza la hipótesis nula (es decir, el modelo de Poisson es aceptable) aunque el p valor está muy próximo al nivel de significación.
Dada la gran diferencia que hubo la temporada 2011-12 entre Real Madrid y Barcelona y el resto de equipos, puede ser de interés repetir los cálculos excluyendo los datos correspondientes a estos dos equipos:
# Lee los datos (Fuente: http://www.lfp.es/Temporada/TablaResultados.aspx)
goles.sinByRM <- c(0, 2, 3, 0, 2, 0, 2, 1, 4, 1, 0, 3, 2, 0, 2, 3,
3, 0, 0, 0, 4, 0, 3, 0, 1, 0, 2, 2, 1, 1, 1, 2, 3, 1, 1, 2, 1, 0, 3, 0,
3, 0, 3, 2, 1, 1, 1, 2, 2, 1, 3, 0, 2, 1, 3, 0, 2, 1, 2, 1, 2, 0, 1, 0,
1, 2, 0, 1, 2, 3, 1, 2, 0, 0, 3, 0, 1, 1, 3, 0, 0, 0, 4, 0, 1, 1, 3, 1,
1, 0, 3, 1, 0, 0, 3, 2, 0, 0, 1, 0, 1, 0, 1, 1, 2, 2, 2, 0, 3, 0, 4, 1,
0, 2, 4, 1, 1, 3, 3, 0, 0, 1, 3, 0, 0, 4, 1, 1, 1, 0, 2, 0, 2, 4, 1, 0,
4, 1, 0, 1, 0, 4, 0, 0, 3, 1, 4, 1, 1, 0, 0, 0, 2, 2, 2, 3, 0, 0, 2, 1,
2, 1, 2, 0, 1, 2, 1, 2, 2, 2, 2, 0, 1, 2, 2, 1, 2, 0, 2, 1, 3, 1, 1, 2,
1, 0, 1, 1, 3, 1, 0, 0, 2, 1, 1, 2, 1, 4, 1, 0, 0, 1, 1, 2, 0, 3, 1, 1,
0, 1, 2, 2, 3, 1, 1, 0, 0, 0, 2, 0, 3, 0, 4, 1, 2, 0, 1, 2, 1, 2, 1, 2,
3, 1, 1, 3, 2, 3, 0, 1, 2, 1, 0, 0, 2, 2, 1, 0, 0, 1, 3, 0, 3, 0, 2, 1,
2, 0, 1, 1, 2, 1, 0, 0, 3, 3, 0, 2, 0, 2, 1, 0, 2, 2, 2, 1, 1, 0, 3, 1,
3, 0, 2, 1, 1, 0, 2, 0, 1, 2, 1, 2, 1, 0, 4, 1, 4, 0, 2, 3, 1, 0, 2, 2,
0, 1, 3, 4, 1, 0, 2, 0, 2, 0, 3, 0, 2, 1, 2, 0, 0, 0, 0, 1, 0, 1, 0, 4,
2, 0, 1, 0, 2, 2, 4, 1, 1, 2, 0, 0, 2, 1, 1, 2, 4, 1, 0, 1, 0, 0, 1, 1,
1, 2, 1, 0, 0, 0, 2, 0, 1, 1, 2, 1, 2, 0, 3, 2, 1, 0, 1, 1, 2, 2, 1, 0,
2, 2, 1, 0, 2, 0, 2, 0, 1, 1, 1, 2, 2, 2, 1, 0, 2, 0, 2, 1, 1, 3, 0, 0,
2, 0, 1, 0, 0, 2, 1, 1, 2, 4, 2, 0, 1, 0, 1, 1, 1, 3, 1, 1, 0, 2, 3, 0,
1, 0, 1, 0, 1, 0, 2, 1, 2, 1, 2, 3, 2, 0, 1, 2, 1, 0, 0, 1, 2, 1, 1, 3,
2, 1, 0, 0, 1, 0, 3, 5, 1, 0, 1, 0, 3, 2, 1, 1, 2, 2, 2, 1, 1, 2, 1, 0,
4, 0, 0, 3, 3, 1, 4, 3, 1, 0, 1, 3, 1, 0, 4, 1, 0, 0, 0, 0, 1, 2, 1, 2,
1, 1, 3, 0, 3, 1, 3, 1, 1, 3, 2, 0, 3, 2, 2, 2, 1, 3, 3, 2, 2, 3, 1, 1,
0, 1, 1, 1, 1, 1, 3, 2, 3, 1, 1, 1, 1, 1, 2, 2, 1, 1, 0, 1, 0, 3, 0, 0,
1, 1, 2, 1, 3, 3, 2, 0, 2, 0, 0, 0, 4, 3, 2, 0, 2, 1, 1, 2, 1, 0, 0, 0,
3, 0, 1, 1, 0, 1, 2, 1, 5, 0, 2, 0, 4, 1, 4, 2, 2, 1, 1, 0, 0, 1, 1, 1,
1, 0, 4, 0, 3, 1, 2, 0, 1, 1, 2, 1, 1, 0, 1, 0, 2, 0, 1, 1)
goles <- goles.sinByRM
Se calculan las frecuencias observadas y esperadas (se agrupan los datos mayores o iguales que 4 para que las frecuencias no sean demasiado bajas y la aproximación asintótica de la distribución \( \chi^2 \) sea más apropiada)
lambda <- mean(goles) # Estimación del parametro de la distribución de Poisson
obs <- table(goles) # Frecuencias observadas
prob <- dpois(0:5, lambda)
obs <- c(obs[1:4], sum(obs[5:6]))
prob <- c(dpois(0:3, lambda), 1 - sum(dpois(0:3, lambda))) # Probabilidades esperadas bajo H0 estimadas
Representación gráfica de las frecuencias esperadas y observadas:
matriz <- rbind(length(goles) * prob, obs)
colnames(matriz) <- seq(0, 4)
rownames(matriz) <- c("Poisson", "Frecuencias Obs.")
barplot(matriz, beside = TRUE, names.arg = c(0:4), legend.text = TRUE,
col = c("blue", "red"))
title("Goles por partido y equipo")
round(print(matriz), 1)
## 0 1 2 3 4
## Poisson 166.1 216.6 141.2 61.39 26.61
## Frecuencias Obs. 174.0 204.0 138.0 68.00 28.00
## 0 1 2 3 4
## Poisson 166.1 216.6 141.2 61.4 26.6
## Frecuencias Obs. 174.0 204.0 138.0 68.0 28.0
Se calcula el p-valor del contraste teniendo en cuenta que se pierde un grado de libertad por haber estimado el parámetro de la distribución de Poisson:
T = chisq.test(obs, p = prob)$statistic # Calcula el estadistico
pvalor = 1 - pchisq(T, 3) # Calcula el p-valor
pvalor
## X-squared
## 0.5792
En este caso el p-valor es mucho mayor que en el caso en que se toman en cuenta todos los equipos.