Desgranando el juego

El ritmo de partido
ataques
posesiones
rebotes ofensivos
OER
DER
eficacia puntos
tapply
cor.test
plot
text
abline
grid
Author

Román Salmerón Gómez

Published

December 27, 2022

El baloncesto es un deporte en el que gana quien más anota, por lo que podría parecer importante tener cuántas más opciones de anotar mejor. En consecuencia, se hace necesario poder cuantificar el número de opciones de anotar de cada equipo.

Entendiendo un ataque como cada vez que se desplaza un equipo de una parte a otra de la pista, se tiene que el número de ataques de un equipo se puede estimar teniendo en cuenta los tiros de campo (TCI) y tiros libres (T1I) que realiza, así como los balones perdidos (BP). Igualmente habría que restar los rebotes ofensivos (RO):

Ataques = TCI + 0.4 T1I + BP - RO.

Un par de apreciaciones:

Este último apunte introduce un nuevo concepto, el de posesión:

Posesiones = Ataques + RO.

Es inmediato que en un ataque puede haber más de una posesión dependiendo de si se capturan rebotes ofensivos o no.

En consecuencia, el mejor equipo ofensivo/defensivo no se debe medir en función de los puntos totales anotados/recibidos, sino por los puntos anotados/recibidos en función de las posesiones atacadas/defendidas. No es lo mismo anotar/recibir 85 puntos habiendo tenido 85 posesiones que 70 (ver, por ejemplo, https://acbstats.wordpress.com/2014/09/14/final-usa-vs-serbia-la-clave/).

Surge así, para medir a los mejores equipos ofensivos/defensivos, el concepto de puntos anotados por posesión (OER):

OER = (Puntos anotados)/Posesiones.

o de puntos recibidos por posesión (DER):

DER = (Puntos recibidos)/Posesiones.

Para ilustrar los conceptos anteriores, voy a usar los datos de las 12 primeras jornadas de la Liga Endesa en su Temporada 2022-23.

Usando los datos disponibles en data.xlsx:

library(readxl)
datos <- read_excel("data.xlsx", sheet = "datos")
attach(datos)

vistazo = head(datos)
library(knitr)
Warning: package 'knitr' was built under R version 4.2.2
kable(vistazo, align = "c", caption = "Visualización de los datos que tenemos: unas pocas observaciones")
Visualización de los datos que tenemos: unas pocas observaciones
Jornada Equipo RO RO_Porc Ritmo POS OER OER_R Eficacia
1 Girona 10 26.31579 77.8 87.8 1.0022779 1.1190476 48.08743
1 RMadrid 6 20.68966 78.0 84.0 1.1190476 1.0022779 55.95238
1 Fuenlabrada 9 25.71429 74.0 83.0 0.9759036 1.0779221 47.09302
1 Granada 6 22.22222 71.0 77.0 1.0779221 0.9759036 54.96689
1 Obradoiro 9 28.12500 74.4 83.4 0.9112710 0.8039648 47.20497
1 Zaragoza 15 29.41176 75.8 90.8 0.8039648 0.9112710 36.86869

Podemos observar una clara relación directa (coeficiente de correlación igual a 0.9019 y significativamente distinto de cero) entre los conceptos de ataques y posesiones:

E_Ritmo = tapply(Ritmo, Equipo, mean) # calculo medias por equipo
E_Posesiones = tapply(POS, Equipo, mean)
cor.test(E_Ritmo, E_Posesiones)

    Pearson's product-moment correlation

data:  E_Ritmo and E_Posesiones
t = 8.353, df = 16, p-value = 3.153e-07
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 0.7514841 0.9632044
sample estimates:
      cor 
0.9019197 
cor.test(Ritmo, POS) # uso todos los datos, sin resumir por equipos

    Pearson's product-moment correlation

data:  Ritmo and POS
t = 18.151, df = 214, p-value < 2.2e-16
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 0.7199489 0.8262267
sample estimates:
     cor 
0.778611 
leyendas = c("FCB", "Bask", "RB", "BB", "Breo", "Fuenla", "Gi", "Grx", "GC", "J", "BM", "UM", "Obra", "RM", "LT", "U", "V", "Z")
plot(E_Ritmo, E_Posesiones, xlab="Ataques", ylab="Posesiones", col="blue", lwd=3, ylim=c(min(E_Posesiones)-1, max(E_Posesiones)+1), xlim=c(min(E_Ritmo)-0.5, max(E_Ritmo)+1))
text(E_Ritmo, E_Posesiones, labels = leyendas, pos=4) 
abline(h=mean(E_Posesiones), col="red", lwd=2)
abline(v=mean(E_Ritmo), col="red", lwd=2)
grid(nx = NULL, ny = NULL, lty = 2, col = "gray", lwd = 2)

Teniendo en mente la fórmula de las posesiones, ataques más rebotes ofensivos, podríamos pensar que aquellos equipos que más posesiones juegan capturan un mayor número de rebotes ofensivos. Lo cual se verifica, se observa una correlación positiva significativamente distinta de cero, con los siguientes cálculos:

E_RO = tapply(RO, Equipo, mean)

cor.test(E_Posesiones, E_RO)

    Pearson's product-moment correlation

data:  E_Posesiones and E_RO
t = 2.8791, df = 16, p-value = 0.0109
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 0.1613033 0.8258194
sample estimates:
      cor 
0.5841801 
cor.test(POS, RO) # uso todos los datos, sin resumir por equipos

    Pearson's product-moment correlation

data:  POS and RO
t = 12.343, df = 214, p-value < 2.2e-16
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 0.5595562 0.7166754
sample estimates:
      cor 
0.6448787 
plot(E_Posesiones, E_RO, xlab="Posesiones", ylab="Rebotes Ofensivos", col="blue", lwd=3, ylim=c(min(E_RO)-0.01, max(E_RO)+0.01), xlim=c(min(E_Posesiones)-0.5, max(E_Posesiones)+0.5))
text(E_Posesiones, E_RO, labels = leyendas, pos=4) 
abline(h=mean(E_RO), col="red", lwd=2)
abline(v=mean(E_Posesiones), col="red", lwd=2)
grid(nx = NULL, ny = NULL, lty = 2, col = "gray", lwd = 2)

Esta relación positiva puede deberse a que, cuando se realizan ataques rápidos:

Igualmente, podemos observar (en rojo se representa la media de cada variable), por ejemplo, que el Lenovo Tenerife (segundo clasificado a día de hoy) es el equipo que menos ataques/posesiones disfruta, mientras que Baxi Manresa, UCAM Murcia, Covirán Granada, Casademont Zaragoza y Real Betis los que más (de los últimos clasificados).

Podríamos pensar que los equipos que juegan más posesiones tienen un peor ataque (ver de nuevo la última representación gráfica), lo cual parece confirmarse en la siguiente representación gráfica (el coeficiente de correlación es signifcativamente distinto de cero y negativo):

E_OER = tapply(OER, Equipo, mean)

cor.test(E_Posesiones, E_OER)

    Pearson's product-moment correlation

data:  E_Posesiones and E_OER
t = -2.4187, df = 16, p-value = 0.02786
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 -0.79278648 -0.06666822
sample estimates:
      cor 
-0.517433 
cor.test(POS, OER) # uso todos los datos, sin resumir por equipos

    Pearson's product-moment correlation

data:  POS and OER
t = -3.2411, df = 214, p-value = 0.001381
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 -0.33998476 -0.08527862
sample estimates:
       cor 
-0.2163091 
plot(E_Posesiones, E_OER, xlab="Posesiones", ylab="OER", col="blue", lwd=3, ylim=c(min(E_OER)-0.01, max(E_OER)+0.01), xlim=c(min(E_Posesiones)-0.5, max(E_Posesiones)+1))
text(E_Posesiones, E_OER, labels = leyendas, pos=4) 
abline(h=mean(E_OER), col="red", lwd=2)
abline(v=mean(E_Posesiones), col="red", lwd=2)
grid(nx = NULL, ny = NULL, lty = 2, col = "gray", lwd = 2)

¿Y si atendemos a los puntos recibidos por posesión?

E_DER = tapply(OER_R, Equipo, mean)

cor.test(E_Posesiones, E_DER) 

    Pearson's product-moment correlation

data:  E_Posesiones and E_DER
t = 1.8412, df = 16, p-value = 0.08421
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 -0.06056602  0.74045271
sample estimates:
      cor 
0.4181272 
cor.test(POS, OER_R) # uso todos los datos, sin resumir por equipos

    Pearson's product-moment correlation

data:  POS and OER_R
t = 0.24895, df = 214, p-value = 0.8036
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 -0.1167429  0.1501671
sample estimates:
      cor 
0.0170152 
plot(E_Posesiones, E_DER, xlab="Posesiones", ylab="DER", col="blue", lwd=3, ylim=c(min(E_DER)-0.01, max(E_DER)+0.01), xlim=c(min(E_Posesiones)-0.5, max(E_Posesiones)+1))
text(E_Posesiones, E_DER, labels = leyendas, pos=4) 
abline(h=mean(E_DER), col="red", lwd=2)
abline(v=mean(E_Posesiones), col="red", lwd=2)
grid(nx = NULL, ny = NULL, lty = 2, col = "gray", lwd = 2)

En este caso, la asociación positiva detectada (a mayor número de posesiones mayor DER y, por tanto, peor defensa) no es significativamente distinta de cero.

A partir de los resultados obtenidos, se podría decir que los equipos con una menor calidad (menor OER y mayor DER) tienen una filosofía de juego rápido (mayor número de posesiones) para así compensar esa menor calidad.

Por otro lado, otra posibilidad para medir la calidad de un equipo es su eficacia en el tiro. En la NBA se tiene el porcentaje real de tiro (TS%), calculado como:

TS% = (Puntos anotados)/2(TCI + 0.44 T1I).

Sin embargo, creo que es más idóneo medir la eficacia en el tiro como el porcentaje que se obtiene al dividir los puntos anotados entre los que se deberían haber anotado en el caso de convertir todos los tiros que se han intentado:

Eficacia = (Puntos anotados)/(2 T2I + 3 T3I + T1I),

donde T2I y T3I son, respectivamente, los tiros de 2 y 3 puntos intentados.

Relacionando esta medida con el OER, se observa una alta relación lineal:

E_Eficacia = tapply(Eficacia, Equipo, mean)

cor.test(E_OER, E_Eficacia)

    Pearson's product-moment correlation

data:  E_OER and E_Eficacia
t = 12.372, df = 16, p-value = 1.32e-09
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 0.8720094 0.9820990
sample estimates:
      cor 
0.9515067 
cor.test(OER, Eficacia) # uso todos los datos, sin resumir por equipos

    Pearson's product-moment correlation

data:  OER and Eficacia
t = 39.414, df = 214, p-value < 2.2e-16
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 0.9190319 0.9518729
sample estimates:
      cor 
0.9375075 
plot(E_OER, E_Eficacia, xlab="OER", ylab="Eficacia", col="blue", lwd=3, ylim=c(min(E_Eficacia)-0.01, max(E_Eficacia)+0.01), xlim=c(min(E_OER)-0.01, max(E_OER)+0.02))
text(E_OER, E_Eficacia, labels = leyendas, pos=4) 
abline(h=mean(E_Eficacia), col="red", lwd=2)
abline(v=mean(E_OER), col="red", lwd=2)
grid(nx = NULL, ny = NULL, lty = 2, col = "gray", lwd = 2)

A partir de las tres últimas representaciones gráficas, se observa que Lenovo Tenerife es el segundo mejor ataque y la mejor defensa. En este caso, parece clara la clave del éxito hasta el momento: ritmo de juego bajo para minimizar los puntos recibidos y maximizar los anotados basándose en su eficacia.

Finalmente, a continuación se observa que aquellos equipos que disfrutan de más posesiones tienen una peor eficacia en el tiro:

cor.test(E_Posesiones, E_Eficacia)

    Pearson's product-moment correlation

data:  E_Posesiones and E_Eficacia
t = -2.1724, df = 16, p-value = 0.0452
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 -0.77209272 -0.01336695
sample estimates:
       cor 
-0.4772586 
cor.test(POS, Eficacia) # uso todos los datos, sin resumir por equipos

    Pearson's product-moment correlation

data:  POS and Eficacia
t = -2.9436, df = 214, p-value = 0.003602
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 -0.32227199 -0.06549741
sample estimates:
       cor 
-0.1972656 
plot(E_Posesiones, E_Eficacia, xlab="Posesiones", ylab="Eficacia", col="blue", lwd=3, ylim=c(min(E_Eficacia)-0.01, max(E_Eficacia)+0.01), xlim=c(min(E_Posesiones)-0.01, max(E_Posesiones)+0.5))
text(E_Posesiones, E_Eficacia, labels = leyendas, pos=4) 
abline(h=mean(E_Eficacia), col="red", lwd=2)
abline(v=mean(E_Posesiones), col="red", lwd=2)
grid(nx = NULL, ny = NULL, lty = 2, col = "gray", lwd = 2)

Llama la atención que cinco (Baxi Manresa, Real Betis, Basquet Girona, Casademont Zaragoza y Coviran Granada) de los seis equipos que tienen una eficacia menor a la media de la liga y juegan más posesiones que la media de la liga, ocupan actualmente cinco de los seis últimos puestos de la clasificación.