Yo pensaría que lme4
sería muy apropiado para esto. Trate su enorme factor categórico como un efecto aleatorio práctico. No voy a entrar en las definiciones teóricas. Como alternativa, utilice sparse.model.matrix()
de Matrix
para construir el marco de diseño y luego pasarlo a glmnet()
de glmnet
paquete. ( lme4
construye de forma natural la matriz de diseño dispersa, por lo que no es necesario utilizar el sparse.model.matrix()
antes de entrar en él).
Si realmente quiere hacer el truco de la "media de cada nivel", asegúrese de calcular la media de cada observación excluyéndose a sí misma e incluya algunas observaciones adicionales con cada nivel de factor en la media de la población. A continuación, utilice esta variable derivada como una característica en sus modelos en lugar de la variable categórica. Si el factor fuera la única característica, este resultado sería idéntico a lme4
o glmnet
(suponiendo que hayas resuelto cuántas observaciones medias hay que añadir).
Hay unas cuantas entradas de blog que llaman al truco de la "media de cada nivel impact coding
. Además, según mi experiencia, si hay un rasgo muy denso, es posible que desee ajustar un modelo simple en ese rasgo y codificar los residuos por el nivel del enorme factor categórico en lugar de la respuesta pura.
Como ya se ha dicho, se trata de un consejo más práctico. Probablemente otras personas vendrán con algún consejo teórico más fuerte.
0 votos
Tal vez esté pensando en
plm
?0 votos
¿Cómo ayudaría el plm?
0 votos
Elimina los efectos fijos categóricos de su modelo.
0 votos
Parece una buena idea.
0 votos
El paquete 'lfe' también se encargará de este problema. Implementa un método para proyectar los factores de las regresiones OLS, el método se describe en este próximo artículo: dx.doi.org/10.1016/j.csda.2013.03.024