Ok thanks for the help

# More Yomi Data

**Nopethebard**#142

I’m not on it yet but my question is “should I have heard of more than maybe 5% of these people?”

**vengefulpickle**#145

Yeah, most of the > 1700 folks were gone when I started (about 1.5 years ago, I guess?), and we’ve had more attrition since then.

**CKR**#148

@mysticjuicer is a .

I know it. He knows it. Through some sort of devil magic, he still convinces me to attack.

**vengefulpickle**#150

Ok, last dump of this data for a while, I think. This is for a model weighted towards more skill players. The character charts are based on win chance against best player with their best character (assuming an even matchup).

## Character Skill Levels

## A-C

## D-F

## G-I

## J-L

## M-O

## P-R

## S-U

## V-Z

## Most Even MUs

Character | Counterpick |
---|---|

## The Model

```
data {
int<lower=0> NG; // Number of games
int<lower=0> NM; // Number of matchups
int<lower=0> NP; // Number of players
int<lower=0> NC; // Number of characters
int<lower=0, upper=1> win[NG]; // Did player 1 win game
int<lower=1, upper=NM> mup[NG]; // Matchup in game
vector<lower=0, upper=1>[NG] non_mirror; // Is this a mirror matchup: 0 = mirror
int<lower=1, upper=NC> char1[NG]; // Character 1 in game
int<lower=1, upper=NC> char2[NG]; // Character 2 in game
int<lower=1, upper=NP> player1[NG]; // Player 1 in game
int<lower=1, upper=NP> player2[NG]; // Player 1 in game
vector[NG] elo_logit; // Player 1 ELO-based logit win chance
vector[NG] obs_weights;
}
parameters {
vector[NM] mu; // Matchup value
vector<upper=0>[NP] char_skill[NC]; // Player skill at character
real elo_logit_scale; // elo_logit scale
}
transformed parameters {
vector[NG] player_char_skill1;
vector[NG] player_char_skill2;
vector[NG] win_chance_logit;
for (n in 1:NG) {
player_char_skill1[n] = char_skill[char1[n], player1[n]];
player_char_skill2[n] = char_skill[char2[n], player2[n]];
}
win_chance_logit = (player_char_skill1 - player_char_skill2) + non_mirror .* mu[mup] + elo_logit_scale * elo_logit;
}
model {
for (n in 1:NC) {
char_skill[n] ~ std_normal();
}
mu ~ normal(0, 0.5);
elo_logit_scale ~ std_normal();
for (n in 1:NG) {
target += bernoulli_logit_lpmf(win[n] | win_chance_logit[n]) * obs_weights[n];
}
}
generated quantities{
vector[NG] log_lik;
vector[NG] win_hat;
for (n in 1:NG) {
log_lik[n] = bernoulli_logit_lpmf(win[n] | win_chance_logit[n]) * obs_weights[n];
win_hat[n] = bernoulli_logit_rng(win_chance_logit[n]);
}
}
```

**thehug0naut**#152

Awesome work here. The latest few MU charts are

I’m not clear on which charts this affects and how that is different to before? Were previous charts looking at win chance vs the average player?

**vengefulpickle**#153

It’s actually just about the scale of the y axis. The previous icicle charts had a scale with units of logits. Easy to sum up with other logit values, but hard to really understand. The last set converts those to win probabilites, but has to do that by assuming certain other conditions (because the “value” of a logit is non-linear in win-chance scale).