EDITAR: desde que hice esta publicación, he seguido con una publicación adicional aquí .
Resumen del texto a continuación: estoy trabajando en un modelo y he intentado la regresión lineal, las transformaciones de Box Cox y GAM, pero no he progresado mucho
Utilizando R
, actualmente estoy trabajando en un modelo para predecir el éxito de los jugadores de béisbol de ligas menores en el nivel de Grandes Ligas (MLB). La variable dependiente, la carrera ofensiva gana por encima del reemplazo (oWAR), es una representación del éxito a nivel de MLB y se mide como la suma de las contribuciones ofensivas por cada jugada en la que el jugador está involucrado a lo largo de su carrera (detalles aquí - http : //www.fangraphs.com/library/misc/war/) Las variables independientes son variables ofensivas de ligas menores con puntaje z para estadísticas que se consideran predictores importantes de éxito a nivel de grandes ligas, incluida la edad (los jugadores con más éxito a una edad más temprana tienden a ser mejores prospectos), tasa de ponches [SOPct ], tasa de caminata [BBrate] y producción ajustada (una medida global de producción ofensiva). Además, dado que hay varios niveles de las ligas menores, he incluido variables ficticias para el nivel de juego de las ligas menores (Doble A, Alta A, Baja A, Novato y Temporada Corta con Triple A [el nivel más alto antes de las ligas mayores] como la variable de referencia]). Nota: He reescalado WAR para que sea una variable que va de 0 a 1.
El diagrama de dispersión variable es el siguiente:
Como referencia, la variable dependiente, oWAR, tiene la siguiente gráfica:
Comencé con una regresión lineal oWAR = B1zAge + B2zSOPct + B3zBBPct + B4zAdjProd + B5DoubleA + B6HighA + B7LowA + B8Rookie + B9ShortSeason
y obtuve las siguientes gráficas de diagnóstico:
Existen problemas claros con la falta de imparcialidad de los residuos y la falta de variación aleatoria. Además, los residuos no son normales. Los resultados de la regresión se muestran a continuación:
Siguiendo los consejos de un hilo anterior , probé una transformación de Box-Cox sin éxito. A continuación, probé un GAM con un enlace de registro y recibí estos gráficos:
Original
Nueva parcela de diagnóstico
Parece que las splines ayudaron a ajustar los datos, pero las gráficas de diagnóstico aún muestran un ajuste deficiente. EDITAR: pensé que estaba mirando originalmente los valores residuales frente a los valores ajustados, pero estaba incorrecto. El diagrama que se mostró originalmente está marcado como Original (arriba) y el diagrama que cargué después está marcado como Nuevo diagrama de diagnóstico (también arriba)
pero los resultados producidos por el comando gam.check(myregression, k.rep = 1000)
no son tan prometedores.
¿Alguien puede sugerir un próximo paso para este modelo? Me complace proporcionar cualquier otra información que considere útil para comprender el progreso que he realizado hasta ahora. Gracias por cualquier ayuda que usted nos pueda proporcionar.
Respuestas:
lrm
rms
rms
orm
fuente
require(Hmisc); cut2(y, g=100, levels.mean=TRUE)
rms
pronto se lanzará una nueva versión de , ¿tiene alguna idea de cuándo podría ser?Creo que volver a trabajar la variable dependiente y el modelo puede ser fructífero aquí. Al observar sus residuos de la
lm()
, parece que el problema principal es con los jugadores con una WAR de alta carrera (que definió como la suma de todas las WAR). ¡Tenga en cuenta que su WAR (escala) más alta predicha es 0.15 de un máximo de 1! Creo que hay dos cosas con esta variable dependiente que exacerban este problema:Sin embargo, en el contexto de la predicción, incluir el tiempo jugado explícitamente como un control (de cualquier manera, ya sea como un peso o como el denominador en el cálculo del promedio de WAR de carrera) es contraproducente (también sospecho que su efecto también sería no lineal). Así que sugiero modelado de tiempo algo menos explícitamente en un modelo mixto utilizando
lme4
onlme
.Con
lme4
esto se vería algo asílmer(sWAR ~ <other stuff> + (1|Player), data=mydata)
fuente