# Analysis and Parameterization of Sports Performance: A Case Study of Soccer
## 4 Dataset and Parameterization
In order to quantify these factors as a function of age, 3 rd-degree polynomial trend lines have been generated (Equations (1) and (2)) from which the following formulas are extracted, where \(x\) is the age of the athlete:  
\[f_{experience}=0.0062x^{3}-0.7504x^{2}+29.955x-293.72 \tag{1}\]  
\[f_{physical}=0.0155x^{3}-1.6693x^{2}+53.424x-434.14 \tag{2}\]  
It is pertinent to highlight that these functions, being automatically generated, will not adhere flawlessly to the predetermined range of [0, 100]. Consequently, any values that fall below zero will be rounded up to 0, while those exceeding 100 will be reduced to 100. The concluding phase of the parameterization procedure involves assigning an overall score to each unit. We will utilize this comprehensive mean in subsequent calculations to estimate the likelihood of winning, tying, or losing a game. We will derive this team rating in reference to the Algorithm 1 as delineated below:  
As detailed in the algorithm, the overall team average is calculated from the scores by lines (goal, defense, midfield, and forward) and another average score of the team's players. All this is determined considering the minutes played by each player. Considering the above, each of these scores is given a specific weight for the calculation of this team rating. \begin{table}
\begin{tabular}{c c c c} \hline
**Age** & **Experience** & **Physical** & **\%** \\ \hline
30 & 95 & 92.5 & 94\% \\
31 & 100 & 85 & 93\% \\
32 & 100 & 80 & 90\% \\
33 & 100 & 70 & 85\% \\
34 & 100 & 60 & 80\% \\
35 & 100 & 55 & 78\% \\
36 & 100 & 50 & 75\% \\
37 & 100 & 40 & 70\% \\
38 & 100 & 30 & 65\% \\
39 & 100 & 25 & 63\% \\
40 & 100 & 20 & 60\% \\
41 & 100 & 17.5 & 59\% \\
42 & 100 & 15 & 58\% \\
43 & 100 & 12.5 & 56\% \\
44 & 100 & 10 & 55\% \\
45 & 100 & 7.5 & 54\% \\ \hline \end{tabular}
\end{table} 
Table 9: _Cont._```
INPUT:team_name OUTPUT:average_list INICIO: average_list < [] ids < _pids_team(team_name) score_gk, min_gk < 0 //goalkeeper rating score_def, min_def < - 0 //defense rating score_mid, min_mid < 0 //middle rating score_att, min_att < 0 //attacker rating score_overall, min_overall < 0 //overall rating media < - 0 FOR EACH id IN ids DO: pos < - return_data(\"overall\", \"position\", id) min_player < - return_data(\"physical\", \"min_player\", id) stats < - calc_stats(id, pos) avg_player < - stats IF (pos == \"GK\") THEN: min_gk = min_gk + min_player score_port = score_por + (avg_player \(\times\) min_player) ELSE IF (pos == \"DF\") O (pos == \"LT\") THEN: min_def = min_def + min_player score_def = score_def + (avg_player \(\times\) min_player) ELSE IF (pos == \"MCD\") O (pos == \"MC\") O (pos == \"MCO\") THEN: min_mid = min_mid + min_player score_mid = score_mid + (avg_player * min_player) ELSE IF (pos == \"EXT\") O (pos == \"DC\") THEN: min_att = min_att + min_player score_att = score_att + (avg_player \(\times\) min_player) min_overall < - min_overall + min_player score_overall < - score_overall + (avg_player \(\times\) min_player) score_gk < (score_port/min_por) score_def < (score_def/min_def) score_mid < (score_med + min_med) score_att < (score_att/min_del) score_overall < (score_grl/min_grl) average < ((score_gk \(\times\) 0.1) + (score_def \(\times\) 0.15) + (score_mid \(\times\) 0.2) + (score_att \(\times\) 0.3) + (score_overall \(\times\) 0.25)) average_list < - [average, score_gk, score_def, score_mid, score_att, score_overall] RETURN:average_list
```

**Algorithm 1**Calculation of the overall average of a team

## 5 Fuzzy Logic Applied Functions

### Fuzzy Logic for Players

Equations (3)-(7) show the membership functions to apply fuzzy logic to the different parameters and thus determine the player's talent in each aspect of the game:

\[f(x)_{very\ had}=\left\{ \begin{aligned} & 1,\ if\ 0\leq x<20\\ &\frac{40-x}{20},\ \ \ if\ 20\leq x<40\end{aligned} \right. \tag{3}\]

\[f(x)_{bad}=\left\{ \begin{aligned} &\frac{x-20}{20},\ \ if\ 20\leq x<40\\ &\frac{60-x}{20},\ \ \ if\ 40\leq x<60\end{aligned} \right. \tag{4}\]\[f(x)_{average}=\left\{