{
  "id": 357339,
  "title": "Team A is consistently better than Team B",
  "url": "/competitions/tabular-playground-series-oct-2022/discussion/357339",
  "author_name": "Nigel A. R. Henry",
  "post_date": "2022-10-04T04:04:18.765000",
  "votes": 7,
  "comment_count": 9,
  "views": 0,
  "content": "<p>One would expect that in Rocketball, there is no inherent advantage of a team scoring left-to-right or right-to-left etc.<br>\nHowever, I found it strange that my Team A and Team B models were not interchangeable.</p>\n<p>Team A won 4.5% more games than Team B, and <br>\nTeam A's outscored Team B's 13370-12780 overall, almost 5% more goals.<br>\nIf you filp a fair coin this many times, the chances of getting this type of result is 0.02459016<br>\n<a href=\"https://www.kaggle.com/code/nigelhenry/are-teams-a-and-b-symmetric?scriptVersionId=107144710\" target=\"_blank\">See my working here</a></p>\n<p>Does anyone know of any \"seeding\" or reason for this to happen?</p>",
  "messages": [
    {
      "id": 1970347,
      "postDate": "2022-10-04T04:04:18.767Z",
      "content": "<p>One would expect that in Rocketball, there is no inherent advantage of a team scoring left-to-right or right-to-left etc.<br>\nHowever, I found it strange that my Team A and Team B models were not interchangeable.</p>\n<p>Team A won 4.5% more games than Team B, and <br>\nTeam A's outscored Team B's 13370-12780 overall, almost 5% more goals.<br>\nIf you filp a fair coin this many times, the chances of getting this type of result is 0.02459016<br>\n<a href=\"https://www.kaggle.com/code/nigelhenry/are-teams-a-and-b-symmetric?scriptVersionId=107144710\" target=\"_blank\">See my working here</a></p>\n<p>Does anyone know of any \"seeding\" or reason for this to happen?</p>",
      "rawMarkdown": "One would expect that in Rocketball, there is no inherent advantage of a team scoring left-to-right or right-to-left etc.\nHowever, I found it strange that my Team A and Team B models were not interchangeable.\n\nTeam A won 4.5% more games than Team B, and \nTeam A's outscored Team B's 13370-12780 overall, almost 5% more goals.\nIf you filp a fair coin this many times, the chances of getting this type of result is 0.02459016\n[See my working here](https://www.kaggle.com/code/nigelhenry/are-teams-a-and-b-symmetric?scriptVersionId=107144710)\n\nDoes anyone know of any \"seeding\" or reason for this to happen?",
      "votes": 7
    },
    {
      "id": 1971308,
      "postDate": "2022-10-04T14:18:09.953Z",
      "content": "<p>Hey Nigel, good catch, thanks for pointing this out.  The data is all from professional Rocket League matches, and I believe there are sometimes seeding effects where higher seeds play as a particular team, I imagine that's what's happening here.</p>\n<p>The test and train data are all pulled from the same source distribution of data, but, without saying too much, I can tell you that the test data does not suffer from this asymmetry.</p>",
      "rawMarkdown": "Hey Nigel, good catch, thanks for pointing this out.  The data is all from professional Rocket League matches, and I believe there are sometimes seeding effects where higher seeds play as a particular team, I imagine that's what's happening here.\n\nThe test and train data are all pulled from the same source distribution of data, but, without saying too much, I can tell you that the test data does not suffer from this asymmetry.",
      "votes": 5,
      "replies": [
        {
          "id": 1972066,
          "postDate": "2022-10-05T00:45:45.803Z",
          "content": "<p>Very interesting and helpful!</p>",
          "rawMarkdown": "Very interesting and helpful!"
        }
      ]
    },
    {
      "id": 1970485,
      "postDate": "2022-10-04T05:42:10.520Z",
      "content": "<p>Which side of the field probably doesn't matter, but skill of players probably does? Based on the <code>train_0</code> dataset, it would appear that player 3 and player 5 are the weak links.</p>\n<pre><code>np.unique(train_0.groupby('event_id')['player_scoring_next']\\\n          .agg(lambda s: s.iloc[0]).to_numpy(),return_counts=True)\n</code></pre>\n<pre><code>(array([-1,  0,  1,  2,  3,  4,  5], dtype=int8),\n array([516, 449, 446, 442, 414, 457, 407]))\n</code></pre>",
      "rawMarkdown": "Which side of the field probably doesn't matter, but skill of players probably does? Based on the `train_0` dataset, it would appear that player 3 and player 5 are the weak links.\n```\nnp.unique(train_0.groupby('event_id')['player_scoring_next']\\\n          .agg(lambda s: s.iloc[0]).to_numpy(),return_counts=True)\n```\n```\n(array([-1,  0,  1,  2,  3,  4,  5], dtype=int8),\n array([516, 449, 446, 442, 414, 457, 407]))\n```",
      "votes": 3,
      "replies": [
        {
          "id": 1970584,
          "postDate": "2022-10-04T06:42:37.307Z",
          "rawMarkdown": "",
          "votes": 1,
          "isDeleted": true
        },
        {
          "id": 1970902,
          "postDate": "2022-10-04T11:00:33.037Z",
          "content": "<p>You might be onto something!</p>",
          "rawMarkdown": "You might be onto something!",
          "votes": 1
        }
      ]
    },
    {
      "id": 1977285,
      "postDate": "2022-10-07T23:16:14.027Z",
      "content": "<p>Thank you for the finding. Very interesting indeed.</p>",
      "rawMarkdown": "Thank you for the finding. Very interesting indeed.",
      "votes": 1
    },
    {
      "id": 1970909,
      "postDate": "2022-10-04T11:04:26.180Z",
      "content": "<p>Turning this into a question for the host: where does the data come from?</p>\n<p>Is it a \"private\" setting where the training and test set are the same 6 players playing multiple games against each other? Or a \"public\" setting like a league/tournament?</p>",
      "rawMarkdown": "Turning this into a question for the host: where does the data come from?\n\nIs it a \"private\" setting where the training and test set are the same 6 players playing multiple games against each other? Or a \"public\" setting like a league/tournament?",
      "votes": 1
    },
    {
      "id": 1970984,
      "postDate": "2022-10-04T11:57:54.473Z",
      "content": "<p>This kind of things can appear in tournaments, i.e. for exemple when the winner of a group stage will be given seed a on the next turn and second one will be given a seed b in another bracket. This might introduce some bias in skill / goal scoring. </p>\n<p>Maybe some slight difference in skill should be taken into account between player A and B. </p>",
      "rawMarkdown": "This kind of things can appear in tournaments, i.e. for exemple when the winner of a group stage will be given seed a on the next turn and second one will be given a seed b in another bracket. This might introduce some bias in skill / goal scoring. \n\nMaybe some slight difference in skill should be taken into account between player A and B. ",
      "replies": [
        {
          "id": 1971051,
          "postDate": "2022-10-04T12:46:45.367Z",
          "content": "<p>Exactly.<br>\nAnd more importantly, if the training set is from a tournament, and the test set is from a <em>different</em> tournament, you may be in for a surprise. 😨</p>",
          "rawMarkdown": "Exactly.\nAnd more importantly, if the training set is from a tournament, and the test set is from a *different* tournament, you may be in for a surprise. 😨",
          "votes": 2
        }
      ]
    }
  ],
  "comments": [
    {
      "id": 1971308,
      "author_name": "DJ Sterling",
      "author_url": "",
      "post_date": "2022-10-04T14:18:09.953000",
      "content": "<p>Hey Nigel, good catch, thanks for pointing this out.  The data is all from professional Rocket League matches, and I believe there are sometimes seeding effects where higher seeds play as a particular team, I imagine that's what's happening here.</p>\n<p>The test and train data are all pulled from the same source distribution of data, but, without saying too much, I can tell you that the test data does not suffer from this asymmetry.</p>",
      "votes": 5,
      "replies": [
        {
          "id": 1972066,
          "author_name": "Nigel A. R. Henry",
          "author_url": "",
          "post_date": "2022-10-05T00:45:45.803000",
          "content": "<p>Very interesting and helpful!</p>",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 1970485,
      "author_name": "broccoli beef",
      "author_url": "",
      "post_date": "2022-10-04T05:42:10.520000",
      "content": "<p>Which side of the field probably doesn't matter, but skill of players probably does? Based on the <code>train_0</code> dataset, it would appear that player 3 and player 5 are the weak links.</p>\n<pre><code>np.unique(train_0.groupby('event_id')['player_scoring_next']\\\n          .agg(lambda s: s.iloc[0]).to_numpy(),return_counts=True)\n</code></pre>\n<pre><code>(array([-1,  0,  1,  2,  3,  4,  5], dtype=int8),\n array([516, 449, 446, 442, 414, 457, 407]))\n</code></pre>",
      "votes": 3,
      "replies": [
        {
          "id": 1970584,
          "author_name": "",
          "author_url": "",
          "post_date": "2022-10-04T06:42:37.307000",
          "content": "",
          "votes": 1,
          "replies": []
        },
        {
          "id": 1970902,
          "author_name": "Nigel A. R. Henry",
          "author_url": "",
          "post_date": "2022-10-04T11:00:33.037000",
          "content": "<p>You might be onto something!</p>",
          "votes": 1,
          "replies": []
        }
      ]
    },
    {
      "id": 1977285,
      "author_name": "Wei Xie",
      "author_url": "",
      "post_date": "2022-10-07T23:16:14.027000",
      "content": "<p>Thank you for the finding. Very interesting indeed.</p>",
      "votes": 1,
      "replies": []
    },
    {
      "id": 1970909,
      "author_name": "Nigel A. R. Henry",
      "author_url": "",
      "post_date": "2022-10-04T11:04:26.180000",
      "content": "<p>Turning this into a question for the host: where does the data come from?</p>\n<p>Is it a \"private\" setting where the training and test set are the same 6 players playing multiple games against each other? Or a \"public\" setting like a league/tournament?</p>",
      "votes": 1,
      "replies": []
    },
    {
      "id": 1970984,
      "author_name": "Lucas Morin",
      "author_url": "",
      "post_date": "2022-10-04T11:57:54.473000",
      "content": "<p>This kind of things can appear in tournaments, i.e. for exemple when the winner of a group stage will be given seed a on the next turn and second one will be given a seed b in another bracket. This might introduce some bias in skill / goal scoring. </p>\n<p>Maybe some slight difference in skill should be taken into account between player A and B. </p>",
      "votes": 0,
      "replies": [
        {
          "id": 1971051,
          "author_name": "Nigel A. R. Henry",
          "author_url": "",
          "post_date": "2022-10-04T12:46:45.367000",
          "content": "<p>Exactly.<br>\nAnd more importantly, if the training set is from a tournament, and the test set is from a <em>different</em> tournament, you may be in for a surprise. 😨</p>",
          "votes": 2,
          "replies": []
        }
      ]
    }
  ],
  "raw_markdown_by_id": {
    "1970347": "One would expect that in Rocketball, there is no inherent advantage of a team scoring left-to-right or right-to-left etc.\nHowever, I found it strange that my Team A and Team B models were not interchangeable.\n\nTeam A won 4.5% more games than Team B, and \nTeam A's outscored Team B's 13370-12780 overall, almost 5% more goals.\nIf you filp a fair coin this many times, the chances of getting this type of result is 0.02459016\n[See my working here](https://www.kaggle.com/code/nigelhenry/are-teams-a-and-b-symmetric?scriptVersionId=107144710)\n\nDoes anyone know of any \"seeding\" or reason for this to happen?",
    "1971308": "Hey Nigel, good catch, thanks for pointing this out.  The data is all from professional Rocket League matches, and I believe there are sometimes seeding effects where higher seeds play as a particular team, I imagine that's what's happening here.\n\nThe test and train data are all pulled from the same source distribution of data, but, without saying too much, I can tell you that the test data does not suffer from this asymmetry.",
    "1970485": "Which side of the field probably doesn't matter, but skill of players probably does? Based on the `train_0` dataset, it would appear that player 3 and player 5 are the weak links.\n```\nnp.unique(train_0.groupby('event_id')['player_scoring_next']\\\n          .agg(lambda s: s.iloc[0]).to_numpy(),return_counts=True)\n```\n```\n(array([-1,  0,  1,  2,  3,  4,  5], dtype=int8),\n array([516, 449, 446, 442, 414, 457, 407]))\n```",
    "1977285": "Thank you for the finding. Very interesting indeed.",
    "1970909": "Turning this into a question for the host: where does the data come from?\n\nIs it a \"private\" setting where the training and test set are the same 6 players playing multiple games against each other? Or a \"public\" setting like a league/tournament?",
    "1970984": "This kind of things can appear in tournaments, i.e. for exemple when the winner of a group stage will be given seed a on the next turn and second one will be given a seed b in another bracket. This might introduce some bias in skill / goal scoring. \n\nMaybe some slight difference in skill should be taken into account between player A and B. "
  }
}