Je prends une semaine de congé de mon Série de blogs « Apprendre de mes erreurs » , car c'est presque l'heure du tournoi de basket NCAA ! Je ne peux pas manquer l'opportunité d'un poste de basket-ball.
J'ai grandi dans l'Indiana et j'habite maintenant près de Lexington, dans le Kentucky, je suis donc un fan naturel de basket-ball. En tant que jeune enfant (il y a de très nombreuses années), je rêvais de réussir le dernier coup pour remporter le Final Four. La gloire et la renommée m'appartiendraient !
Hélas, ce n’était pas censé arriver, car je n’ai jamais été un très bon joueur. Mon excuse était (et est) de blâmer ma taille. Vous voyez, je ne mesure qu'environ 167 cm (5'6") dans une bonne journée. Nous savons tous que le basket-ball est dominé par des joueurs mesurant plus de 6 pieds (la plupart approchant 7 pieds et plus). Les joueurs de petite taille comme Muggsy Bogues ou Spud Webb sont de rares exceptions.
Il y a des raisons évidentes aux avantages en termes de hauteur : un meilleur rebond, un jeu « au-dessus du bord », une envergure de bras plus large pour jouer en défense, un volume plus important pour déplacer les joueurs, etc. Les joueurs les plus petits peuvent revendiquer quelques avantages par rapport aux joueurs plus grands (comme la rapidité), mais de nos jours, le jeu est définitivement un « jeu de grand homme ».
Pourtant, je me demande si le jeu est « truqué » pour favoriser les joueurs de grande taille, d’où la raison pour laquelle je n’ai jamais été un bon joueur. J’ai donc décidé d’essayer de prouver un cas simple : les joueurs plus grands ont un avantage sur les joueurs plus petits lorsqu’ils tirent des lancers francs.
Le tracé de sortie souhaité
Ce que je recherche, c'est un tracé de la "fenêtre de fonctionnement" pour les lancers francs, afin de pouvoir comparer la fenêtre d'un joueur de grande taille par rapport à celle d'un joueur de petite taille. Cela impliquera de modéliser des combinaisons de la vitesse initiale du ballon de basket par rapport à l'angle (ou trajectoire) initial du ballon, de déterminer si le tir est un "Make" ou un "Miss", et de tracer les résultats. En fin de compte, cela devrait donner un tracé comme celui-ci :
Figure 1: Example of Free Throw Tolerance WindowFigure 1: Example of Free Throw Tolerance WindowFigure 1: Example of Free Throw Tolerance WindowFigure 1: Example of Free Throw Tolerance WindowFigure 1 : Exemple de fenêtre de tolérance de lancer franc
De plus, nous devrions pouvoir animer la prise de vue, quelque chose comme ceci :
Figure 2: Animation of Free Throws for Constant Input Velocity, Varying TrajectoryFigure 2: Animation of Free Throws for Constant Input Velocity, Varying TrajectoryFigure 2: Animation of Free Throws for Constant Input Velocity, Varying TrajectoryFigure 2: Animation of Free Throws for Constant Input Velocity, Varying TrajectoryFigure 2 : Animation de lancers francs pour une vitesse d'entrée constante et une trajectoire variable
Êtes-vous intéressé par la façon de procéder et par ce que tout cela signifie ? Continuer à lire!
Développer un modèle
Pour mon modèle, j'ai utilisé les dimensions du terrain de basket masculin américain et du ballon :
Point de lancement du lancer franc : 15 pieds (horizontalement) de la surface avant du panneau arrière
Diamètre du but : 18 pouces
Hauteur du but : 10 pieds (verticalement) du sol
Centre du but : 15 pouces devant le panneau
Diamètre du ballon de basket : 9,55 pouces
J'ai introduit quelques hypothèses et contraintes pour simplifier le modèle :
Il y avait trois variables d'entrée dans le modèle :
- La hauteur de « lancement » du ballon de basket (c'est-à-dire la hauteur au-dessus du sol au point de lancement)
- J'ai regardé à deux hauteurs : 6,5 pieds au-dessus du sol (ce qui correspond à mon point de déclenchement, bras tendus) et 8,5 pieds du sol (là où les gros gars tirent).
- La vitesse de sortie du ballon de basket
- L'angle de lancement du ballon de basket (ou trajectoire initiale)
Le résultat du modèle (pour chaque combinaison de hauteur de largage, de vitesse initiale et de trajectoire initiale) était une valeur catégorique de « Made » ou « Miss ».
Les équations de mouvement étaient les équations balistiques standard. Ceux-ci sont présentés dans le document Word ci-joint.
Critères de réussite/échec
Pour qu'un tir soit "réalisé", j'exigeais qu'il "passe" à travers le filet sans toucher du tout le bord. Ce critère semble simple à première vue : la balle s'insère-t-elle entre les positions les plus avancées et les plus arrière de la jante lorsque le centre de la balle est à hauteur de jante et sur une trajectoire descendante ? (N'oubliez pas que nous regardons uniquement des plans parfaitement centrés (de gauche à droite), donc le reste du bord n'a aucune importance.)
Figure 3: Ball and Basket Geometry for Made and Missed ShotsFigure 3: Ball and Basket Geometry for Made and Missed ShotsFigure 3: Ball and Basket Geometry for Made and Missed ShotsFigure 3: Ball and Basket Geometry for Made and Missed ShotsFigure 3 : Géométrie du ballon et du panier pour les tirs réussis et manqués
Mais la balle illustrée dans le diagramme « Made Shot » ci-dessus n’a peut-être pas réellement « sifflé ». Considérez que la trajectoire de la balle au moment de cette image aurait pu être relativement « plate », comme indiqué ci-dessous :
Figure 4: Effect of Final Ball Trajectory on Make/MissFigure 4: Effect of Final Ball Trajectory on Make/MissFigure 4: Effect of Final Ball Trajectory on Make/MissFigure 4: Effect of Final Ball Trajectory on Make/MissFigure 4 : Effet de la trajectoire finale de la balle sur les réussites/échecs
Il faut donc également tenir compte de l'angle final de la balle, et du fait qu'il rétrécit la fenêtre W pour un tir brusque :
Figure 5: Geometry involved in determining Make/MissFigure 5: Geometry involved in determining Make/MissFigure 5: Geometry involved in determining Make/MissFigure 5: Geometry involved in determining Make/MissFigure 5 : Géométrie impliquée dans la détermination du Make/Miss
Les critères sont donc les suivants : lorsque le centre de la balle est à la hauteur de la jante et sur une trajectoire descendante :
- La position X du centre de la balle doit se situer entre l'avant et l'arrière de la jante.
- W doit être au moins aussi grand que le diamètre de la boule.
- La balle ne peut toucher aucun des côtés du canal rétréci décrit par l'angle final et le diamètre de la jante.
Implémentation du modèle
Les équations et contraintes balistiques ont été codées dans le langage de script JMP (JSL). Le script (ballistic calcs.jsl) est joint à ce message, au cas où vous voudriez essayer de l'exécuter vous-même. Le code est assez simple et pas du tout optimisé pour la vitesse (cela peut donc prendre un certain temps s'il existe de nombreuses combinaisons de vitesses et de trajectoires à évaluer). Le code est bien annoté si vous souhaitez le parcourir. Les composants principaux sont les suivants :
- Un panneau de saisie utilisateur personnalisé est présenté pour contrôler les opérations.
- Une nouvelle table de données est créée, contenant de nouvelles colonnes pour chaque variable qui sera stockée.
- Deux boucles imbriquées, une pour parcourir les vitesses initiales de la balle et une pour parcourir les angles de trajectoire initiaux.
- Dans ces boucles, tous les calculs balistiques sont effectués pour amener la balle à la position finale (c'est-à-dire à hauteur de jante, trajectoire descendante).
- La position et la trajectoire finales du ballon sont ensuite utilisées pour déterminer si le tir « siffle » comme défini précédemment.
- Une variable catégorielle « makemiss » est définie sur « Make » ou « Miss », en fonction du résultat calculé.
- Toutes les variables sont stockées dans la table de données pour cette combinaison particulière de vitesse initiale et de trajectoire initiale, y compris la variable makemiss.
- Enfin, une fois tous les calculs terminés et les résultats stockés dans la nouvelle table de données, je trace la fenêtre de fonctionnement vitesse/trajectoire et j'ajoute un script à la table de données pour recréer facilement le tracé.
Une fois les calculs terminés, le tableau de données contient tous les résultats, qui peuvent ensuite être tracés. J'ai exécuté le code pour les cas suivants :
Cas
|
1
|
2
|
|
|
|
Hauteur initiale, pieds
|
6.5
|
8.5
|
|
|
|
Vitesse initiale, fps
|
|
|
Le plus bas
|
20
|
20
|
Le plus élevé
|
50
|
50
|
Incrément
|
0,05
|
0,05
|
|
|
|
Trajectoire initiale, degrés
|
|
|
Le plus bas
|
35
|
35
|
Le plus élevé
|
89
|
89
|
Incrément
|
0,05
|
0,05
|
Cela a abouti à deux tableaux de données, un pour chaque hauteur initiale et chacun contenant près de 650 000 lignes (une pour chaque combinaison de vitesse initiale et de trajectoire).
(Remarque : Chacun de ces cas a nécessité environ deux minutes sur mon ordinateur portable.)
Sortie de la fenêtre de tolérance de lancer libre
Je voulais voir la « fenêtre de lancer franc », montrant un nuage de points de la vitesse initiale par rapport à la trajectoire initiale, avec des points codés par couleur selon les réussites ou les échecs. Cela se fait facilement dans Graph Builder dans JMP . Parlons de la fenêtre de tolérance « personne de grande taille » :
Figure 6: Free Throw Tolerance Window for Tall PlayerFigure 6: Free Throw Tolerance Window for Tall PlayerFigure 6: Free Throw Tolerance Window for Tall PlayerFigure 6: Free Throw Tolerance Window for Tall PlayerFigure 6 : Fenêtre de tolérance aux lancers francs pour les joueurs de grande taille La région bleue dans le graphique ci-dessus montre les combinaisons de vitesse initiale et d'angle initial requises pour qu'une personne de grande taille effectue un lancer franc. Notez ce qui suit :
- À faible vitesse (22-24 ips), l'angle de prise de vue est relativement faible. Cela est logique, car tirer un tir doux avec une trajectoire haute n'atteindra pas le panier.
- Aux angles élevés (au-dessus de 70 degrés), la vitesse initiale doit être élevée. Dans ce cas, nous tirons très haut. (En fait, à mesure que l’angle s’approche de 90 degrés, la vitesse initiale grimpe vers l’infini.)
Si nous développons le tracé ci-dessus pour mettre l’accent sur la région des faibles vitesses :
Figure 7: Zoom In on Free Throw Tolerance Window for Tall PlayerFigure 7: Zoom In on Free Throw Tolerance Window for Tall PlayerFigure 7: Zoom In on Free Throw Tolerance Window for Tall PlayerFigure 7: Zoom In on Free Throw Tolerance Window for Tall PlayerFigure 7 : Zoom avant sur la fenêtre de tolérance des lancers francs pour les joueurs de grande taille
On voit désormais mieux :
- La plage d'angles nécessaire pour réaliser un tir, si le tireur tire toujours à la même vitesse initiale (la ligne jaune en est un exemple).
- La plage de vitesses initiales nécessaire pour effectuer un tir, si le tireur tire toujours selon le même angle initial (la ligne verte en est un exemple).
- Une fenêtre typique de plages de vitesses et d'angles admissibles, si un tireur est raisonnablement cohérent (l'encadré rouge est un exemple).
Comparaison des performances courtes et hautes
J'ai combiné manuellement les résultats des deux cas de test (tireurs petits et grands) en un seul graphique :
Figure 8: Comparing Short vs. Tall Player Free Throw Tolerance WindowFigure 8: Comparing Short vs. Tall Player Free Throw Tolerance WindowFigure 8: Comparing Short vs. Tall Player Free Throw Tolerance WindowFigure 8: Comparing Short vs. Tall Player Free Throw Tolerance WindowFigure 8 : Comparaison de la fenêtre de tolérance des lancers francs des joueurs petits et grands
Nous pouvons maintenant commencer à voir les différences entre les joueurs de petite taille et ceux de grande taille :
- Les joueurs de petite taille doivent tirer plus fort et sous des angles plus élevés que les joueurs de grande taille (bien sûr, nous le savions tous déjà).
- Les deux courbes convergent à mesure que l'angle de lancement augmente (c'est logique : les deux joueurs lancent des tirs très hauts, donc la hauteur de départ a moins d'importance).
- Généralement, la fenêtre (c'est-à-dire la zone bleue) pour les joueurs de grande taille est un peu plus grande que la fenêtre pour les joueurs de petite taille (zone jaune).
À ce stade, je me sentais plutôt bien dans ma thèse, mais la visualisation des contours avait un comportement étrange. Remarquez dans les graphiques ci-dessus (en particulier sur la figure 7), à mesure que nous passons d'un angle faible à un angle élevé, la courbe bleue semble commencer à une vitesse d'environ 22,5 ips, puis une vitesse acceptable. baisse légèrement à mesure que l'angle augmente, avant d'augmenter à nouveau. Je me demandais si c'était réel.
Animer la prise de vue
Pour étudier cette bizarrerie, j'ai choisi d'observer une personne de grande taille effectuant des lancers francs à une vitesse initiale constante, en faisant varier uniquement l'angle du tir. Le mouvement de la balle est facile à calculer (une simple parabole), j'ai donc calculé la position xy de la balle au fil du temps pour un angle donné. J'ai répété cela sous plusieurs angles, tous en utilisant la même vitesse initiale et la même hauteur de lancement de 8,5 pieds.
J'ai écrit un deuxième script (animation.jsl, également joint à cet article) qui générait ces données et les stockait dans une table de données JMP. J'ai ensuite utilisé un tracé à bulles pour animer les résultats (avec chaque nouveau plan légèrement décalé dans le temps) et je l'ai stocké dans un fichier GIF.
La première animation montre une personne de grande taille (point de lancement à 8,5 pieds au-dessus du sol), tirant le ballon avec une vitesse initiale de 22,3 ips :
Figure 9: Animation of Tall Player Shooting: 22.3 fps Initial Velocity at Different Initial TrajectoriesFigure 9: Animation of Tall Player Shooting: 22.3 fps Initial Velocity at Different Initial TrajectoriesFigure 9: Animation of Tall Player Shooting: 22.3 fps Initial Velocity at Different Initial TrajectoriesFigure 9: Animation of Tall Player Shooting: 22.3 fps Initial Velocity at Different Initial TrajectoriesFigure 9 : Animation du tir d'un joueur de grande taille : vitesse initiale de 22,3 ips à différentes trajectoires initiales
L'animation ci-dessus montre un certain nombre de tentatives de tir, toutes avec la même vitesse initiale, à mesure que l'angle de tir change. (Chaque tir est étiqueté avec l'angle de lancement initial, en degrés.) Si l'angle initial est trop faible ou trop raide, le tir touche l'avant de la jante (il est donc considéré comme un « raté » puisqu'il n'a pas « brui ». ") Les plans verts sont des "Makes" et les plans rouges sont des "Miss". Si l’angle est parfait, la balle passe à travers le cerceau sans obstruction.
Cependant, si nous augmentons légèrement la vitesse initiale (à 22,4 ips), nous obtenons cette animation :
Figure 10: Tall Player, Initial Velocity 22.4 fps, different initial trajectoriesFigure 10: Tall Player, Initial Velocity 22.4 fps, different initial trajectoriesFigure 10: Tall Player, Initial Velocity 22.4 fps, different initial trajectoriesFigure 10: Tall Player, Initial Velocity 22.4 fps, different initial trajectoriesFigure 10 : Joueur de grande taille, vitesse initiale de 22,4 ips, différentes trajectoires initiales
Là encore, on voit que si l'angle est trop faible ou trop raide, la balle touche l'avant de la jante. Cependant, nous voyons également qu’il existe en réalité deux régions d’angles initiaux qui aboutissent à une « marque », séparées par une région où la balle touche l’arrière de la jante. C'était un résultat inattendu, et je ne l'aurais pas remarqué sans les outils de visualisation de JMP !
Les données réelles sauvegardent-elles les résultats ?
Sur la base des fenêtres montrées dans les graphiques ci-dessus, je me sentais plutôt bien qu'un joueur de petite taille ait plus de mal à réaliser des lancers francs qu'un joueur de grande taille. Bien entendu, il existe de nombreuses données permettant de démontrer si cela est vrai ou non.
J'ai téléchargé la taille du joueur et le pourcentage de lancers francs à vie pour les joueurs de la NBA nés après 1950, qui ont effectué au moins 1 000 tentatives de lancers francs au cours de leur carrière. J'ai ensuite tracé la hauteur en fonction du pourcentage à l'aide de la plateforme Fit Y by X :
Figure 11: Free Throw Percentage vs. Height for NBA players born post-1950 with at least 1000 free throw attemptsFigure 11: Free Throw Percentage vs. Height for NBA players born post-1950 with at least 1000 free throw attemptsFigure 11: Free Throw Percentage vs. Height for NBA players born post-1950 with at least 1000 free throw attemptsFigure 11: Free Throw Percentage vs. Height for NBA players born post-1950 with at least 1000 free throw attemptsFigure 11 : Pourcentage de lancers francs par rapport à la taille pour les joueurs de la NBA nés après 1950 avec au moins 1 000 tentatives de lancers francs
Hélas, ma thèse n’est finalement pas prouvée. Il existe une tendance assez claire selon laquelle les joueurs de petite taille réussissent de meilleurs pourcentages de lancers francs que les joueurs de grande taille. En fait, si ma thèse était vraie, alors les joueurs plus âgés comme Rick Barry (qui a tiré des lancers francs en dessous) auraient eu un très faible pourcentage. (Barry a tiré à 90,0 % tout au long de sa carrière.)
De toute évidence, d’autres effets entrent en jeu. Certaines hypothèses du modèle sont détaillées ci-dessus. D'autres pourraient inclure :
- Temps passé à pratiquer les lancers francs
- Coordination œil-main
- Motivation (peut-être que les joueurs de petite taille travaillent plus dur aux lancers francs pour compenser d'autres lacunes sur le terrain)
Conclusions
Pour paraphraser George Box : « Tous les modèles sont faux, mais certains sont utiles ».
Dans ce cas, mon modèle pourrait être utile si j'essaie de faire valoir mon point de vue au pub local. Mais il est clair que mon modèle balistique était erroné. Il existe de nombreux autres facteurs en jeu qui déterminent la capacité à réussir des lancers francs au basket-ball.
Je suppose que je dois admettre que je ne suis tout simplement pas un très bon athlète. J'espère néanmoins que vous avez apprécié le voyage et que vous avez peut-être eu quelques idées sur la façon dont JMP pourrait être un outil utile pour vos besoins d'exploration de données.
En attendant…c hein, ça vous tente ??