Beyond the Box Score: An SB Nation Community

Navigation: Jump to content areas:


Sports blogs for fans, by fans.
Around SBN: Fedor vs Rogers Results and Live Coverage

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

More from Beyond the Box Score

Speed Check - AFL vs. MLB

Nov 2009 by Harry Pavlidis - 4 comments

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 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 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 up reply 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 up reply 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 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 up reply 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 up reply 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 up reply 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 up reply 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 up reply 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 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 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 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 actions   0 recs

put the date into the "

and also use the

 tag

those splits are very interesting.

by Harry Pavlidis on Dec 30, 2008 10:16 PM EST up reply 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 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 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 up reply 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 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 up reply actions   0 recs

Comments For This Post Are Closed


User Tools

We use numbers and stuff.
Community Guidelines
Why be a member?
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
PZR-based Win Values 2001-2006
Small
The "30 parks on a budget" challenge
Sunflower_small
World Series Simulation, Game #6
Small
JT20 Dynasty League
E52205a2_small
New Look
Sth70021_small
Exploring Hit f/x, Albeit Badly
Redcap_small
Ricky Nolasco: 4 WAR or 1 WAR?
Redcap_small
Apparently I can't do park adjustments
Small
Which tells us more: The last 7 at bats or 7 at bats against this pitcher?
Sleepy_jeff_small
How Efficient and Effective Were the Rockies in 2009?

+ New FanPost All FanPosts >

FanShots

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

Recent FanShots

The Mistake Lottery
On the Field, the Yankees Are The Team of the Decade. Off It? The Red Sox.
Tigers' all-time WAR leaders
Primer on Runs Created
How to improve basketball
LB Keith Bulluck uses a sabermetric analogy to explain the Titans' quarterback situation.
Alcides Escobar "abandoned his daughter before she was born"
UZR, Scouting, and the Fans
Not-So-Lousy Lineup Optimizer, Playoff Edition: New York Yankees

+ New FanShot All FanShots >

BtB on Twitter

Main Feed: @BtBScore

Tommy B: @tommy_bennett
Sky: @BtB_Sky
Dan: @dturkenk
Harry: @harrypav
Jinaz: @jinazreds
Jack: @jh_moore
Erik: @Erik_Manning
Tommy R: @trancel
Justin: @justinbopp

Subscribe to BtB via Email

Enter your email address:

Delivered by FeedBurner

Most Commented

Limes_125_small
Time To Move On
Nando_small
A Complete and Lenghty List of Baseball-Related Things Miguel Olivo is Good At
770insig_small
Negative Team WAR - 2009 Edition
Aviles_small
Minnesota: Fielding TargetView Before & After JJ Hardy
E52205a2_small
New Look

Managers

Nando_small R.J. Anderson

Limes_125_small Sky Kalkman

E52205a2_small Tommy Bennett

Editors

Face_small Harry Pavlidis

Rawlings_baseball_bigger_small Dan Turkenkopf

770insig_small Jeff Zimmerman (TucsonRoyal)

Aviles_small Justin Bopp

Authors

Banny_small erik

Raysring1_small Tommy Rancel

Jinaz-reds-avatar_small JinAZ

Jmlogo_small Jack Moore

1753738656_110919ebe9_o_small vivaelpujols

1_small Graham

Baseball_small Mike Rogers

Redcap_small SFiercex4

Small Patrick Clark

Walter_album_small Walter Fulbright