Predicciones basadas en el rendimiento pasado

Un usuario Pregunto ✅

Sach

Tengo un conjunto de datos que contiene el rendimiento del jugador durante el último año, que se ve a continuación. En este deporte, suponga que hay 3 tipos de partidos, por lo que el «Tipo» indica de qué tipo es. He tomado X, Y y Z como 3 tipos diferentes.

Player,Team,Matches,Points,Type
Player A,Australia,25,500,X
Player B,Sri Lanka,23,433,X
Player C,India,24,535,X
Player D,Australia,22,233,X
Player E,England,26,635,X
Player F,Sri Lanka,27,344,X
Player A,Australia,12,150,Y
Player B,Sri Lanka,9,233,Y
Player C,India,11,144,Y
Player D,Australia,8,178,Y
Player E,England,7,201,Y
Player F,Sri Lanka,13,211,Y
Player A,Australia,15,225,Z
Player B,Sri Lanka,18,200,Z
Player C,India,9,136,Z
Player D,Australia,14,253,Z
Player E,England,16,233,Z
Player F,Sri Lanka,18,198,Z

A continuación, tengo un calendario para el próximo año para cada equipo que muestra la cantidad de partidos que jugarán los equipos en cada tipo de partido.

Team,X,Y,Z
Australia,25,9,15
England,29,10,18
India,31,13,19
Sri Lanka,27,11,20

Ahora puedo calcular un Puntos / Partido promedio de cada jugador para cada tipo de partido, para el último año. Entonces, la tabla de PowerBI calculada se vería así:

Tabla.png

Ahora, quiero calcular o predecir cuántos puntos anotará cada jugador el próximo año en cada tipo de matemáticas. Esencialmente, tome los Puntos/Partido de cualquier jugador durante el último año y luego multiplíquelo por la cantidad de partidos del próximo año para el equipo de ese jugador (suponiendo que ese jugador jugará todos los partidos para ese equipo).

Por ejemplo, tomemos [ Player F ] por [ Type Z ].

El año pasado, el jugador F anotó 11,00 puntos por partido en el Tipo Z.

El equipo del jugador F es Sri Lanka.

El próximo año, Sri Lanka jugará 20 partidos Tipo Z.

Entonces, podemos predecir que el jugador F anotará 11 x 20 = 220 puntos en los partidos de Tipo Z el próximo año.

¿Cómo puedo generar esto como una tabla o matriz, mostrando el rendimiento previsto de cada jugador para el próximo año en cada tipo de partidos?

greg_deckler

En respuesta a Sach

@Sach Sí, tendrás errores de sintaxis cuando lo improvisas, había una coma ofensiva. Tratar:

Measure Total Points =
  VAR __Player = MAX('Table'[Player])
  VAR __Team = MAX('Table'[Team])
  VAR __Table = 
    ADDCOLUMNS(
      ADDCOLUMNS(
        SUMMARIZE('Table',[Type]),
        "__Team",__Team,
        "__PPM",[Points/Match]),
        "__FutureGames", MAXX(FILTER('MatchesTableNextYear',[Team]=__Team && [Attribute]=[Type]),[Value])
      ),
      "__Points",[__PPM] * [__FutureGames]
    )
RETURN
  SUMX(__Table,[__Points])

Es esa última coma justo encima de la primera línea debajo de la cual aparece la línea roja squilly.

greg_deckler

@Sach ¿Suponiendo que tiene eso como visualización de tabla? Primero, deberá deshacer la rotación de sus columnas de tipo (X, Y y Z) en su tabla de coincidencias futuras y luego tal vez una medida como:

Measure Total Points =
  VAR __Team = MAX('Table'[Team])
  VAR __Type = MAX('Table'[Type])
  VAR __PointsPerMatch = [Points/Match] //assumes a measure
  VAR __TotalMatches = MAXX(FILTER('MatchesTableNextYear',[Team]=__Team && [Attribute]=__Type),[Value])
RETURN
  __PointsPerMatch * __TotalMatches

Sach

En respuesta a greg_deckler

@Greg_Deckler, gracias por la respuesta.

Esto parece funcionar si luego lo muestro en una tabla con ‘Tipo’ como columna:

A.png

Los valores calculados están bien.

Sin embargo, si elimino la columna ‘Tipo’ (en última instancia, quiero saber el total de puntos previstos de cada jugador), entonces la suma parece darme un valor incorrecto:

B.png

Por ejemplo, el total del jugador A debería ser 500 + 112,5 + 225 = 837,50.

El valor resultante, 252,40, ni siquiera parece ser el promedio (que debería ser 837,5/3 = 279,16), así que pregúntese qué está pasando aquí.

greg_deckler

En respuesta a Sach

@Sach Entonces, ¿qué pasa con esto?

Measure Total Points =
  VAR __Player = MAX('Table'[Player])
  VAR __Team = MAX('Table'[Team])
  VAR __Table = 
    ADDCOLUMNS(
      ADDCOLUMNS(
        SUMMARIZE('Table',[Type]),
        "__Team",__Team,
        "__PPM",[Points/Match]),
        "__FutureGames", MAXX(FILTER('MatchesTableNextYear',[Team]=__Team && [Attribute]=[Type]),[Value]),
      ),
      "__Points",[__PPM] * [__FutureGames]
    )
RETURN
  SUMX(__Table,[__Points])

Sach

En respuesta a greg_deckler

@Greg_Deckler Esta no parece ser una fórmula válida, comenzando en la Línea 11.

fórmula.png

greg_deckler

En respuesta a Sach

@Sach Sí, tendrás errores de sintaxis cuando lo improvisas, había una coma ofensiva. Tratar:

Measure Total Points =
  VAR __Player = MAX('Table'[Player])
  VAR __Team = MAX('Table'[Team])
  VAR __Table = 
    ADDCOLUMNS(
      ADDCOLUMNS(
        SUMMARIZE('Table',[Type]),
        "__Team",__Team,
        "__PPM",[Points/Match]),
        "__FutureGames", MAXX(FILTER('MatchesTableNextYear',[Team]=__Team && [Attribute]=[Type]),[Value])
      ),
      "__Points",[__PPM] * [__FutureGames]
    )
RETURN
  SUMX(__Table,[__Points])

Es esa última coma justo encima de la primera línea debajo de la cual aparece la línea roja squilly.

Sach

En respuesta a greg_deckler

Funcionó perfecto, gracias!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *