11 votos

¿La opción `weight =` en lmer () está haciendo lo que quiero?

Quiero predecir el golfista de la PGA de rendimiento. Me pregunto si estoy correctamente dando más peso a los resultados más recientes utilizando la weights= opción en la lmer() función.

Tengo los datos de 2012-2014 presentado así:

library("lme4")
library("dplyr")

head(rdDat)
Source: local data frame [6 x 5]
Groups: plrF, trnF

  plrF trnF rdF wt rdScr rdPar
1    5  996  R1  1    71    71
2    5  996  R2  1    69    71
3    5  996  R3  1    70    71
4    5  996  R4  1    69    71
5    5  998  R1  3    72    72
6    5  999  R1  4    73    70
  • plrF - ID de Jugador
  • trnF - trounament ID
  • rdF - ronda del torneo (cada torneo tiene 4 rondas)
  • peso - Peso. Básicamente el número de semanas desde el 1 de enero de 2012.
  • rdScr - observó puntuación para un golfista
  • rdPar - par para esa ronda.

Quiero usar lmer() para el modelo de reproductor de resultados basados en un jugador aleatorio efecto, y se fija la par efecto. Vamos a dividir los datos en un conjunto de entrenamiento y conjunto de prueba.

oRdDat <- rdDat %>% filter(wt <= 120)
newdat <- rdDat %>% filter(wt > 120)

Ajuste de un modelo a los datos observados:

lmr1 <- lmer(rdScr ~ rdPar + (1 | plrF), data= oRdDat)

Usar los resultados para predecir los nuevos datos, y calcular el error absoluto de nuestra predicción:

pred0 <- cbind(newdat, prScr = predict(lmr1, newdat, allow.new.levels = TRUE)) %>% 
  mutate(diff = abs(prScr - rdScr))

y el uso que diff variable para comprobar el Error Absoluto medio de nuestra proyección:

summary(pred0$diff)[4]
 Mean 
2.481  

Sin embargo, creo que es muy razonable suponer que los resultados más recientes (por ejemplo, a finales de 2014) debe tener más de un impacto en nuestra proyección de resultados a partir de principios de 2012. Así que se ajustan a esta:

wlmr1 <- lmer(rdScr ~ rdPar + (1 | plrF), weights = wt, data= oRdDat)

Predecir como antes y retirar el MAE:

summary(pred1$diff)[4]
 Mean 
2.474 

Mejora Incremental! :-D

Vamos a dejar de lado la cuestión de lo que el óptimo sistema de ponderación sería, y si una pequeña mejora que se observa aquí es, en realidad, 'pena'. Mi pregunta es: ¿que weights=wt opción de hacer lo que yo quiero hacer? Por ejemplo, dar más peso a los resultados más recientes en términos de la proyección de futuro de los exámenes?

Gracias!

10voto

Jeff Puntos 234

La log-verosimilitud se define como: $$ \log(L(\boldsymbol{\theta})) = \sum_{i = 1}^{n} w_i \log(P(y_i | \boldsymbol{x}_i, \boldsymbol{\theta})) $$ donde $\boldsymbol{\theta}$ son los parámetros del modelo, $w_i$ es el peso para la observación $i$, $y_i$ es la respuesta para la observación $i$, e $\boldsymbol{x}_i$ es el vector de covariables para la observación $i$. Así que, sí, creo que el weights opción está haciendo exactamente lo que usted desea - la más reciente de las observaciones tienen una mayor contribución a la log-verosimilitud.

Sé que específicamente no pide ningún tipo de comentarios sobre esto en su pregunta, pero Dixon y Coles considerado el uso de estos pesos con el fin de aumentar la capacidad de predicción de rendimiento de su modelo de fútbol - así que podría ser digno de una mirada en el uso de una similar función de ponderación (si no estás familiarizado con este).

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X