Home Archives Search Feed Football Squares How To Use


PGA Charles Schwab: How many BIRDIES will J. Thomas, J. Spieth AND R. Fowler record on Holes 1-4?


1:55M
4 or Fewer
5 or More


Inputs to Solve

2019 Course Stats

##### User Estimates #####

p_bird = [150/378, 85/378, 32/378, 40/378]

count = 1
for p in p_bird:
    print("The probability that a golfer BIRDIES hole " + str(count) + " is %s" % round(p,3))
    count +=1

The probability that a golfer BIRDIES hole 1 is 0.397
The probability that a golfer BIRDIES hole 2 is 0.225
The probability that a golfer BIRDIES hole 3 is 0.085
The probability that a golfer BIRDIES hole 4 is 0.106

## Inputs Defined in the Problem

total_birdies = 4

Method to Solve

## [1]

import numpy as np
import pandas as pd

golfers = ['1','2','3']

# Hole 1
p_other = 1 - p_bird[0]
prob = (p_bird[0],p_other)
bird = (1,0)
a = {}

y = np.array([(x,y,z) for x in bird for y in bird for z in bird])
birdies = pd.DataFrame(y)
birdies.columns = golfers
birdies['total_birdies'] = birdies.sum(axis=1)

x = np.array([(x,y,z) for x in prob for y in prob for z in prob])
probability = pd.DataFrame(x)
probability.columns = golfers
probability['p'] = probability.product(axis=1)

for i in set(birdies.total_birdies):
    a[i] = probability['p'][birdies['total_birdies']==i].sum()
    
# Hole 2
p_other = 1 - p_bird[1]
prob = (p_bird[1],p_other)
bird = (1,0)
b = {}

y = np.array([(x,y,z) for x in bird for y in bird for z in bird])
birdies = pd.DataFrame(y)
birdies.columns = golfers
birdies['total_birdies'] = birdies.sum(axis=1)

x = np.array([(x,y,z) for x in prob for y in prob for z in prob])
probability = pd.DataFrame(x)
probability.columns = golfers
probability['p'] = probability.product(axis=1)

for i in set(birdies.total_birdies):
    b[i] = probability['p'][birdies['total_birdies']==i].sum()
    
# Hole 3
p_other = 1 - p_bird[2]
prob = (p_bird[2],p_other)
bird = (1,0)
c = {}

y = np.array([(x,y,z) for x in bird for y in bird for z in bird])
birdies = pd.DataFrame(y)
birdies.columns = golfers
birdies['total_birdies'] = birdies.sum(axis=1)

x = np.array([(x,y,z) for x in prob for y in prob for z in prob])
probability = pd.DataFrame(x)
probability.columns = golfers
probability['p'] = probability.product(axis=1)

for i in set(birdies.total_birdies):
    c[i] = probability['p'][birdies['total_birdies']==i].sum()
    
# Hole 4
p_other = 1 - p_bird[3]
prob = (p_bird[3],p_other)
bird = (1,0)
d = {}

y = np.array([(x,y,z) for x in bird for y in bird for z in bird])
birdies = pd.DataFrame(y)
birdies.columns = golfers
birdies['total_birdies'] = birdies.sum(axis=1)

x = np.array([(x,y,z) for x in prob for y in prob for z in prob])
probability = pd.DataFrame(x)
probability.columns = golfers
probability['p'] = probability.product(axis=1)

for i in set(birdies.total_birdies):
    d[i] = probability['p'][birdies['total_birdies']==i].sum()
print("The number of possible birdies on hole 1 for 3 golfers and their respective probabilities are: %s" % a)
print("The number of possible birdies on hole 2 for 3 golfers and their respective probabilities are: %s" % b)
print("The number of possible birdies on hole 3 for 3 golfers and their respective probabilities are: %s" % c)
print("The number of possible birdies on hole 4 for 3 golfers and their respective probabilities are: %s" % d)

The number of possible birdies on hole 1 for 3 golfers and their respective probabilities are: {0: 0.2194467440121258, 1: 0.43311857370814294, 2: 0.2849464300711466, 3: 0.062488252208584776}
The number of possible birdies on hole 2 for 3 golfers and their respective probabilities are: {0: 0.46572275893613474, 1: 0.40532185504680673, 2: 0.11758483849480741, 3: 0.011370547522251}
The number of possible birdies on hole 3 for 3 golfers and their respective probabilities are: {0: 0.7669250032845677, 1: 0.2127884402176835, 2: 0.01967985574267593, 3: 0.0006067007550728611}
The number of possible birdies on hole 4 for 3 golfers and their respective probabilities are: {0: 0.714948404514766, 1: 0.25382783592240216, 2: 0.03003879715058013, 3: 0.0011849624122516817}

## [2]

holes = ['1','2','3','4']
outcomes = (0,1,2,3)

y = np.array([(w,x,y,z) for w in outcomes for x in outcomes for y in outcomes for z in outcomes])
birdies = pd.DataFrame(y)
birdies.columns = holes
birdies['total_birdies'] = birdies.sum(axis=1)

x = np.array([(w,x,y,z) for w in a.values() for x in b.values() for y in c.values() for z in d.values()])
probability = pd.DataFrame(x)
probability.columns = holes
probability['p'] = probability.product(axis=1)

birdies.head()
1 2 3 4 total_birdies
0 0 0 0 0 0
1 0 0 0 1 1
2 0 0 0 2 2
3 0 0 0 3 3
4 0 0 1 0 1
probability.head()
1 2 3 4 p
0 0.219447 0.465723 0.766925 0.714948 0.056038
1 0.219447 0.465723 0.766925 0.253828 0.019895
2 0.219447 0.465723 0.766925 0.030039 0.002354
3 0.219447 0.465723 0.766925 0.001185 0.000093
4 0.219447 0.465723 0.212788 0.714948 0.015548
## [3]

p_4BIRD = probability['p'][birdies['total_birdies']<=total_birdies].sum()

Solution

print("The probability that J. Thomas, J. Spieth AND R. Fowler record 4 BIRDIES or FEWER on holes 1-4 is ~%s" % round(p_4BIRD,3))

The probability that J. Thomas, J. Spieth AND R. Fowler record 4 BIRDIES or FEWER on holes 1-4 is ~0.934




Info

download markdown file
email: krellabsinc@gmail.com
twitter: @KRELLabs

import sys
print(sys.version)

3.6.5 (v3.6.5:f59c0932b4, Mar 28 2018, 16:07:46) [MSC v.1900 32 bit (Intel)]

Posted on 6/11/2020






← Next post    ·    Previous post →