Beyond the Box Score: An SB Nation Community

Navigation: Jump to content areas:



Sports blogs for fans, by fans.
Around SBN: Steve McNair Dead - Former NFL QB Shot and Killed


Slicing Up Bob Howry

In the Randy Johnson thread, things moved on into Bob Howry.  As a Cub fan, I lamented his performance and wished the Giants luck.  Or words to that effect.

The question surrounds Howry's fastball, or questions.  They are

  1. How much slower was it in 2008 vs. 2007?
  2. Was his performance impacted by the velocity?
  3. Was his performance impacted by the location?

I'll measure performance four ways

  1. Whiff Rate (whiffs/swings)
  2. Fat Rate (pitches in the middle 8 inches, within the top/bottom strike zone)
  3. BB/9 Inning (not pitch specific)
  4. BABIP (not pitch specific)

I'm breaking time down by month.  The first two metrics are specific to the fastballs, and are based on PITCHf/x data.  The last two are general, and were taken from Baseball Reference (and they combine Mar/Apr and Sept/Oct).  For PFX sampling reasons, I'm using July-September 2007 and April-September 2008.

This is a test.  If this were actual analysis I would've actually tried this before.  We'll see what happens.

First, the zones - the darker are in the middle is "Fat", the solid areas flanking it are "Sides", then "Edges" (now off the plate) followed by "Off" and "Wide" (or "Wild"). 

Zones_medium

Actually, the Sides are just a hair short of the 17 inch plate.  The fat is 8 inches, 4 on each half, and the plate is 17 inches.  So part of each Edge is a rule book strike.  All of the Edges are within the zone that umpires and batters seem to actually see/play/call.

Updated: League #'s for the slices ... much more in the comments

cfx # Fat Side Edge Off Wide
FA 101,132 0.210 0.191 0.154 0.104 0.058

Howry's fastball is less "fat" than the average FA in the above sample

Howry's raw numbers ....

mon. yr. n Fat MPH BBp9* BABIP* Swing Whiff
7 2007 101 0.178 94.2 0.7 0.359 0.505 0.196
8 2007 189 0.180 93.9 2.5 0.176 0.571 0.204
9 2007 156 0.199 94.8 1.2 0.268 0.622 0.186
4 2008 168 0.202 90.8 1.4 0.391 0.548 0.098
5 2008 143 0.224 92.1 1.8 0.318 0.546 0.154
6 2008 124 0.194 93.3 0.9 0.344 0.532 0.121
7 2008 171 0.175 92.8 1.4 0.238 0.579 0.172
8 2008 120 0.150 92.2 0.8 0.361 0.542 0.108
9 2008 98 0.174 91.7 5.4 0.478 0.510 0.280

Pictures ...

Star-divide

Howry9_medium Howry10_medium Howry11_medium
Yea, I'm not getting anything.  This was only a test.  The metrics applied may not be useful, the samples too small, the analysis too crude.  But, it is another way of trying to put PITCHf/x together with performance - something I've found challenging to date.

Bonus: Speed Charts for Howry. 

Howry1_medium Howry2_medium

1 recs | Comment 21 comments

Story-email Email Printer Print

Comments

Display:

How awesome is Harry Pavlidis?

The answer is “quite a bit.”

Webmaster of Driveline Mechanics
http://www.drivelinemechanics.com - An Unconventional Look at Scouting

by Kyle Boddy on Dec 30, 2008 5:40 AM EST reply reply actions actions   0 recs

I think you've got a good start

I wonder if distance from the center of the strike zone might be a way to describe pitches.

I think it can be pretty critical information. It would stir a lot of discussion if there were a simple way to express something like Jamie Moyer’s strike zone with hard underlying data. I doubt the Brewers beat him in the playoffs if he got his special outside strike calls and I think he would have lost his Series game if he didn’t get it.

I can also remember a discussion of Pujol’s strike zone after a series when he got a handful of pitches called balls that traveled down the middle of the strike zone. Bonds had similar discussions.

by ol Pete on Dec 30, 2008 11:22 AM EST reply reply actions actions   0 recs

Possibly

The middle-zone idea was Sky’s, and I think it makes sense. I usually use the zone and the paint, as it were, but I’ve also sliced the zone up 9 ways, or just sliced up everything 9 ways (the zone in the middle, then everything else out of zone).

I think one approach may be as such

1) Identify the highest SLG zone for each hitter (good luck with Vlad)
2) Measure pitcher’s abilities to avoid those spots with different pitches

This is flawed – assumes even scouting – but so is using the middle of the plate. Middle in and down may be the sweet spot for a lot of hitters.

by Harry Pavlidis on Dec 30, 2008 11:35 AM EST to parent up reply reply actions actions   0 recs

Number 1 sounds a lot like the “hot zone” in its various incarnations. Two is sort of but not exactly the converse. You’re right about that sweet spot, but thinking about it I don’t think there are many hitters who don’t have a high number down the middle.

by ol Pete on Dec 30, 2008 12:10 PM EST to parent up reply reply actions actions   0 recs

I just added

League #‘s for the slices. The rates don’t add up to 1.00 for a reason – there is an “other” category of pitches that aren’t covered – that 30% or so are too high or low to be a strike, but, could be important anyway (particularly closer to the zone).

by Harry Pavlidis on Dec 30, 2008 12:33 PM EST reply reply actions actions   0 recs

Care to share the query you use for splitting into slices?

I’m curious to see the resulting BABIP and SLGBIP for each of those.

I’m willing to do the work (well some of it anyway) if you can save me the time of re-figuring the borders of the slices.

Thanks.

by Dan Turkenkopf on Dec 30, 2008 12:50 PM EST to parent up reply reply actions actions   0 recs

I'm doing the same, but the more the merrier
select
t.cubsfx_type,
 count(t.pitch_id) as `#`,
SUM AND (b.TopAvg >= t.pz) AND (t.px >=-.3335) AND (t.px <=.3335),1,0)) /
  count(t.pitch_id) as `Fat`,
SUM AND (b.TopAvg >= t.pz) AND ( (t.px >=-.667 AND t.px < -.3335) or (t.px <=.667 AND t.px >.3335) ),1,0)) /
  count(t.pitch_id) as `Side`,
SUM AND (b.TopAvg >= t.pz) AND ( (t.px >=-1 AND t.px < -.667) or (t.px <=1 AND t.px >.667) ),1,0)) /
  count(t.pitch_id) as `Edge`,
SUM AND (b.TopAvg >= t.pz) AND ( (t.px >=-1.3335 AND t.px < -1) or (t.px <=1.3335 AND t.px >1) ),1,0)) /
  count(t.pitch_id) as `Off`,
SUM AND (b.TopAvg >= t.pz) AND ( (t.px >=-1.667 AND t.px < -1.3335) or (t.px <=1.667 AND t.px >1.3335) ),1,0)) /
  count(t.pitch_id) as `Wide`

from
tspin t,
atbats a,
tbatters b


where
 length(t.cubsfx_type) = 2 and t.cubsfx_type = ‘FA’ and
t.ab_id = a.ab_id and a.batter = b.mlbid


group by 1
;

Is how I do it. But that has some custom tables (departures from the base data etc). You could replace b.BotAvg with 1.45 and b.TopAvg with 3.55 (or something like that) and be close enough. Try this

select
t.pitch_type,
 count(t.pitch_id) as `#`,
SUM AND (3.55 >= t.pz) AND (t.px >=-.3335) AND (t.px <=.3335),1,0)) /
  count(t.pitch_id) as `Fat`,
SUM AND (3.55 >= t.pz) AND ( (t.px >=-.667 AND t.px < -.3335) or (t.px <=.667 AND t.px >.3335) ),1,0)) /
  count(t.pitch_id) as `Side`,
SUM AND (3.55 >= t.pz) AND ( (t.px >=-1 AND t.px < -.667) or (t.px <=1 AND t.px >.667) ),1,0)) /
  count(t.pitch_id) as `Edge`,
SUM AND (3.55 >= t.pz) AND ( (t.px >=-1.3335 AND t.px < -1) or (t.px <=1.3335 AND t.px >1) ),1,0)) /
  count(t.pitch_id) as `Off`,
SUM AND (3.55 >= t.pz) AND ( (t.px >=-1.667 AND t.px < -1.3335) or (t.px <=1.667 AND t.px >1.3335) ),1,0)) /
  count(t.pitch_id) as `Wide`

from
pitches t
group by 1
;

by Harry Pavlidis on Dec 30, 2008 1:17 PM EST to parent up reply reply actions actions   0 recs

What database software do you use?

MySQL is complaining about the use of SUM AND. I haven’t spent the time to really dive into it in detail yet.

On a side note, is your tbatters table a calculated top and bottom strike zone for each batter? Did you simply average the pitchfx recorded values?

by Dan Turkenkopf on Dec 30, 2008 4:29 PM EST to parent up reply reply actions actions   0 recs

that's a goof from the comment formatting

Try this (and, about the zones, tbatters is the lookup table I use that has the average PFX operator zone top/btm for each hitter).

select
t.pitch_type,
count(t.pitch_id) as `#`,
SUM(if((3.55 >= t.pz) AND (t.px >=-.3335) AND (t.px <=.3335),1,0)) /
count(t.pitch_id) as `Fat`,
SUM(if((3.55 >= t.pz) AND ( (t.px >=-.667 AND t.px < -.3335) or (t.px <=.667 AND t.px >.3335) ),1,0)) /
count(t.pitch_id) as `Side`,
SUM(if((3.55 >= t.pz) AND ( (t.px >=-1 AND t.px < -.667) or (t.px <=1 AND t.px >.667) ),1,0)) /
count(t.pitch_id) as `Edge`,
SUM(if((3.55 >= t.pz) AND ( (t.px >=-1.3335 AND t.px < -1) or (t.px <=1.3335 AND t.px >1) ),1,0)) /
count(t.pitch_id) as `Off`,
SUM(if((3.55 >= t.pz) AND ( (t.px >=-1.667 AND t.px < -1.3335) or (t.px <=1.667 AND t.px >1.3335) ),1,0)) /
count(t.pitch_id) as `Wide`

from
pitches t
group by 1

by Harry Pavlidis on Dec 30, 2008 6:07 PM EST to parent up reply reply actions actions   0 recs

Yep that did it

Thanks. Sorry for making you do my dirty work.

That’s what happens when I’m flitting back and forth from project to project.

by Dan Turkenkopf on Dec 30, 2008 6:15 PM EST to parent up reply reply actions actions   0 recs

Here's an example

While digging up older work on Penny for a new post here, I found this

Marquis v Penny which has slugging against by pitch type. I lost the code for that (thought I had a back-up, not so much), but I’m reconstructing it today, along with ground/line/pop/fly etc.

by Harry Pavlidis on Dec 30, 2008 1:20 PM EST reply reply actions actions   0 recs

All Pitches Location by Slice (%'s are of all pitches)
in          
Fat        92,559       9.1%
Side       70,975       7.0%
Edge       49,635       4.9%
Off        30,752       3.0%
Wide       16,077       1.6%
Other     119,814      11.8%


out          
Fat       109,757      10.8%
Side      113,535      11.2%
Edge       97,127       9.6%
Off        68,265       6.7%
Wide       38,481       3.8%
Other     205,483      20.3%


both sides          
Fat       202,316      20.0%
Side      184,510      18.2%
Edge      146,762      14.5%
Off        99,017       9.8%
Wide       54,558       5.4%
Other     325,297      32.1%


in        379,812      37.5%
out       632,648      62.5%
all     1,012,460      

by Harry Pavlidis on Dec 30, 2008 6:55 PM EST reply reply actions actions   0 recs

Swing Rates by Slice
in          #         SwRt
Fat       64,645      69.8%
Side      47,034      66.3%
Edge      28,123      56.7%
Off       12,043      39.2%
Wide       3,401      21.2%
Other     34,921      29.1%

out         #         SwRt
Fat       75,444      68.7%
Side      70,777      62.3%
Edge      49,472      50.9%
Off       23,147      33.9%
Wide       7,081      18.4%
Other     49,006      23.8%

both sides         sWrT
Fat      140,089    69.2%
Side     117,811    63.9%
Edge      77,595    52.9%
Off       35,190    35.5%
Wide      10,482    19.2%
Other     83,927    25.8%


tot         #         SwRt
in       190,167      50.1%
out      274,927      43.5%
all      465,094      45.9%

by Harry Pavlidis on Dec 30, 2008 7:04 PM EST reply reply actions actions   0 recs

Fastball Split by Count

Type Balls Strikes # Fat Side Edge Off Wide
 ‘FA’ 0 0 111902 0.2595 0.2358 0.1838 0.1195 0.0642
 ‘FA’ 0 1 43052 0.2092 0.2026 0.1870 0.1419 0.0866
 ‘FA’ 0 2 19171 0.1325 0.1390 0.1372 0.1195 0.0838
 ‘FA’ 1 0 46410 0.2750 0.2450 0.1839 0.1179 0.0601
 ‘FA’ 1 1 36723 0.2363 0.2224 0.1903 0.1309 0.0744
 ‘FA’ 1 2 27671 0.1792 0.1821 0.1677 0.1305 0.0830
 ‘FA’ 2 0 19055 0.2988 0.2534 0.1802 0.1083 0.0489
 ‘FA’ 2 1 23975 0.2792 0.2444 0.1871 0.1143 0.0573
 ‘FA’ 2 2 26551 0.2320 0.2183 0.1821 0.1207 0.0716
 ‘FA’ 3 0 7055 0.3076 0.2564 0.1711 0.0985 0.0394
 ‘FA’ 3 1 12603 0.3098 0.2614 0.1780 0.1023 0.0438
 ‘FA’ 3 2 20269 0.3048 0.2546 0.1775 0.0958 0.0469

I can’t figure out how to get the nice formatting like Harry has.

by Dan Turkenkopf on Dec 30, 2008 10:01 PM EST reply reply actions actions   0 recs

can you add the "other"

I can do it in my mind, but it would be easier to see it on page I think.

by Harry Pavlidis on Dec 30, 2008 10:23 PM EST reply reply actions actions   0 recs

never mind the quotes

just use the pre tag around your entry, and avoid leading spaces


Type B S # Fat Side Edge Off Wide
‘FA’ 0 0 111902 0.2595 0.2358 0.1838 0.1195 0.0642
‘FA’ 0 1 43052 0.2092 0.2026 0.1870 0.1419 0.0866
‘FA’ 0 2 19171 0.1325 0.1390 0.1372 0.1195 0.0838
‘FA’ 1 0 46410 0.2750 0.2450 0.1839 0.1179 0.0601
‘FA’ 1 1 36723 0.2363 0.2224 0.1903 0.1309 0.0744
‘FA’ 1 2 27671 0.1792 0.1821 0.1677 0.1305 0.0830
‘FA’ 2 0 19055 0.2988 0.2534 0.1802 0.1083 0.0489
‘FA’ 2 1 23975 0.2792 0.2444 0.1871 0.1143 0.0573
‘FA’ 2 2 26551 0.2320 0.2183 0.1821 0.1207 0.0716
‘FA’ 3 0 7055 0.3076 0.2564 0.1711 0.0985 0.0394
‘FA’ 3 1 12603 0.3098 0.2614 0.1780 0.1023 0.0438
‘FA’ 3 2 20269 0.3048 0.2546 0.1775 0.0958 0.0469

by Harry Pavlidis on Dec 30, 2008 10:25 PM EST reply reply actions actions   0 recs

More pitch types (includes 'Other' slice)
Changeup
Type    B    S    #        Fat       Side      Edge      Off       Wide      Other
'CH'    0    0    16727    0.2651    0.2431    0.1879    0.1235    0.0667    0.1137
'CH'    0    1    10822    0.2424    0.2281    0.1912    0.1364    0.0852    0.1167
'CH'    0    2    3718     0.1974    0.1958    0.1805    0.1490    0.1111    0.1662
'CH'    1    0    9625     0.2820    0.2514    0.1835    0.1178    0.0634    0.1019
'CH'    1    1    10175    0.2689    0.2429    0.1933    0.1297    0.0667    0.0985
'CH'    1    2    7046     0.2350    0.2183    0.1842    0.1436    0.0945    0.1244
'CH'    2    0    2300     0.2896    0.2548    0.1822    0.1152    0.0513    0.1069
'CH'    2    1    4584     0.2812    0.2598    0.1913    0.1126    0.0615    0.0936
'CH'    2    2    6581     0.2614    0.2325    0.1954    0.1336    0.0734    0.1037
'CH'    3    0    299      0.3211    0.2910    0.1338    0.1070    0.0368    0.1103
'CH'    3    1    1050     0.3190    0.2638    0.1800    0.0914    0.0524    0.0934
'CH'    3    2    3108     0.3092    0.2449    0.1869    0.1081    0.0524    0.0985
Curveball
Type    B    S    #        Fat       Side      Edge      Off       Wide      Other
'CU'    0    0    17259    0.2865    0.2489    0.1746    0.1038    0.0545    0.1317
'CU'    0    1    10933    0.2717    0.2419    0.1876    0.1163    0.0709    0.1116
'CU'    0    2    6210     0.2464    0.2180    0.1804    0.1275    0.0882    0.1395
'CU'    1    0    4278     0.3195    0.2466    0.1748    0.1050    0.0547    0.0994
'CU'    1    1    7638     0.2849    0.2561    0.1781    0.1096    0.0618    0.1095
'CU'    1    2    9787     0.2489    0.2359    0.1824    0.1278    0.0804    0.1246
'CU'    2    0    569      0.3111    0.2513    0.1722    0.1142    0.0475    0.1037
'CU'    2    1    2043     0.3138    0.2614    0.1747    0.0999    0.0499    0.1003
'CU'    2    2    6455     0.2741    0.2438    0.1802    0.1170    0.0689    0.1160
'CU'    3    0    38       0.2632    0.3158    0.1316    0.0789    0.1053    0.1052
'CU'    3    1    283      0.3039    0.2473    0.1873    0.1131    0.0495    0.0989
'CU'    3    2    1891     0.2919    0.2734    0.1750    0.1005    0.0539    0.1053
Fastball
Type    B    S    #        Fat       Side      Edge      Off       Wide      Other
'FA'    0    0    111903    0.2595    0.2358    0.1838    0.1195    0.0642    0.1372
'FA'    0    1    43052     0.2092    0.2026    0.1870    0.1419    0.0866    0.1727
'FA'    0    2    19171     0.1325    0.1390    0.1372    0.1195    0.0838    0.3880
'FA'    1    0    46410     0.2750    0.2450    0.1839    0.1179    0.0601    0.1181
'FA'    1    1    36724     0.2363    0.2224    0.1903    0.1309    0.0744    0.1457
'FA'    1    2    27672     0.1792    0.1821    0.1677    0.1305    0.0830    0.2575
'FA'    2    0    19055     0.2988    0.2534    0.1802    0.1083    0.0489    0.1104
'FA'    2    1    23975     0.2792    0.2444    0.1871    0.1143    0.0573    0.1177
'FA'    2    2    26554     0.2320    0.2183    0.1820    0.1207    0.0717    0.1753
'FA'    3    0    7055      0.3076    0.2564    0.1711    0.0985    0.0394    0.1270
'FA'    3    1    12603     0.3098    0.2614    0.1780    0.1023    0.0438    0.1047
'FA'    3    2    20254     0.3049    0.2546    0.1775    0.0958    0.0469    0.1203
Slider
Type    B    S    #        Fat       Side      Edge      Off       Wide      Other
'SL'    0    0    22066    0.2667    0.2444    0.1936    0.1254    0.0653    0.1046
'SL'    0    1    14158    0.2195    0.2103    0.1993    0.1492    0.0981    0.1236
'SL'    0    2    8108     0.1511    0.1600    0.1761    0.1623    0.1306    0.2199
'SL'    1    0    8414     0.2857    0.2488    0.1904    0.1222    0.0647    0.0882
'SL'    1    1    11061    0.2417    0.2316    0.2025    0.1446    0.0805    0.0991
'SL'    1    2    12460    0.1892    0.1897    0.1840    0.1636    0.1139    0.1596
'SL'    2    0    1954     0.2897    0.2625    0.1832    0.1059    0.0614    0.0973
'SL'    2    1    4732     0.2980    0.2473    0.1972    0.1145    0.0651    0.0779
'SL'    2    2    9801     0.2355    0.2182    0.1975    0.1462    0.0903    0.1123
'SL'    3    0    171      0.2865    0.2515    0.1871    0.1170    0.0468    0.1111
'SL'    3    1    1089     0.3067    0.2498    0.2048    0.1120    0.0533    0.0734
'SL'    3    2    4475     0.3055    0.2550    0.1837    0.1180    0.0570    0.0808

by Dan Turkenkopf on Dec 31, 2008 10:36 PM EST to parent up reply reply actions actions   0 recs

I found an error

in my slg calcs – fixing it now (not sure of the impact yet)

by Harry Pavlidis on Dec 31, 2008 12:17 AM EST reply reply actions actions   0 recs

ouch

yep, I’ve made this mistake before. Over counting pitches, and skewing the #‘s … I’ll re-run all this baseline stuff, triple-check it and make a new post out of it.

by Harry Pavlidis on Dec 31, 2008 12:19 AM EST to parent up reply reply actions actions   0 recs

Comments For This Post Are Closed


User Tools

We use numbers and stuff.
Community Guidelines
Start posting on Beyond the Box Score »

Join SB Nation and dive into communities focused on all your favorite teams.

FanPosts

Community blog posts and discussion.

Recent FanPosts

Small
SLG and Speed
Small
Interleague Attendance Nonsense
Limes_125_small
A Note About Becoming a BtB Author: Contributing to the Community Helps
Small
Is Adrian Beltre underrated...?
Limes_125_small
How Do You Like the New Daily Link Roundup Posts?
Stlouiscardinals_small
Depth Charts Help
Zorilla_small
How Do You Measure a Pitching Coach?
Limes_125_small
Looking For SQL & Tech Geek Help For Collaborative Projects
Small
When do MLBers get paid...?
Limes_125_small
Help Me Expand Who I Follow On Google Reader

Post_icon New FanPost All FanPosts Carrot-mini

FanShots

Quick hits of video, photos, quotes, chats, links and lists that you find around the web.

Recent FanShots

There's your human element.  Why, when the technology is readily available, are humans still calling balls and strikes?
Fire Jim Leyland: Fu-Te Ni Follow Up; Concern Over Big Three?
Rany Gets Banned By the Royals
Contract Retrospective: Vernon Wells' 7-year, $126 Million Contract
The Rockets are innovative
Flip Flop Fly Ball
Yanks Considered Trading Rivera For Wells In '95: MLB Rumors - MLBTradeRumors.com
Bullpen Usuage Charts for Last 5 days
MiLB Game of the Week
Drive Mechanics Looks at Chris Perez's Mechanics and Pitch F/X numbers

Post_icon New FanShot All FanShots Carrot-mini

Most Commented

Subscribe to BtB via Email

Enter your email address:

Delivered by FeedBurner

BtB Goes Social

BtB on Facebook

BtB_Sky on Twitter


Managers

Mos-def-the-ecstatic_small R.J. Anderson

Limes_125_small Sky Kalkman

Editors

Rawlings_baseball_bigger_small Dan Turkenkopf

Face_small Harry Pavlidis

770insig_small Jeff Zimmerman (TucsonRoyal)

Rickstache_small erik

Authors

Jinaz-reds-avatar_small JinAZ

Hms_surprise_small Graham

Wisc19cropped2_small jhmoore

Raysring1_small Tommy Rancel

E52205a2_small tbsmkdn

Official Partner of Yahoo! Sports