Ich nehme mir eine Woche frei Blogserie „Aus meinen Fehlern lernen“. , denn es ist fast Zeit für das NCAA-Basketballturnier! Ich kann mir die Gelegenheit für einen Basketballbeitrag nicht entgehen lassen.
Ich bin in Indiana aufgewachsen und lebe jetzt in der Nähe von Lexington, Kentucky, also bin ich ein echter Basketballfan. Als kleines Kind (vor vielen, vielen Jahren) träumte ich davon, den letzten Versuch zu machen, das Final Four zu gewinnen. Ruhm und Ehre wären mein!
Leider sollte es nicht so sein, da ich nie ein besonders guter Spieler war. Meine Entschuldigung war (und ist), meine Größe dafür verantwortlich zu machen. Sie sehen, an einem guten Tag bin ich nur etwa 167 cm groß. Wir alle wissen, dass Basketball von Spielern dominiert wird, die über 1,80 m groß sind (die meisten nähern sich einer Körpergröße von 2,10 m und mehr). Kleine Spieler wie Muggsy Bogues oder Spud Webb sind die seltene Ausnahme.
Es gibt offensichtliche Gründe für die Höhenvorteile: besseres Rebounding, Spielen „über dem Rand“, größere Armspannweite für die Verteidigung, größere Masse für die Bewegung von Spielern usw. Die kleineren Spieler können einige Vorteile gegenüber den größeren Spielern für sich beanspruchen (z. B. Schnelligkeit), aber heutzutage ist das Spiel definitiv ein „Spiel für große Männer“.
Dennoch frage ich mich, ob das Spiel „manipuliert“ ist, um größere Spieler zu begünstigen, weshalb ich nie ein guter Spieler war. Also beschloss ich, einen einfachen Fall zu beweisen: dass größere Spieler gegenüber kleineren Spielern im Vorteil sind, wenn sie Freiwürfe schießen.
Das gewünschte Ausgabediagramm
Was ich suche, ist eine Darstellung des „Arbeitsfensters“ für Freiwürfe, damit ich das Fenster für einen großen Spieler mit dem für einen kleinen Spieler vergleichen kann. Dabei werden Kombinationen der Anfangsgeschwindigkeit des Basketballs im Vergleich zum Anfangswinkel (oder der Flugbahn) des Balls modelliert, ermittelt, ob der Schuss ein „Make“ oder „Miss“ ist, und die Ergebnisse grafisch dargestellt. Letztendlich sollte dies zu einer Handlung wie dieser führen:
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 WindowAbbildung 1: Beispiel eines Freiwurftoleranzfensters
Außerdem sollten wir in der Lage sein, die Aufnahme zu animieren, etwa so:
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 TrajectoryAbbildung 2: Animation von Freiwürfen für konstante Eingangsgeschwindigkeit und variierende Flugbahn
Interessiert es Sie, wie das geht und was das alles bedeutet? Weiter lesen!
Ein Modell entwickeln
Für mein Modell habe ich die Basketballfeld- und Ballabmessungen der US-Männer verwendet:
Freiwurf-Auslösepunkt: 15 Fuß (horizontal) von der Vorderseite des Spielbretts entfernt
Tordurchmesser: 18 Zoll
Zielhöhe: 10 Fuß (vertikal) über dem Boden
Tormitte: 15 Zoll vor dem Spielbrett
Basketballdurchmesser: 9,55 Zoll
Ich habe einige Annahmen und Einschränkungen eingeführt, um das Modell zu vereinfachen:
Es gab drei Eingabevariablen für das Modell:
- Die „Abschusshöhe“ des Basketballs (d. h. die Höhe über dem Boden am Abwurfpunkt)
- Ich habe auf zwei Höhen geschaut: 6,5 Fuß über dem Boden (was ungefähr meinem Auslösepunkt mit ausgestreckten Armen entspricht) und 8,5 Fuß über dem Boden (wo die Großen schießen).
- Die Abwurfgeschwindigkeit des Basketballs
- Der Auslösewinkel des Basketballs (oder die anfängliche Flugbahn)
Die Ausgabe des Modells (für jede Kombination aus Auslösehöhe, Anfangsgeschwindigkeit und Anfangsflugbahn) war ein kategorischer Wert von „Made“ oder „Miss“.
Bewegungsgleichungen waren die ballistischen Standardgleichungen. Diese sind im beigefügten Word-Dokument dargestellt.
Make/Miss-Kriterien
Damit ein Schuss „gemacht“ werden konnte, musste der Schuss durch das Netz „schwirren“, ohne den Rand überhaupt zu berühren. Dieses Kriterium erscheint zunächst einfach: Passt der Ball zwischen die vorderste und die hinterste Position der Felge, wenn sich die Mitte des Balls auf Felgenhöhe befindet und sich auf einer Abwärtsflugbahn befindet? (Denken Sie daran, dass wir nur perfekt zentrierte (von links nach rechts) Aufnahmen betrachten, sodass der Rest des Randes keine Rolle spielt.)
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 ShotsAbbildung 3: Ball- und Korbgeometrie für ausgeführte und verpasste Schüsse
Aber der im „Made Shot“-Diagramm oben gezeigte Ball ist möglicherweise nicht wirklich „geschwungen“. Bedenken Sie, dass die Flugbahn des Balls zum Zeitpunkt dieses Bildes möglicherweise relativ „flach“ war, wie unten gezeigt:
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/MissAbbildung 4: Auswirkung der endgültigen Ballflugbahn auf Make/Miss
Wir müssen also auch den endgültigen Winkel des Balls berücksichtigen und die Tatsache, dass er das Fenster W für einen geschwungenen Schuss verengt:
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/MissAbbildung 5: Geometrie, die bei der Bestimmung von Make/Miss eine Rolle spielt
Die Kriterien lauten also, dass, wenn sich die Mitte des Balls auf der Höhe des Randes befindet und sich auf einer Abwärtsflugbahn befindet:
- Die X-Position der Kugelmitte muss zwischen der Vorder- und Rückseite der Felge liegen.
- W muss mindestens so groß sein wie der Kugeldurchmesser.
- Der Ball darf keine Seite des verengten Kanals berühren, der durch den Endwinkel und den Durchmesser der Felge beschrieben wird.
Implementierung des Modells
Die ballistischen Gleichungen und Einschränkungen wurden in der JMP Scripting Language (JSL) codiert. Das Skript (ballistic calcs.jsl) ist diesem Beitrag beigefügt, falls Sie es selbst ausprobieren möchten. Der Code ist ziemlich einfach und überhaupt nicht auf Geschwindigkeit optimiert (daher kann es einige Zeit dauern, wenn viele Kombinationen von Geschwindigkeiten und Flugbahnen ausgewertet werden müssen). Der Code ist gut mit Anmerkungen versehen, wenn Sie ihn durchforsten möchten. Zu den Hauptkomponenten gehören:
- Zur Steuerung der Vorgänge wird ein benutzerdefiniertes Benutzereingabefeld angezeigt.
- Es wird eine neue Datentabelle erstellt, die neue Spalten für jede Variable enthält, die gespeichert wird.
- Zwei verschachtelte Schleifen, eine zum schrittweisen Durchlaufen der anfänglichen Ballgeschwindigkeiten und eine zum schrittweisen Durchlaufen der anfänglichen Flugbahnwinkel.
- Innerhalb dieser Schleifen werden alle ballistischen Berechnungen durchgeführt, um den Ball an die endgültige Position zu bringen (dh auf Randhöhe, Abwärtsflugbahn).
- Die endgültige Ballposition und Flugbahn werden dann verwendet, um zu bestimmen, ob der Schlag wie zuvor definiert „saust“.
- Eine kategoriale „Makemiss“-Variable wird abhängig vom berechneten Ergebnis entweder auf „Make“ oder „Miss“ gesetzt.
- Alle Variablen werden in der Datentabelle für diese bestimmte Kombination aus Anfangsgeschwindigkeit und Anfangsflugbahn gespeichert, einschließlich der Makemiss-Variablen.
- Sobald alle Berechnungen abgeschlossen und die Ergebnisse in der neuen Datentabelle gespeichert sind, zeichne ich schließlich das Betriebsfenster Geschwindigkeit vs. Flugbahn und füge der Datentabelle ein Skript hinzu, um die Darstellung einfach neu zu erstellen.
Sobald die Berechnungen abgeschlossen sind, enthält die Datentabelle alle Ergebnisse, die dann grafisch dargestellt werden können. Ich habe den Code für die folgenden Fälle ausgeführt:
Fall
|
1
|
2
|
|
|
|
Anfangshöhe, Fuß
|
6.5
|
8.5
|
|
|
|
Anfangsgeschwindigkeit, fps
|
|
|
Am niedrigsten
|
20
|
20
|
Höchste
|
50
|
50
|
Zuwachs
|
0,05
|
0,05
|
|
|
|
Anfängliche Flugbahn, Grad
|
|
|
Am niedrigsten
|
35
|
35
|
Höchste
|
89
|
89
|
Zuwachs
|
0,05
|
0,05
|
Dies führte zu zwei Datentabellen, eine für jede Anfangshöhe, und jede enthielt fast 650.000 Zeilen (eine für jede Kombination aus Anfangsgeschwindigkeit und Flugbahn).
(Hinweis: Die Bearbeitung jedes dieser Fälle dauerte auf meinem Laptop etwa zwei Minuten.)
Ausgabe des Freiwurftoleranzfensters
Ich wollte das „Freiwurffenster“ sehen, das ein Streudiagramm der Anfangsgeschwindigkeit gegenüber der Anfangsflugbahn zeigt, mit Punkten, die je nach Erfolg oder Misserfolg farblich gekennzeichnet sind. Das geht ganz einfach im Graph Builder JMP . Lassen Sie uns über das Toleranzfenster für „große Personen“ sprechen:
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 PlayerAbbildung 6: Freiwurftoleranzfenster für große Spieler Der blaue Bereich im obigen Diagramm zeigt die Kombinationen aus Anfangsgeschwindigkeit und Anfangswinkel, die erforderlich sind, damit eine große Person einen Freiwurf ausführen kann. Beachte das Folgende:
- Bei niedrigen Geschwindigkeiten (22–24 fps) ist der Aufnahmewinkel relativ gering. Dies ist sinnvoll, da ein weicher Schuss mit hoher Flugbahn nicht in den Korb gelangt.
- Bei großen Winkeln (über 70 Grad) muss die Anfangsgeschwindigkeit hoch sein. In diesem Fall schießen wir einen sehr hohen Schuss. (Tatsächlich steigt die Anfangsgeschwindigkeit in Richtung Unendlich an, wenn sich der Winkel 90 Grad nähert.)
Wenn wir das obige Diagramm erweitern, um den Bereich niedriger Geschwindigkeit hervorzuheben:
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 PlayerAbbildung 7: Vergrößern des Freiwurftoleranzfensters für große Spieler
Jetzt können wir besser sehen:
- Der für einen Schuss erforderliche Winkelbereich, wenn der Schütze immer mit der gleichen Anfangsgeschwindigkeit schießt (gelbe Linie ist ein Beispiel).
- Der Bereich der Anfangsgeschwindigkeiten, die zum Abfeuern eines Schusses erforderlich sind, wenn der Schütze immer im gleichen Anfangswinkel schießt (grüne Linie ist ein Beispiel).
- Ein typisches Fenster zulässiger Geschwindigkeits- und Winkelbereiche, wenn ein Schütze einigermaßen konstant ist (rotes Kästchen ist ein Beispiel).
Vergleich der Leistung von Klein- und Großgrößen
Ich habe die Ergebnisse für die beiden Testfälle (kleine vs. große Schützen) manuell in einem einzigen Diagramm kombiniert:
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 WindowAbbildung 8: Vergleich des Freiwurftoleranzfensters für kleine und große Spieler
Jetzt können wir beginnen, die Unterschiede zwischen kleinen und großen Spielern zu erkennen:
- Kleine Spieler müssen härter und aus einem höheren Winkel schießen als größere Spieler (das wussten wir natürlich alle schon).
- Die beiden Kurven konvergieren mit zunehmendem Abschusswinkel (macht Sinn – beide Spieler werfen sehr hohe Schläge, daher ist die Starthöhe weniger wichtig).
- Im Allgemeinen ist das Fenster (blauer Bereich) für große Spieler etwas größer als das Fenster für kleine Spieler (gelber Bereich).
Zu diesem Zeitpunkt hatte ich ein ziemlich gutes Gefühl bei meiner Abschlussarbeit, aber die Konturvisualisierung zeigte ein merkwürdiges Verhalten. Beachten Sie, dass in den obigen Diagrammen (insbesondere in Abbildung 7) die blaue Kurve beim Übergang von niedrigen zu hohen Winkeln bei einer Geschwindigkeit von etwa 22,5 fps zu beginnen scheint, was einer akzeptablen Geschwindigkeit entspricht fällt leicht ab wenn der Winkel zunimmt, bevor er wieder zunimmt. Ich fragte mich, ob das echt war.
Animieren des Schusses
Um die Kuriosität zu untersuchen, habe ich mir eine große Person angesehen, die Freiwürfe mit einer konstanten Anfangsgeschwindigkeit ausführt und nur den Schusswinkel variiert. Die Bewegung des Balls lässt sich leicht berechnen (eine einfache Parabel), daher habe ich die xy-Position des Balls über die Zeit für einen bestimmten Winkel berechnet. Ich wiederholte dies für eine Reihe von Winkeln, wobei ich alle die gleiche Anfangsgeschwindigkeit und Starthöhe von 8,5 Fuß verwendete.
Ich habe ein zweites Skript geschrieben (animation.jsl, ebenfalls an diesen Beitrag angehängt), das diese Daten generiert und in einer JMP-Datentabelle gespeichert hat. Dann habe ich ein Blasendiagramm verwendet, um die Ergebnisse zu animieren (wobei jede neue Aufnahme zeitlich leicht versetzt war) und es in einer GIF-Datei gespeichert.
Die erste Animation zeigt eine große Person (Abwurfpunkt 8,5 Fuß über dem Boden), die den Ball mit einer Anfangsgeschwindigkeit von 22,3 fps abschießt:
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 TrajectoriesAbbildung 9: Animation des Schießens eines großen Spielers: 22,3 fps Anfangsgeschwindigkeit bei verschiedenen anfänglichen Flugbahnen
Die obige Animation zeigt mehrere Schussversuche, alle mit der gleichen Anfangsgeschwindigkeit, während der Schusswinkel geändert wird. (Jeder Schuss ist mit dem anfänglichen Abschusswinkel in Grad gekennzeichnet.) Wenn der anfängliche Winkel zu flach oder zu steil ist, trifft der Schuss die Vorderseite der Felge (wird daher als „Fehlschuss“ betrachtet, da er nicht „geschleudert“ wurde. ) Grüne Schüsse sind „Makes“ und rote Schüsse sind „Misses“. Wenn der Winkel genau richtig ist, saust der Ball ungehindert durch den Korb.
Wenn wir jedoch die Anfangsgeschwindigkeit nur geringfügig erhöhen (auf 22,4 fps), erhalten wir diese 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 trajectoriesAbbildung 10: Großer Spieler, Anfangsgeschwindigkeit 22,4 fps, verschiedene Anfangsflugbahnen
Auch hier sehen wir, dass die Kugel die Vorderseite der Felge berührt, wenn der Winkel zu flach oder zu steil ist. Allerdings sehen wir auch, dass es tatsächlich zwei Bereiche mit Anfangswinkeln gibt, die zu einem „Make“ führen, getrennt durch einen Bereich, in dem der Ball auf die Rückseite der Felge trifft. Das war ein unerwartetes Ergebnis und ich hätte es ohne die Visualisierungstools nicht bemerkt JMP !
Unterstützen echte Daten die Ergebnisse?
Basierend auf den Fenstern, die in den Diagrammen oben gezeigt werden, hatte ich ein ziemlich gutes Gefühl, dass es einem kleinen Spieler schwerer fällt, Freiwürfe auszuführen als einem größeren Spieler. Natürlich gibt es zahlreiche Daten, die zeigen, ob dies wahr ist oder nicht.
Ich habe die Spielergröße und den lebenslangen Freiwurfprozentsatz für NBA-Spieler heruntergeladen, die nach 1950 geboren wurden und in ihrer Karriere mindestens 1000 Freiwurfversuche hatten. Anschließend habe ich mithilfe der Plattform „Y nach X anpassen“ die Höhe vs. den Prozentsatz aufgetragen:
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 attemptsAbbildung 11: Freiwurfprozentsatz vs. Körpergröße für NBA-Spieler, die nach 1950 geboren wurden und mindestens 1000 Freiwurfversuche hatten
Leider ist meine These doch nicht bewiesen. Es gibt einen ziemlich klaren Trend, dass kleine Spieler bessere Freiwurfquoten erzielen als größere Spieler. Wenn meine These wahr wäre, hätten ältere Spieler wie Rick Barry (der Freiwürfe unter der Hand geschossen hat) tatsächlich eine sehr schlechte Quote gehabt. (Barry hat im Laufe seiner Karriere 90,0 % geschossen.)
Es sind offensichtlich noch andere Effekte im Spiel. Einige der Modellannahmen sind oben detailliert beschrieben. Andere könnten sein:
- Zeit, die für das Üben von Freiwürfen aufgewendet wird
- Auge-Hand-Koordination
- Motivation (vielleicht arbeiten kleine Spieler härter bei Freiwürfen, um andere Defizite auf dem Spielfeld auszugleichen)
Schlussfolgerungen
Um George Box zu paraphrasieren: „Alle Modelle sind falsch, aber einige sind nützlich.“
In diesem Fall könnte mein Modell nützlich sein, wenn ich versuche, meinen Standpunkt in der örtlichen Kneipe zu vertreten. Aber mein ballistisches Modell war eindeutig falsch. Es spielen noch viele andere Faktoren eine Rolle, die die Fähigkeit zum Ausführen von Freiwürfen im Basketball bestimmen.
Ich muss wohl zugeben, dass ich einfach kein besonders guter Athlet bin. Dennoch hoffe ich, dass Ihnen die Reise gefallen hat und Sie vielleicht ein paar Ideen bekommen haben, wie JMP ein nützliches Tool für Ihre Datenexplorationsanforderungen sein könnte.
In der Zwischenzeit…c hess, irgendjemand??