optimize_pi_ratings: Optimize Pi Ratings

Description Usage Arguments Value Examples

View source: R/optimize_pi_ratings.R

Description

This function performs grid optimization on a prespecified set of parameters to find the optimal learning rates for calculating the pi ratings for sport teams in competitive matches for a set of teams in their respective set of sport matches. The pi rating system was developed by Constantinou and Fenton Constantinou and Fenton (2013) <doi:10.1515/jqas-2012-0036>

Usage

1
optimize_pi_ratings(teams, outcomes, lambda_in, gamma_in, b_in, c_in)

Arguments

teams

an (n x 2) character matrix, contains unique names for the respective home and away teams in n subsequent matches

outcomes

an (n x 2) numeric matrix, contains the points that the respective home and away teams scored in n subsequent matches

lambda_in

a numerical vector, learning rate values to consider in the grid optimization, default value: seq(0, 0.1, 0.005)

gamma_in

a numerical vector, learning rate values to consider in the grid optimization, default value: seq(0, 1, 0.05)

b_in

a constant, logarithmic base, default value: 10

c_in

a constant, default value: 3

Value

a dataframe with the results of the grid optimization, the mean squared error for every combination of learning rates lambda and gamma specified in the parameter vectors

Examples

1
2
3
4
# toy example
teams <- matrix(c("team A", "team B", "team B", "team A"), nrow = 2)
outcomes <- matrix(c(1, 3, 2, 1), nrow = 2)
optimize_pi_ratings(teams, outcomes, seq(0.05, 0.07, 0.005), seq(0.4, 0.6, 0.05))

Example output

calculated result for lambda = 0.05, gamma = 0.4
calculated result for lambda = 0.05, gamma = 0.45
calculated result for lambda = 0.05, gamma = 0.5
calculated result for lambda = 0.05, gamma = 0.55
calculated result for lambda = 0.05, gamma = 0.6
calculated result for lambda = 0.055, gamma = 0.4
calculated result for lambda = 0.055, gamma = 0.45
calculated result for lambda = 0.055, gamma = 0.5
calculated result for lambda = 0.055, gamma = 0.55
calculated result for lambda = 0.055, gamma = 0.6
calculated result for lambda = 0.06, gamma = 0.4
calculated result for lambda = 0.06, gamma = 0.45
calculated result for lambda = 0.06, gamma = 0.5
calculated result for lambda = 0.06, gamma = 0.55
calculated result for lambda = 0.06, gamma = 0.6
calculated result for lambda = 0.065, gamma = 0.4
calculated result for lambda = 0.065, gamma = 0.45
calculated result for lambda = 0.065, gamma = 0.5
calculated result for lambda = 0.065, gamma = 0.55
calculated result for lambda = 0.065, gamma = 0.6
calculated result for lambda = 0.07, gamma = 0.4
calculated result for lambda = 0.07, gamma = 0.45
calculated result for lambda = 0.07, gamma = 0.5
calculated result for lambda = 0.07, gamma = 0.55
calculated result for lambda = 0.07, gamma = 0.6
   mean.squared.error lambda gamma
1            2.444552  0.050  0.40
2            2.439008  0.055  0.40
3            2.433464  0.060  0.40
4            2.427921  0.065  0.40
5            2.422377  0.070  0.40
6            2.437622  0.050  0.45
7            2.431385  0.055  0.45
8            2.425149  0.060  0.45
9            2.418913  0.065  0.45
10           2.412678  0.070  0.45
11           2.430692  0.050  0.50
12           2.423763  0.055  0.50
13           2.416835  0.060  0.50
14           2.409906  0.065  0.50
15           2.402979  0.070  0.50
16           2.423763  0.050  0.55
17           2.416142  0.055  0.55
18           2.408521  0.060  0.55
19           2.400901  0.065  0.55
20           2.393281  0.070  0.55
21           2.416835  0.050  0.60
22           2.408521  0.055  0.60
23           2.400208  0.060  0.60
24           2.391896  0.065  0.60
25           2.383585  0.070  0.60

piratings documentation built on May 27, 2019, 9:05 a.m.