U.S. Open - 1st Rd (#3 Roger Federer v. Sumit Nagal): What will be Federer’s MARGIN of VICTORY?
9:40PM
8 Games or Fewer or Federer Loses
9 Games or More
Inputs Needed To Solve
Service Games Won %
Roger Federer
Sumit Nagal
##### User Estimates #####
RF_SRV_Wperct = .90
SN_SRV_Wperct = .50
## Inputs Defined in the Problem
difference = 8
Method To Solve
- [1] Simulate 9999 Sets between Roger Federer and Sumit Nagalusing their respective Service Games Won Percent
- [2] The ratio of Simulated Matches where RF net losses less than 8 games to the total number of Simulations is an estimate of the probability (p_8orless) or 9 or less based on the Monte Carlo Method.
## [1]
import numpy as np
def sim_game(server,perct1,perct2):
if server:
serve = np.random.choice([1,0],1,p=[perct1,1-perct1])
if serve == 1:
ans = '1'
else:
ans = '0'
else:
serve = np.random.choice([1,0],1,p=[perct2,1-perct2])
if serve == 1:
ans = '0'
else:
ans = '1'
return ans
def set_over(winner):
set_over = False
if winner.count('1') >= 7:
set_over = True
if winner.count('0') >= 7:
set_over = True
if winner.count('1') >=6 and winner.count('0') < 5:
set_over = True
if winner.count('0') >=6 and winner.count('1') < 5:
set_over = True
if winner.count('0') == 6 and winner.count('1') == 6:
set_over = True
return set_over
def sim_set(perct1,perct2):
winner = ''
server = True
set_over_ = False
while not set_over_:
game = sim_game(server,perct1,perct2)
winner += str(game)
server = not server
set_over_ = set_over(winner)
return winner
## [2]
iterations = 9999
less_than_8 = 0
for i in range(iterations):
RF = 0
SN = 0
RF_detlta = 0
while RF < 3 and SN < 3:
winner = (sim_set(RF_SRV_Wperct,SN_SRV_Wperct))
if winner.count('1') > winner.count('0'):
RF += 1
else:
SN += 1
RF_detlta += winner.count('1') - winner.count('0')
if RF_detlta <= difference:
less_than_8 += 1
p_8orless = less_than_8/iterations
Solution
print("The probability Federer's MARGIN OF VICTORY is 8 Games or Fewer is ~%s" % round(p_8orless,3))
The probability Federer's MARGIN OF VICTORY is 8 Games or Fewer is ~0.083
Info
download md file
email: krellabsinc@gmail.com
twitter: @KRELLabs
import sys
print(sys.version)
3.6.5 |Anaconda, Inc.| (default, Mar 29 2018, 13:32:41) [MSC v.1900 64 bit (AMD64)]
Posted on 8/26/2019