U.S. Open - 2nd Rd: What will be Xander Schauffele’s COMBINED SCORE on Holes 12-14?
11 Strokes or Fewer
12 Strokes or More
Inputs To Solve
Pebble Beach Golf Links Course Stats
##### User Estimates #####
hole_12 = {'1':1,
'2':11,
'3':116,
'4':26,
'5':2}
hole_13 = {'3':23,
'4':107,
'5':23,
'6':3}
hole_14 = {'3':3,
'4':48,
'5':85,
'6':19,
'7':1}
print("The observed distribution of scores on hole 12 is: %s" % hole_12)
print("The observed distribution of scores on hole 13 is: %s" % hole_13)
print("The observed distribution of scores on hole 14 is: %s" % hole_14)
The observed distribution of scores on hole 12 is: {‘1’: 1, ‘2’: 11, ‘3’: 116, ‘4’: 26, ‘5’: 2}
The observed distribution of scores on hole 13 is: {‘3’: 23, ‘4’: 107, ‘5’: 23, ‘6’: 3}
The observed distribution of scores on hole 14 is: {‘3’: 3, ‘4’: 48, ‘5’: 85, ‘6’: 19, ‘7’: 1}
## Inputs Defined in the Problem
strokes = [11]
golfers = ['Schauffele12','Schauffele13','Schauffele14']
Method to Solve
- Enumerate all the possible combinations of observed scores and their respective probabilities on the 3 holes.
- The probability that 11 or Fewer Strokes are recorded by Schauffele on holes 12-14 is the sum of the probabilities for all the outcomes where the total number of Strokes is 11 or less.
import numpy as np
import pandas as pd
t=sum(hole_12.values())
for i in hole_12:
hole_12[i] = hole_12[i]/t
t=sum(hole_13.values())
for i in hole_13:
hole_13[i] = hole_13[i]/t
t=sum(hole_14.values())
for i in hole_14:
hole_14[i] = hole_14[i]/t
y = np.array([(x,y,z) for x in hole_12.keys() for y in hole_13.keys() for z in hole_14.keys()])
scores = pd.DataFrame(y)
scores.columns = golfers
scores = scores.convert_objects(convert_numeric=True)
scores['total_strokes'] = scores.sum(axis=1)
x = np.array([(x,y,z) for x in hole_12.values() for y in hole_13.values() for z in hole_14.values()])
probability = pd.DataFrame(x)
probability.columns = golfers
probability['p'] = probability.product(axis=1)
scores.head()
Schauffele12 | Schauffele13 | Schauffele14 | total_strokes | |
---|---|---|---|---|
0 | 1 | 3 | 3 | 7 |
1 | 1 | 3 | 4 | 8 |
2 | 1 | 3 | 5 | 9 |
3 | 1 | 3 | 6 | 10 |
4 | 1 | 3 | 7 | 11 |
probability.head()
Schauffele12 | Schauffele13 | Schauffele14 | p | |
---|---|---|---|---|
0 | 0.00641 | 0.147436 | 0.019231 | 0.000018 |
1 | 0.00641 | 0.147436 | 0.307692 | 0.000291 |
2 | 0.00641 | 0.147436 | 0.544872 | 0.000515 |
3 | 0.00641 | 0.147436 | 0.121795 | 0.000115 |
4 | 0.00641 | 0.147436 | 0.006410 | 0.000006 |
p = probability['p'][scores['total_strokes']<=strokes].sum()
Solution
print("The proability that Xander Schauffele's COMBINED SCORE on Holes 12-14 is 11 or less is ~%s" % round(p,3))
print("The proability that Xander Schauffele's COMBINED SCORE on Holes 12-14 is 12 or more is ~%s" % round((1-p),3))
The proability that Xander Schauffele’s COMBINED SCORE on Holes 12-14 is 11 or less is ~0.337
The proability that Xander Schauffele’s COMBINED SCORE on Holes 12-14 is 12 or more is ~0.663